跳至主要内容

响应代码和消息

本节说明处理失败时的响应。

HTTP 接口

同步 HTTP 和异步 HTTP 的语音识别Job创建请求

当语音识别请求失败时,语音识别结果顶层的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,当Job创建请求成功时,不会返回codemessage

示例:

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

异步 HTTP 的结果和状态获取

对于异步 HTTP,即使语音识别请求成功,语音识别Job处理过程中也可能因某些原因中断处理。此时,获取结果和状态时,state将变为errorerror_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 接口发送的音频数据不包含音频数据时
对策

发生此错误时,请检查以下事项:

  • 是否正在发送音频数据
  • 发送的音频是否为空文件(零字节文件)
  • 发送的容器格式的主体中是否包含音频数据

即使数据已发送,如果不包含音频,也会返回后面提到的o

拒绝 (响应代码 o)

原因

在以下情况下会返回此响应:

  • 无法从音频中检测到语音。
  • 能够从音频中检测到语音并进行语音识别,但结果的置信度低于置信度阈值。
  • 能够从音频中检测到语音并进行语音识别,但没有可输出的字符。(下面会补充说明)
备注

无论是哪种原因,错误消息始终为recognition result is rejected because confidence is below the threshold

备注

在以下情况下,语音识别结果中不存在可输出的字符:

  • 所有音频都被识别为"あー"或"えーと"等填充词,并自动删除
  • 所有音频都被推测为噪音

但是,当keepFillerToken设置为1时,会输出填充词。

在使用 AmiVoice API 进行文字转写时,会进行语音检测和语音识别两个阶段的流水线处理。如果没有进行语音检测,就不会进行语音识别。在语音检测阶段,不仅会考虑音量,还会使用深度学习模型来判断是否为人声,但在进行语音识别处理后,最终可能会被推测为噪音。

对策

发生此错误时,请检查以下事项:

发送的音频数据中是否包含语音

请检查发送的音频数据。例如,以下类型的音频数据无法检测到语音。可能是程序错误或录音系统存在问题。

  • 无声
  • 只包含噪音
  • 立体声音频中只有第二声道包含语音(对于多声道音频,只有第一声道会被识别。请参阅音频格式的立体声部分)

此外,如果在离音源非常远的地方录音,也可能无法从不清晰且音量较小的音频中检测到语音。

是否在请求时指定了错误的音频格式

如果发送的音频没有 header,在请求时指定错误的音频格式可能会导致语音检测或语音识别处理不正确。请确认请求中的音频格式是否正确设置为与发送的音频数据相匹配。

使用规则语法并正确发音的情况

(如果不使用规则语法,则无需考虑此情况) 如果正确发音但仍收到此错误,可以降低置信度阈值。但是,降低置信度阈值可能会增加接受错误发音的可能性。

提示

在实际发送的音频不包含语音等情况下,可能不需要将o视为错误。

响应代码和消息详细信息

codemessage说明
+received unsupported audio format接收到不支持的音频数据格式
-received illegal service authorization接收到非法的 APPKEY(service 认证密钥字符串)
!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 接口时出现。