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 키)은 필수입니다. 각 파라미터의 자세한 내용은 매뉴얼의 요청 파라미터를 참조하십시오.
- (*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-general을a-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 | 세션 타임아웃이 발생했습니다. 제한 사항의 세션 최대 시간을 초과한 경우 발생합니다. 서버 측에서 연결 해제 처리를 수행했습니다. |