메인 콘텐츠로 건너뛰기

s 명령어 패킷/s 명령어 응답 패킷

s 명령어 패킷과 s 명령어 응답 패킷은 쌍을 이룹니다. s 명령어로 음성 데이터 전송 시작을 서버에 통지하면 서버는 s 명령어 응답 패킷을 반환합니다.

s 명령어 응답 패킷이 "s" 한 글자인 경우 성공입니다. 이어서 p 명령어 패킷으로 음성 데이터 공급을 시작할 수 있습니다. 음성 데이터 전송이 모두 끝나면 e 명령어 패킷으로 전송 종료를 통지하지만, 그 후에도 연결이 유지되어 있다면 다시 s 명령어 패킷부터 재개할 수 있습니다.

s 명령어 패킷

음성 데이터 전송을 시작합니다. 전송 시작을 통지하는 것 외에도 전송할 음성의 포맷과 사용하고 싶은 음성 인식 엔진(연결 엔진 이름), 인증 정보(API key) 및 기타 파라미터를 전송해야 합니다.

형식

타입 TEXT

s <audio_format> <grammar_file_names>
s <audio_format> <grammar_file_names> <key>=<value> ...

s 및 각 파라미터 블록의 구분 문자는 반각 공백입니다. 다음은 각 파라미터의 세부 사항에 대한 설명입니다.

<audio_format>

전송할 음성 포맷을 지정합니다. 이 파라미터는 필수입니다. 지정할 수 있는 포맷 이름에 대해서는 개발 가이드의 음성 포맷을 참조하십시오.

<grammar_file_names>

연결 엔진 이름을 지정합니다. 이 파라미터는 필수입니다.

<key>

<key>=<value> 형식으로 요청 파라미터를 지정합니다. <value>에 공백이 포함된 경우 value 앞뒤를 반각 큰따옴표(")로 묶습니다.

<key>에 지정할 수 있는 파라미터는 다음과 같습니다. authorization(API 키)은 필수입니다. 각 파라미터의 자세한 내용은 매뉴얼의 요청 파라미터를 참조하십시오.

파라미터명필수
authorization(*1)
profileId
profileWords
keepFillerToken
segmenterProperties
extension
maxDecodingTime
maxResponseTime
maxDecodingRate
targetResponseTime
targetDecodingRate
recognitionTimeout
confidenceLevel
completeTimeout(*2)
wildcardModelPenalty(*2)
resultUpdatedInterval
noInputTimeout
  • (*1) authorization 파라미터는 요청 파라미터로 지정하는 것 외에, WebSocket 접속 시 HTTP 요청 헤더로도 지정할 수 있습니다. 헤더로 지정하는 방법은 매뉴얼의 HTTP 요청 헤더로 인증 정보를 보내는 방법을 참조하세요.
  • (*2) -a-rule-input-private 엔진에서만 사용할 수 있습니다.

설정 예

세션 중에만 유효한 단어 등록(profileWords)을 지정하는 예입니다. 값에 공백이 포함되어 있으므로 큰따옴표로 묶습니다.

s MSB16K -a-general profileWords="AMI あみ|AmiVoice あみぼいす" authorization={API_KEY}

사용자 사전 프로필을 지정하는 예입니다.

s MSB16K -a-general profileId=:test authorization={API_KEY}

사용자 사전 사용 방법에 대한 자세한 내용은 매뉴얼의 사용자 사전을 참조하십시오.

s 명령어 응답 패킷

s 명령어에 대한 응답으로 서버에서 클라이언트로 전송됩니다.

형식

타입 TEXT

시작 요청 성공 시의 응답 패킷

전송 시작 요청이 성공하면 s 한 글자가 반환됩니다.

s

시작 요청 실패 시의 응답 패킷

전송 시작 요청이 실패하면 s 뒤에 반각 공백을 두고 에러 메시지가 반환됩니다.

s <error_message>

에러 메시지

클라이언트 에러

s 명령어의 요청 파라미터나 인증 정보의 오류로 인한 에러입니다. 수정 후 다시 요청을 보내주십시오.

에러 메시지내용
s received unsupported audio format지정된 음성 포맷에 오류가 있었습니다.
s can't verify service authorization인증에 실패했습니다. 다음 중 하나의 이유입니다.
- API key가 설정되지 않았습니다
- 설정된 API key에 오류가 있습니다
- API key에 부여돤 제한에서 지정된 IP 주소 외에서 접근했습니다
s can't validate service authorization인증에 실패했습니다. 다음 중 하나의 이유입니다.
- 인증된 API key에 오류가 있습니다(계정이 무효인 경우도 포함).
- 지정된 엔진명에 오류가 있습니다. (예:-a-generala-general 등으로 잘못 기술한 경우, AmiVoice API Private 계약을 하지 않은 상태에서 Private 전용 엔진을 지정한 경우 등)
s service authorization has expired: <expirationTime> <expiresIn>API Key에 제한된 유효기한이 만료되었습니다.
s can't connect to recognizer server인증에 실패하였습니다.API Key가 올바르지 않습니다.
s can't connect to recognizer server (can’t find available servers)지정된 연결 엔진 이름에 대해 음성 포맷의샘플링 레이트조합이 올바르지 않아, 적절한 엔진을 찾을 수 없어 연결에 실패했습니다.
예를 들어, 8k 샘플링 레이트를 지원하지 않는 엔진에 대해 8k 음성 포맷을 지정하는 경우가 이에 해당합니다. 각 음성 인식 엔진이 지원하는 샘플링 레이트에 대해서는음성 인식 엔진 목록을 참조하십시오.
s can't start feeding audio data to recognizer server지정된 세그먼터의 파라미터에 오류가 있어 음성 데이터 전송 시작 처리에 실패했습니다.

서버 에러

기반 시스템의 장애 등으로 인해 드물게 발생할 수 있는 에러입니다. 잠시 기다린 후 다시 요청을 보내주십시오.

에러 메시지내용
s can't connect to recognizer server (can't connect to server)"음성 인식 서버에 연결할 수 없었습니다.
s can't connect to recognizer server (can't find available servers because all requested servers are busy)지정된 연결 엔진 이름이나 음성 포맷에 대한 적절한 음성 인식 서버가 모두 혼잡하여 연결할 수 없었습니다.
s can't connect to recognizer server (can't find available servers because maximum allowed clients has reached)연결 가능한 클라이언트 수의 최대값에 도달하여 음성 인식 서버에 연결할 수 없었습니다.
s can't connect to recognizer server (can't send data)기반 시스템 내 서버 간 통신 오류로 인해 연결에 실패했습니다.
s can't connect to recognizer server (can't receive data)기반 시스템 내 서버 간 통신 오류로 인해 연결에 실패했습니다.
s can't connect to recognizer server (disconnected by force)기반 시스템 내 서버 간 통신 오류로 인해 연결에 실패했습니다.

제한 사항으로 인한 에러

제한 사항에 저촉된 경우 발생합니다. s 명령어의 요청부터 다시 시작해주십시오.

에러 메시지내용
s session timeout occurred세션 타임아웃이 발생했습니다. 제한 사항의 세션 최대 시간을 초과한 경우 발생합니다. 서버 측에서 연결 해제 처리를 수행했습니다.