跳至主要内容

同步 HTTP 接口

同步 HTTP 接口是一个可以轻松将短音频文件转换为文本的 Web API。

endpoint

用于请求语音识别的 endpoint。根据是否保存日志,endpoint 不同。详情请参考日志保存

POST https://acp-api.amivoice.com/v1/recognize   (保存日志)
POST https://acp-api.amivoice.com/v1/nolog/recognize (不保存日志)

请求

请求参数列表

参数名
必须
说明
u指定在 My Page 上显示的 APPKEY,或者一次性 APPKEY
d设置与语音识别请求相关的各种参数。请参考 d 参数
a设置二进制音频数据。此数据必须作为 HTTP multipart 的最后一个部分。关于可发送的音频数据,请参考使用指南中的音频格式
c发送 RAW 数据(PCM)时的格式名称。可设置的值请参考音频格式
备注
  • 除音频数据外,可以通过查询参数或 multipart 发送。由于在查询参数中设置 d 参数可能会超出请求行的上限,因此建议通过 multipart 发送。
  • 如果在查询参数和 multipart 中都指定了相同的参数,则优先使用查询参数中设置的值。

d 参数

d 参数中,以半角空格分隔指定 key-value 格式的参数。d 参数的格式如下:

例:

<key>=<value> <key>=<value> <key>=<value> ...

包含空格的<value>请进行 URL 编码。以下示例指定了 grammarFileNamesprofileWords 两个参数。在 profileWords 中设置了一个显示为 "www",读音为 "とりぷるだぶる" 的单词。

grammarFileNames=-a-general profileWords=www%20%E3%81%A8%E3%82%8A%E3%81%B7%E3%82%8B%E3%81%A0%E3%81%B6%E3%82%8B

可以在 d 参数中指定以下内容。连接引擎名称(grammarFileNames)是必需的。

参数名
value
说明
grammarFileNames{连接引擎名称}指定连接引擎名称。可用的连接引擎名称列表显示在 My Page 上。另请参考语音识别引擎列表
profileId字符串用于指定注册词的 ID。详情请参考单词注册
profileWords字符串仅在会话期间有效的注册词列表。指定格式为 {显示} {读音}{显示} {读音} {类名}。指定多个单词时用 | 连接。详情请参考单词注册
keepFillerToken0|1指定是否输出填充词。设为 1 时不会删除填充词。默认为 0,自动从识别结果中删除填充词。请参考指定填充词输出
警告
  • profileId 可以使用由半角英数字和 "-"(半角减号)、"_"(半角下划线)组成的字符串。但是,以 "__"(两个半角下划线)开头的字符串被语音识别引擎保留,因此请不要指定以 "__"(两个半角下划线)开头的字符串。
  • 同时指定 profileIdprofileWords 时,需要先指定 profileId。

响应

响应结构

<result> 中包含以下 JSON:

说明
results"发言区间识别结果"的数组  ※虽然是数组形式,但元素数量始终为 1 个。
confidence置信度(0 到 1 的 value。 0: 置信度低, 1: 置信度高)
starttime发话开始时间(音频数据开头为 0)
endtime发话结束时间(音频数据开头为 0)
tags未使用(空数组)
rulename未使用(空字符串)
text识别结果文本
tokens识别结果文本的形态素数组
written形态素(单词)的显示
confidence形态素的置信度(识别结果的似然度)
starttime形态素的开始时间(音频数据开头为 0)
endtime形态素的结束时间(音频数据开头为 0)
spoken形态素的读音 *3
utteranceid识别结果信息 ID *1
text连接所有"发言区间识别结果"的整体识别结果文本
code表示结果的 1 个字符代码 *2
message表示错误内容的字符串 *2

*1 对于 WebSocket 语音识别协议,识别结果信息 ID 是为每个说话区间的识别结果信息分配的 ID。对于 HTTP 语音识别协议,它是为在 1 个会话中上传的(可能包含多个说话区间的)整个音频数据的识别结果信息分配的 ID。

*2 识别成功时: body.code == "" 且  body.message == "" 且  body.text != "" 识别失败时: body.code != "" 且  body.message != "" 且  body.text == ""

*3 日语引擎识别结果的 spoken 是平假名。 英语引擎识别结果的 spoken 不是读音(请忽略)。 中文引擎识别结果的 spoken 是拼音。

code 和 message 列表

当 <result> 中包含的 codemessage 设置了值时,表示请求失败。失败原因如下:

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 接口时出现。