A 이벤트 패킷
인식 처리가 완료되고 인식 결과가 수용되었을 때 서버에서 클라이언트로 전송됩니다.
형식
타입 JSON
A <result>
<result>에는 다음과 같은 JSON이 포함되어 있습니다.
| 설명 | |||
|---|---|---|---|
| results | "발화 구간의 인식 결과" 배열 ※배열 형식이지만 요소 수는 항상 1개입니다. | ||
| confidence | 신뢰도(0 ~ 1의 값. 0: 신뢰도 낮음, 1: 신뢰도 높음) | ||
| starttime | 발화 시작 시간 (음성 데이터의 시작이 0) | ||
| endtime | 발화 종료 시간 (음성 데이터의 시작이 0) | ||
| tags | 미사용(빈 배열) | ||
| rulename | 미사용(빈 문자열) | ||
| text | 인식 결과 텍스트 | ||
| tokens | 인식 결과 텍스트의 형태소 배열 | ||
| written | 형태소(단어)의 표기 | ||
| confidence | 형태소의 신뢰도(인식 결과의 우도) | ||
| starttime | 형태소의 시작 시간 (음성 데이터의 시작이 0) | ||
| endtime | 형태소의 종료 시간(음성 데이터의 시작이 0) | ||
| spoken | 형태소의 읽기 *3 | ||
| utteranceid | 인식 결과 정보 ID *1 | ||
| text | "발화 구간의 인식 결과"의 모든 것을 결합한 전체 인식 결과 텍스트. *2 | ||
| code | 결과를 나타내는 1문자 코드. 응답 코드와 메시지를 참조하십시오. *2 | ||
| message | 오류 내용을 나타내는 문자열. 응답 코드와 메시지를 참조하십시오. *2 |
*1
인식 결과 정보 ID는 WebSocket 음성 인식 프로토콜의 경우 발화 구간별 인식 결과 정보에 부여된 ID가 됩니다. HTTP 음성 인식 프로토콜의 경우 1 세션에서 업로드된 (여러 발화 구간을 포함할 수 있는) 음성 데이터 전체의 인식 결과 정보에 부여된 ID가 됩니다.
*2
인식 성공 시는
body.code == "" 및 body.message == "" 및 body.text != ""
인식 실패 시는
body.code != "" 및 body.message != "" 및 body.text == ""
이 됩니다.
*3
일본어 엔진의 인식 결과의 spoken은 히라가나입니다. 영어 엔진의 인식 결과의 spoken은 읽기가 아닙니다(무시해 주십시오). 중국어 엔진의 인식 결과의 spoken은 병음(pinyin)입니다.
JSON에 포함되는 code와 message의 목록
| code | message | 설명 |
|---|---|---|
| "+" | "received unsupported audio format" | 지원되지 않는 음성 데이터 형식의 음성 데이터를 수신 |
| "-" | "received illegal service authorization" | 부적절한 APPKEY(서비스 인증 키 문자열)을 수신 |
| "!" | "failed to connect to recognizer server" | 음성 인식 서버 내에서 통신 실패(음성 인식 서버 또는 로드 밸런서 서버 연결 실패) |
| ">" | "failed to send audio data to recognizer server" | 음성 인식 서버 내에서 통신 실패(음성 인식 서버로 음성 데이터 전송 실패) |
| "<" | "failed to receive recognition result from recognizer server" | 음성 인식 서버 내에서 통신 실패(음성 인식 서버로부터 인식 결과 수신 실패) |
| "#" | "received invalid recognition result from recognizer server" | 음성 인식 서버 내에서 통신 실패(음성 인식 서버로부터 수신한 인식 결과의 형식이 잘못됨) |
| "$" | "timeout occurred while receiving audio data from client" | 클라이언트로부터 음성 데이터 수신 중 무통신 타임아웃 발생 |
| "%" | "received too large audio data from client" | 클라이언트로부터 수신한 음성 데이터 바이트 수가 너무 큼(WebSocket 인터페이스에서는 발생하지 않음) |
| "o" | "recognition result is rejected because confidence is below the threshold" | 인식 결과 전체의 신뢰도가 신뢰도 임계값을 하회 하여 인식 실패 ※ 수신한 음성 데이터 전체에서 발화가 1개도 검출되지 않아 인식 결과를 반환할 수 없는 경우에도 이 오류가 반환됩니다. 발화 검출에 실패하는 원인으로는 음성 데이터의 손실이나 음성 데이터 형식의 지정 오류가 고려됩니다. |
| "b" | "recognition result is rejected because recognizer server is busy" | 음성 인식 서버가 혼잡하여 인식 실패 |
| "x" | "recognition result is rejected because grammar files are not loaded" | 사전이 로드되지 않아 인식 실패 |
| "c" | "recognition result is rejected because the recognition process is cancelled" | 인식 처리 중단 요청으로 인해 인식 실패 |
| "t" | "recognition result is rejected because timeout occurred during recognition process" | 인식 처리가 타임아웃되는 등 인식 처리가 중단되어 인식 실패 |
| "?" | "recognition result is rejected because fatal error occurred in recognizer server" | 음성 인식 서버에서 인식 중 치명적인 오류가 발생하여 인식 실패 |
| "s" | "recognition result is rejected because recognition process was not started before timeout occurred" | 클라이언트로부터 수신한 음성 데이터가 음성 데이터 큐에 들어간 후 일정 시간 내에 인식 처리가 시작되지 않아 인식 실패 |
| "e" | "recognition result is rejected because recognition process was not finished before timeout occurred" | 클라이언트로부터 수신한 음성 데이터가 음성 데이터 큐에 들어간 후 일정 시간 내에 인식 처리가 완료되지 않아 인식 실패 |
| "" | "" | 인식 성공 |
응답 예시
{
"results": [
{
"tokens": [
{
"written": "www",
"confidence": 1.0,
"starttime": 16020,
"endtime": 16916,
"spoken": "\u3068\u308a\u3077\u308b\u3060\u3076\u308b"
}
],
"confidence": 0.997,
"starttime": 15700,
"endtime": 17188,
"tags": [],
"rulename": "",
"text": "www"
}
],
"utteranceid": "20191127/ja_ja-amivoicecloud-16k-user@016ead249db00a3011a68536-1127_225504",
"text": "www",
"code": "",
"message": ""
}