응답 코드와 메시지
여기서는 처리에 실패했을 때의 응답에 대해 설명합니다.
HTTP 인터페이스
동기 HTTP・비동기 HTTP의 음성 인식 작업 생성 요청
음성 인식 요청에 실패하면 음성 인식 결과의 최상위 레벨에 있는 code
와 message
에 음성 인식에 실패한 원인을 나타내는 응답 코드와 오류 메시지가 설정됩니다. 자세한 내용은 뒤에 나오는 표를 참조하십시오.
예:
{
"results": [
{
"tokens": [],
"tags": [],
"rulename": "",
"text": ""
}
],
"text": "",
"code": "-",
"message": "received illegal service authorization"
}
동기 HTTP의 경우, 인식 처리에 성공했을 때는 code
와 message
가 빈 문자열("")이 됩니다.
예:
...
"utteranceid": "20220602/14/018122d65d370a30116494c8_20220602_141442",
"text": "アドバンスト・メディアは、人と機械との自然なコミュニケーションを実現し、豊かな未来を創造していくことを目指します。",
"code": "",
"message": ""
...
비동기 HTTP의 경우, 작업 생성 요청에 성공했을 때는 code
와 message
를 반환하지 않습니다.
예:
{"sessionid":"017ac8786c5b0a0504399999","text":"..."}
비동기 HTTP의 결과・상태 조회
비동기 HTTP의 경우, 음성 인식 요청이 성공해도 음성 인식 작업 처리 중에 어떤 원인으로 처리가 중단될 수 있습니다. 이때 결과・상태 조회를 수행하면 state
가 error
가 되고, error_messsage
에는 실패 원인을 나타내는 오류 메시지가 설정됩니다. error_message
에는 음성 인식 프로세스의 실패 원인을 나타내는 응답 코드(dsrh_code
)와 출력 메시지(amineth_message
)가 포함되어 있을 수 있습니다. 응답 코드와 메시지의 의미는 응답 코드와 메시지의 상세에 있는 표를 참조하십시오.
예:
{
"status": "error",
"audio_md5":"40f59fe5fc7745c33b33af44be43f6ad",
"audio_size":306980,
"service_id":"{YOUR_SERVICE_ID}",
"session_id":"017c25ec12c00a304474a999",
"error_message": "ERROR: Failed to transcribe in recognition process - amineth_result=0, amineth_code='o', amineth_message='recognition result is rejected because confidence is below the threshold'"
}
클라이언트 오류
응답 코드와 메시지의 상세의 표에 있는 응답 코드가 >
, o
, +
, -
, %
일 때는 클라이언트 오류입니다. 오류의 원인이 해결되지 않는 경우, 재시도해도 같은 결과가 나오므로 주의하십시오.
그 외의 오류는 기반의 문제일 가능성이 높으므로 잠시 기다렸다가 재시도하십시오.
음성 데이터 전송 실패 (응답 코드 >
)
원인
이 오류가 발생하는 경우는 다음과 같습니다.
- 동기/비동기 HTTP 인터페이스에서 전송한 음성 데이터에 음성 데이터가 포함되어 있지 않을 때
대책
이 오류가 발생한 경우, 다음 사항을 확인하십시오.
- 음성 데이터를 전송하고 있는지 여부
- 전송한 음성이 빈 파일(0바이트 파일)이 아닌지
- 전송한 컨테이너 포맷의 본문에 음성 데이터가 포함되어 있는지
데이터는 전송했지만 음성이 포함되지 않은 경우에는 뒤에 나오는 o
를 반환합니다.
거부 (응답 코드 o
)
원인
이 응답을 반환하는 경우는 다음과 같습니다.
- 음성에서 발화를 검출할 수 없었습니다.
- 음성에서 발화를 검출할 수 있었지만, 음성 인식을 수행한 결과 신뢰도가 신뢰도 임계값을 하회했습니다.
- 음성에서 발화를 검출할 수 있었지만, 음성 인식을 수행한 결과 출력할 수 있는 문자가 존재하지 않았습니다. (아래에서 보충 설명)
위의 어떤 원인이든 오류 메시지는 항상 recognition result is rejected because confidence is below the threshold
입니다.
음성 인식 결과에 출력할 수 있는 문자가 존재하지 않는 경우는 다음과 같습니다.
- 모든 음성이 "음..." 또는 "저..." 등의 필러로 인식되어 자동으로 삭제되었습니다
- 모든 음성이 노이즈로 추정되었습니다
단, keepFillerToken
이 1로 설정되어 있을 때는 필러가 출력됩니다.
AmiVoice API에서 문자 변환을 할 때, 발화 검출과 음성 인식의 2단계 파이프라인 처리를 수행합니다. 발화 검출이 이루어지지 않으면 음성 인식을 수행하지 않습니다. 발화 검출 단계에서도 음량뿐만 아니라 사람의 목소리인지 여부를 딥러닝을 사용한 모델로 판단하지만, 음성 인식 처리를 수행한 결과 최종적으로 노이즈로 추정되는 경우가 있습니다.
대책
이 오류가 발생한 경우, 다음 사항을 확인하십시오.
전송한 음성 데이터에 발화가 포함되어 있는지 여부
전송한 음성 데이터를 확인하십시오. 예를 들어, 다음과 같은 음성 데이터에서는 발화를 검출할 수 없습니다. 프로그램의 오류나 녹음 시스템에 문제가 있을 가능성이 있습니다.
- 무음
- 노이즈만 포함되어 있음
- 스테레오 음성에서 발화가 2채널에만 포함되어 있음(여러 채널의 음성은 1채널만 인식 대상이 됩니다. 음성 포맷의 스테레오를 참조하십시오)
또한, 음원에서 매우 먼 곳에서 녹음한 경우 등 불명확하고 음량이 작은 음성에서도 발화를 검출하지 못할 수 있습니다.