异步 HTTP 接口
异步 HTTP 接口是一个用于长时间音频转写的非阻塞 HTTP API。
要使用此 API,请执行以下步骤:
- 创建语音识别Job
- 轮询检查语音识别Job的状态并获取结果
使用方法
1. 创建语音识别Job
Job创建的 API 请求与同步 HTTP 接口相同,设置请求参数,并将请求发送到异步 HTTP 接口的 endpoint。
POST https://acp-api-async.amivoice.com/v1/recognitions
例如,要使用 curl 命令发送音频文件 test.wav 的语音识别请求,不保存日志,可以执行以下操作:
curl https://acp-api-async.amivoice.com/v1/recognitions \
-F u={APP_KEY} \
-F d="grammarFileNames=-a-general loggingOptOut=True" \
-F a=@test.wav
虽然 endpoint 与同步 HTTP 接口不同,但请求参数的设置方法相同。
备注
某些参数(如情绪分析)仅支持异步 HTTP 接口。
警告
与同步 HTTP 接口不同,日志保存的有无不是通过 endpoint 指定,而是通过请求参数指定。
默认情况下会保存日志。要不保存日志,请在 d
参数中指定 loggingOptOut=True
。
成功时
成功时的响应包含 sessionid
。这是用户语音识别请求的Job ID,用于检查Job状态和获取结果。
text
始终返回 "..."。
示例
{"sessionid":"017ac8786c5b0a0504399999","text":"..."}
失败时
失败时的响应不包含 sessionid
。可以通过 code
和 message
判断失败原因。
请参阅响应代码和消息。
示例
{
"results": [{ "tokens": [], "tags": [], "rulename": "", "text": "" }],
"text": "",
"code": "-",
"message": "received illegal service authorization"
}
2. 检查语音识别Job状态并获取结果
语音识别请求成功后,请检查Job状态并轮询直到 status
变为 completed
或 error
。
获取Job状态
Job在服务器端按顺序执行。要检查Job状态或获取结果,请使用 endpoint GET /v1/recognitions/{session_id}
以获取结果。
将 sessionid
设置为Job创建时获得的Job ID。将请求参数中的认证信息(authorization
)指定在 Authorization
header 中。
使用 curl 执行时,可以执行以下操作。这里假设 sessionid
是 017c25ec12c00a304474a999。
curl -H "Authorization: Bearer {APPKEY}" \
https://acp-api-async.amivoice.com/v1/recognitions/017c25ec12c00a304474a999