메인 콘텐츠로 건너뛰기

응답 코드와 메시지

여기서는 처리에 실패했을 때의 응답에 대해 설명합니다.

HTTP 인터페이스

동기 HTTP・비동기 HTTP의 음성 인식 작업 생성 요청

음성 인식 요청에 실패하면 음성 인식 결과의 최상위 레벨에 있는 codemessage에 음성 인식에 실패한 원인을 나타내는 응답 코드오류 메시지가 설정됩니다. 자세한 내용은 뒤에 나오는 를 참조하십시오.

예:

{
"results": [
{
"tokens": [],
"tags": [],
"rulename": "",
"text": ""
}
],
"text": "",
"code": "-",
"message": "received illegal service authorization"
}

동기 HTTP의 경우, 인식 처리에 성공했을 때는 codemessage가 빈 문자열("")이 됩니다.

예:

...
"utteranceid": "20220602/14/018122d65d370a30116494c8_20220602_141442",
"text": "アドバンスト・メディアは、人と機械との自然なコミュニケーションを実現し、豊かな未来を創造していくことを目指します。",
"code": "",
"message": ""
...

비동기 HTTP의 경우, 작업 생성 요청에 성공했을 때는 codemessage를 반환하지 않습니다.

예:

{"sessionid":"017ac8786c5b0a0504399999","text":"..."}

비동기 HTTP의 결과・상태 조회

비동기 HTTP의 경우, 음성 인식 요청이 성공해도 음성 인식 작업 처리 중에 어떤 원인으로 처리가 중단될 수 있습니다. 이때 결과・상태 조회를 수행하면 stateerror가 되고, 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채널만 인식 대상이 됩니다. 음성 포맷의 스테레오를 참조하십시오)

또한, 음원에서 매우 먼 곳에서 녹음한 경우 등 불명확하고 음량이 작은 음성에서도 발화를 검출하지 못할 수 있습니다.

잘못된 음성 포맷을 지정하여 요청하지 않았는지

헤더가 없는 음성을 전송하는 경우, 요청 시 잘못된 음성 포맷을 지정하면 발화 검출이나 음성 인식 처리가 올바르게 수행되지 않습니다. 요청의 음성 포맷이 전송한 음성 데이터에 대해 올바르게 설정되어 있는지 확인하십시오.

규칙 문법을 사용하여 올바르게 발화하는 경우

(규칙 문법을 사용하지 않는 경우, 이 케이스는 고려할 필요가 없습니다) 올바르게 발화하고 있는데도 이 오류를 받는 경우에는 신뢰도의 임계값을 낮출 수 있습니다. 단, 신뢰도의 임계값을 낮추면 잘못된 발화를 받아들일 가능성이 높아집니다.

실제로 전송한 음성에 발화가 포함되어 있지 않은 경우 등, o를 오류로 간주할 필요가 없는 경우도 있습니다.

응답 코드와 메시지의 상세 내용

codemessage설명
+received unsupported audio format지원되지 않는 음성 데이터 형식의 음성 데이터를 수신
-received illegal service authorization부적절한 APPKEY(서비스 인증 키 문자열)을 수신
!failed to connect to recognizer server음성 인식 서버 내 통신 실패(DSRM 또는 DSRS 연결 실패)
>failed to send audio data to recognizer server음성 인식 서버 내 통신 실패(DSRS로 음성 데이터 전송 실패) 음성 데이터 전송 실패도 참조하십시오.
<failed to receive recognition result from recognizer server음성 인식 서버 내 통신 실패(DSRS로부터 인식 결과 수신 실패)
#received invalid recognition result from recognizer server음성 인식 서버 내 통신 실패(DSRS에서 수신한 인식 결과의 형식이 부적절)
$timeout occurred while receiving audio data from client클라이언트로부터 음성 데이터 수신 중 무통신 타임아웃이 발생
%received too large audio data from client클라이언트에서 수신한 음성 데이터 바이트 수가 너무 큼(WebSocket 인터페이스에서는 발생하지 않음)
orecognition result is rejected because confidence is below the threshold인식 결과 전체의 신뢰도가 신뢰도 임계값 미만이어서 인식 실패.
수신한 음성 데이터 전체에서 발화가 하나도 감지되지 않은 경우, 또는 모든 결과가 필러인 경우 등, 응답할 인식 결과가 존재하지 않을 때도 이 오류를 반환합니다. 리젝트도 참조하십시오.
brecognition result is rejected because recognizer server is busy음성 인식 서버가 혼잡하여 인식 실패
xrecognition result is rejected because grammar files are not loaded사전이 로드되지 않아 인식 실패
crecognition result is rejected because the recognition process is cancelled인식 처리 중단 요청으로 인해 인식 실패
?recognition result is rejected because fatal error occurred in recognizer server음성 인식 서버에서 인식 중 치명적 오류가 발생하여 인식 실패
^invalid parameter (...)잘못된 파라미터가 지정되었습니다. 비동기 HTTP 인터페이스에서만 발생합니다.