s 명령어 패킷/s 명령어 응답 패킷
s 명령어 패킷과 s 명령어 응답 패킷은 쌍을 이룹니다. s 명령어로 음성 데이터 전송 시작을 서버에 통지하면 서버는 s 명령어 응답 패킷을 반환합니다.
s 명령어 응답 패킷이 "s" 한 글자인 경우 성공입니다. 이어서 p 명령어 패킷으로 음성 데이터 공급을 시작할 수 있습니다. 음성 데이터 전송이 모두 끝나면 e 명령어 패킷으로 전송 종료를 통지하지만, 그 후에도 연결이 유지되어 있다면 다시 s 명령어 패킷부터 재개할 수 있습니다.
s 명령어 패킷
음성 데이터 전송을 시작합니다. 전송 시작을 통지하는 것 외에도 전송할 음성의 포맷과 사용하고 싶은 음성 인식 엔진(연결 엔진 이름), 인증 정보(APPKEY) 및 기타 파라미터를 전송해야 합니다.
형식
타입 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의 앞뒤를 반각 큰따옴표 「"」로 감싸줍니다.
| <key> | 설명 |
|---|---|
| authorization | authorization에는 마이페이지에 기재된 [APPKEY] 또는 원타임 APPKEY 발행 API로 취득한 원타임 APPKEY를 설정합니다. 이 파라미터는 필수입니다. |
| profileId | profileId는 사용자 사전에 사용자 고유의 단어를 등록할 경우의 사용자 고유 데이터 파일(프로파일)의 ID입니다. 해당 프로파일을 지정하여 사용할 수 있는 것 은 해당 사용자뿐입니다. 프로파일은 사용자 고유 영역에 저장되므로 다른 사용자와의 이름 충돌이 발생하지 않습니다. ※ profileId에는 반각 영숫자 및 「-」(반각 마이너스), 「_」(반각 밑줄)로 구성된 문자열을 지정합니다. 단, 「__」(반각 밑줄 2문자)로 시작하는 문자열은 음성 인식 엔진 측에서 예약되어 있으므로 「__」(반각 밑줄 2문자)로 시작하는 문자열은 지정하지 않도록 하십시오. 마이페이지의 사용자 사전 등록에서 단어를 등록하면 마이페이지의 接続情報 연결 정보에 기재된 서비스 ID(アカウント(=계정) ID 에서 자동 생성됨)와 동일한 이름의 프로파일(내 단어장)이 서버상에 자동으로 생성 저장됩니다. 이 프로파일(내 단어장)을 이용하여 음성 인식을 수행하고 싶을 때는 「서비스 ID의 앞에 반각 콜론":"을 추가한 문자열」 을 profileId에 지정합니다. (예) 서비스 ID가 「aiueo12345」인 경우, 「:aiueo12345」를 profileId의 값으로 지정합니다. 사용자 사전 사용자 사전의 단어 등록은 마이페이지의 사용자 사전 등록 화면에서 실행하는 것이 가장 간단합니다. 그 밖에, 사용자 사전 등록 API를 사용하는 방법과 요청별 설정 방법이 있습니다. 각 상세는 사용자 사전 등록 방법を参照してください。 |
| profileWords | profileWords 파라미터에는 단어 등록 또는 단어 강조로 설정하고 싶은 단어 정보를 설정합니다. 하이브리드 엔진의 단어 등록의 경우, 『표기<반각 공백>읽기』와 같이, End to End 엔진의 단어 강조의 경우, 『표기<반 각 공백>대체 표기<반각 공백>단어 강조도』와 같은 형식으로 등록합니다. 여러 개를 등록하는 경우에는 「 | 」로 구분합니다. 전송 시에는 profileWords 파라미터의 값 전체를 「"」(쌍따옴표)로 감싸줍니다. ※단어 등록에서 클래스명을 지정하는 경우에는 『표기<반각 공백>읽기<반각 공백>클래스명』으로 지정하십시오. 단어 강조의 대체 표기 또는 단어 강조도는 생략 가능합니다만, 대체 표기를 생략한 경우에는 『표기<반각 공백><반각 공백>단어 강조도』로 지정하십시오. |
| keepFillerToken | 발화에 포함된 채움말(「あー」나 「えー」 등)를 인식 결과 문자열에 포함하고 싶은 경우에는 다음과 같이 지정합니다. keepFillerToken=1 채움말에는 다양한 것들이 있지만, 모두 표기의 앞뒤가 반각의 %로 둘러싸여 있습니다. (예) 「%あー%」「%えー%」「%おー%」「%えーっと%」 keepFillerToken=1의 지정을 하지 않은 경우, 채움말은 인식 결과 문자열에서 제거됩니다. |
| segmenterProperties | 발화 검출의 파라미터입니다. 화자 다이어라이제이션의 활성화/비활성화를 제어하거나 결과를 조정하기 위한 파라미터를 설정할 수 있습니다. 여러 파라미터를 공백으로 구분하여 설정할 수 있습니다. segmenterProperties="key1=value1 key2=value2..." 설정할 수 있는 파라미터는 다음과 같습니다. useDiarizer 1을 설정하면 화자 다이어라이제이션이 활성화됩니다. ・지정 가능한 값: 0 또는 1 ・기본값: 0 diarizerAlpha 새로운 화자의 출현 용이성을 제어하는 파라미 터입니다. 큰 값을 지정할수록 새로운 화자가 출현하기 쉬워지고, 작은 값을 지정할수록 새로운 화자가 출현하기 어려워집니다. useDiarizer=1일 때만 유효합니다.・지정 가능한 값: 0 이상 ・참고 범위: 1e-100~1e50 ・기본값: 1 diarizerTransitionBias 화자 전환의 용이성을 제어하는 파라미터입니다. 큰 값을 지정할수록 화자가 전환되기 쉬워지고, 작은 값을 지정할수록 화자가 전환되기 어려워집니다. useDiarizer=1일 때만 유효합니다.・지정 가능한 값: 0 이상 1 미만 ・참고 범위: 1e-150~1e-10 ・기본값: 1e-40 (8k의 경우는 1e-20) |
마이페이지에서 등록한 단어를 사용하고 싶은 경우의 s 명령어
s MSB16K -a-general profileId=:<서비스ID> authorization=XXXXXXXXXXXXXX
이 세션을 위해 일시적으로 단어 등록하 는 경우의 s 명령어
s MSB16K -a-general profileWords="AMI あみ|AmiVoice あみぼいす" authorization=XXXXXXXXXXXXXX
위의 예는 profileId를 지정하지 않고, "AMI あみ|AmiVoice あみぼいす" (2개 단어)를 등록합니다. 이어서, 이 세션 내에서 음성 데이터를 전송하면 이 단어들이 음성 인식 처리에 사용됩니다. 그 후 e 명령어 패킷을 전송(세션 종료)하면 이 단어들은 무효화되며 저장되지 않습니다.
사용자 사전의 이용 방법
프로파일에 등록한 단어를 사용하여 음성인식을 실행하려면, s 명령어 패킷을 보낼 때 profileId 에, 이전에 사용자 사전에 등록한 프로파일의 profileId 앞에 「:」(콜론)을 붙여서 지정합니다.
여러 멤버가 사용하는 경우에 profileId 앞에 「:」(콜론)을 붙이지 않고 지정하면 인식 정확도가 낮아질 수 있습니다.
특정 프로파일을 음성 인식에 사용하고 싶은 경우의 s 명령어
s MSB16K -a-general profileId=:test authorization=XXXXXXXXXXXXXX
s 명령어 응답 패킷
s 명령어에 대한 응답으로 서버에서 클라이언트로 전송됩니다.
형식
타입 TEXT
시작 요청 성공 시의 응답 패킷
전송 시작 요청이 성공하면 s 한 글자가 반환됩니다.
s
시작 요청 실패 시의 응답 패킷
전송 시작 요청이 실패하면 s 뒤에 반각 공백을 두고 에러 메시지가 반환됩니다.
s <error_message>
에러 메시지
클라이언트 에러
s 명령어의 요청 파라미터나 인증 정보의 오류로 인한 에러입니다. 수정 후 다시 요청을 보내주십시오.
| 에러 메시지 | 내용 |
|---|---|
| s received unsupported audio format | 지정된 음성 포맷에 오류가 있었습니다. |
| s can't verify service authorization | 인증에 실패했습니다. 다음 중 하나의 이유입니다. - APPKEY가 설정되지 않았습니다 - 설정된 APPKEY에 오 류가 있습니다 - 원타임 APPKEY로 제한된 IP 주소 외에서 접근했습니다 |
| s can't validate service authorization | 인증에 실패했습니다. 다음 중 하나의 이유입니다. - 인증된 APPKEY에 오류가 있습니다(계정이 무효인 경우도 포함). - 지정된 엔진명에 오류가 있습니다. (예: -a-general을a-general 등으로 잘못 기술한 경우, AmiVoice API Private 계약을 하지 않은 상태에서 Private 전용 엔진을 지정한 경우 등) |
| s service authorization has expired: <expirationTime> <expiresIn> | 원타임 APPKEY에 제한된 유효기한이 만료되었습니다. |
| s can't connect to recognizer server | 인증에 실패하였습니다.원타임 APPKEY가 올바르지 않습니다. |
| 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 | 세션 타임아웃이 발생했습니다. 제한 사항의 세션 최대 시간을 초과한 경우 발생합니다. 서버 측에서 연결 해제 처리를 수행했습니다. |