多语种语音识别
一、接口描述
1. 功能描述
将蒙语、藏语(安多地区、康巴地区、卫藏地区)和维语的音频转换为对应语种的文本,识别准确率业内领先。支持流式识别和识别结果的动态纠正。
2. 接口数据要求
- 支持的音频格式:pcm
- 支持的音频采样率:16000Hz
- 支持的音频采样点大小:16bit
- 支持的声道数: 单声道
- 单次请求的音频时长限制:60秒内
3. 接口使用:
使用接口前,需要先完成API的下单购买,然后可使用已经封装好的SDK/参照接口鉴权规则进行相应开发,整体流程详见 接入流程。
二、多语种语音识别接口使用流程
完成一次多语种语音识别任务需要两步,每一步使用不同的HTTP请求。同一个任务的请求报文中Request-Id字段需一致,且不同于其他任务。
- 使用语音识别数据发送接口将待识别的音频数据发送到服务器,一次识别任务只需要发送一次该请求。
- 使用语音识别结果获取接口获取识别结果,一次识别任务需要多次发送该请求,直到该接口的响应报文中is_end字段值为1。
三、语音识别数据发送接口说明
1. 接口地址:
https://aiapi.jd.com/ballerai/asr_post_data
2. 请求方式
POST
3. 请求参数
(1)query请求参数
公共请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
appkey | String | 是 | 21d2b762ecb86593f9668526920f46c | 您的appkey,可在买家中心控制台中获取 |
timestamp | long | 是 | 1541491668961 | 请求的时间戳,精确到毫秒,timestamp有效期5分钟 |
sign | String | 是 | 6e148773a0337a8f2200ba90d445f083 | 签名,根据规则MD5(sectetkey+timestamp) |
(2)header请求参数
业务请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
Content-Type | String | true | application/octet-stream | 传输数据的类型。 必须为application/octet-stream。 |
Request-Id | String | true | 566e0f60-ee79-475c-b5eb-480a9f34647b | 一次语音识别任务的ID。 注意:示例值仅供参考, 使用时请务必通过 uuid 生成。对于同一次语音识别任务 Request-Id 需要保持一致,多个任务使用同一个将会产生不可预知的错误。 |
Language | String | true | tib_ad | 语种。可选值为: - tib_ad:藏语(安多地区)。 - tib_kb:藏语(康巴地区)。 - tib_wz:藏语(卫藏地区)。 - mon:蒙语。 - uig:维语。 |
Vad | String | true | on | 是否启用端点检测。可选值为: - on:启用。 |
Audio-Format | String | true | audio/L16;rate=16000 | 音频的采样格式(MIME格式),目前仅支持16000hz16bit的单通道PCM数据。 必须为audio/L16;rate=16000。 |
Input-Mode | String | true | once | 音频数据的发送模式,目前仅支持一次性的将音频数据发送给服务器。可选值为: - once:一次性的将音频数据发送给服务器。 |
(3)body请求参数
待识别的音频数据(二进制)。
4.返回参数
(1)公共返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | string | 1000 | 参见下方错误码-系统级错误码 |
charge | boolean | false 或 true | false:不扣费, true:扣费 |
remainTimes | long | 1305 | 剩余调用次数;免费api:每天剩余调用次数;收费api:剩余次数;无限制时为-1 |
remainSeconds | long | 1223456 | 剩余调用时间(s);免费api:-1;收费api:剩余调用时间;无限制时为-1 |
msg | string | 查询成功 | 参见下方错误码-系统级错误码 |
result | object | {...} | 查询结果 |
(2)业务返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | int | 0 | 请求处理的结果码 (0:成功;其他:失败) |
message | string | "success" | 对code字段的文本说明 |
request_id | string | f7409982-dc05-4d19-80c9-6169dd70b247 | 请求时传入的request_id |
5.返回示例
{
"code": "10000",
"charge": false,
"remainTimes": 4998,
"remainSeconds": -1,
"msg": "查询成功",
"result": {
"code": 0,
"message": "success",
"request_id": "f7409982-dc05-4d19-80c9-6169dd70b247"
}
}
四、语音识别结果获取接口
1. 接口地址:
https://aiapi.jd.com/ballerai/asr_get_result
2. 请求方式
GET
3. 请求参数
(1)query请求参数
公共请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
appkey | String | 是 | 21d2b762ecb86593f9668526920f46c | 您的appkey,可在买家中心控制台中获取 |
timestamp | long | 是 | 1541491668961 | 请求的时间戳,精确到毫秒,timestamp有效期5分钟 |
sign | String | 是 | 6e148773a0337a8f2200ba90d445f083 | 签名,根据规则MD5(sectetkey+timestamp) |
(2)header请求参数
业务请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
Request-Id | String | true | 566e0f60-ee79-475c-b5eb-480a9f34647b | 一次语音识别任务的ID。 注意:同一次语音识别任务需使用相同的ID,需与同一任务的语音识别数据发送接口中的Request-Id保持一致。 |
4.返回参数
(1)公共返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | string | 1000 | 参见下方错误码-系统级错误码 |
charge | boolean | false 或 true | false:不扣费, true:扣费 |
remainTimes | long | 1305 | 剩余调用次数;免费api:每天剩余调用次数;收费api:剩余次数;无限制时为-1 |
remainSeconds | long | 1223456 | 剩余调用时间(s);免费api:-1;收费api:剩余调用时间;无限制时为-1 |
msg | string | 查询成功 | 参见下方错误码-系统级错误码 |
result | object | {...} | 查询结果 |
(2)业务返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | int | 0 | 请求处理的结果码 (0:成功;其他:失败) |
message | string | success | 对code字段的文本说明 |
request_id | string | 3488a4fa-5f7d-11ea-b739-4023431f608e | 请求时传入的request_id |
is_end | int | 1 | 识别结果是否获取结束(0:未结束;1:结束) |
data | string | སྐུ་ཁམས་བཟང་། | 一个子句的识别结果 |
is_complete | int | 0 | 是否是最终的子句结果,不使用动态纠正功能时,只需使用该字段为1时的识别结果(0:非最终结果;1:最终结果) |
5.返回示例
{
"code": "10000",
"charge": false,
"remainTimes": 4998,
"remainSeconds": -1,
"msg": "查询成功",
"result": {
"code": 0,
"message": "success",
"is_end": 1,
"request_id": "3488a4fa-5f7d-11ea-b739-4023431f608e",
"data": "སྐུ་ཁམས་བཟང་།",
"is_complete": 1
}
}
五、错误码信息
1.系统级错误码
2.业务错误码
错误号(code) | 错误信息(message) | 描述 |
---|---|---|
0 | success | 成功 |
10001 | license file does not exist | 授权文件不存在 |
10002 | license is invalid | 无效的授权文件 |
10003 | authorization expires | 授权过期 |
10004 | authorization not started | 授权未开始 |
10005 | ability is not authorized | 能力未获得授权 |
10006 | device is not authorized | 设备未获得授权 |
10007 | results are limited | 限制部分结果的获取仅在使用测试授权的SDK中会出现 |
10008 | concurrency limit | 并发数限制 |
10009 | call interval limit | 调用间隔限制 |
10010 | number of wake-up words is limited | 唤醒词个数限制 |
10011 | hardware limited | 计算使用的硬件类型被限制 |
10012 | input mode limited | input_mode被限制 |
10013 | session mode limit | sessionmode被限制 |
10014 | authorization is terminate | 授权终止 |
10015 | vad limited | VAD无授权 |
10016 | once put size limited | 每一个PUT周期处理的数据量限制 |
10017 | get device info failed | 获取设备信息失败 |
10018 | put total size limited | PUT总的数据量限制 |
10019 | put times limited | PUT次数限制 |
10020 | license information encryption failed | 加密授权信息失败 |
10021 | license information save failed | 保存授权文件失败 |
10022 | correction time failed | 校时失败 |
10023 | correction time failed too many times | 校时失败太多次 |
10024 | cloud metering failed too many times | 服务器计量失败太多次 |
10025 | get process info failed | 获取进程相关信息失败 |
10026 | virtual machine unsupported | 不支持虚拟设备 |
10027 | data encrypt failed | 数据加密失败 |
10028 | data decrypt failed | 数据解密失败 |
10029 | call mode limited | 调用模式限制 |
10030 | language limited | 语种限制 |
10031 | audio format limited | 音频格式限制 |
10032 | sample format limited | 采样率限制 |
12001 | parameter is invalid | 无效的参数 |
12002 | session id invalid | 无效的SESSIONID |
12003 | resource dir is not exist | 资源路径未设置 |
12004 | wake-up word is invalid | 唤醒词无效 |
12005 | unknown ability | 未知的能力 |
12006 | parameter is unsupported | 不支持的参数 |
12007 | resource file is not exist | 未找到资源文件 |
12008 | resource file is mismatching | 资源文件不匹配 |
12009 | resource file is broken | 资源文件被破坏 |
12010 | cpu out of memory | CPU内存不足 |
12011 | gpu out of memory | GPU内存不足 |
12012 | gup device is not found | 未找到GPU设备 |
12013 | hardware invalid | 设置的硬件信息无效 |
12014 | sample rate invalid | 设置的采样率无效 |
12015 | sample size invalid | 设置的采样点大小无效 |
12016 | engine type invalid | 设置的引擎类型无效 |
12017 | engine type unsupported | 不支持的引擎类型 |
12018 | engine type not authorized | 引擎类型未授权 |
12019 | input mode invalid | 设置的input_mode无效 |
12020 | log level invalid | 日志级别错误 |
12021 | data length invalid | 数据长度无效 |
12022 | vad failed | VAD错误 |
12023 | organization id invalid | 组织ID无效 |
12024 | application id is invalid | 应用ID无效 |
12025 | application key is invalid | 应用KEY无效 |
12027 | ability id is invalid | 能力ID无效 |
12028 | language is invalid | 语言无效 |
12029 | audio format is invalid | 音频格式错误 |
12030 | domain is invalid | 域名无效 |
12031 | punctuation information invalid | 获取标点信息失败 |
12032 | ability sub type invalid | 能力子类型无效 |
12033 | sample format invalid | 采样格式错误 |
12034 | vad status conflicting | VAD状态冲突 |
15001 | http request failed | HTTP请求出错 |
15002 | http request timeout | HTTP请求超时 |
15003 | http is busy | HTTP请求忙,请稍后在试 |
15004 | http response empty | HTTP应答内容为空 |
15005 | http response format invalid | HTTP应答格式错误 |
15006 | http response not match | HTTP应答与请求不匹配 |
50001 | no time parameters are set | 未找到请求时间 |
50002 | request expires | 请求已过期 |
50003 | no header parameter set | 未找到请求报文头部的参数 |
50004 | head parameter invalid | 请求报文头部的参数无效 |
50005 | no checksum set | 未找到校验和 |
50006 | checksum mismatching | 校验和不匹配 |
50007 | device info invalid | 设备信息无效 |
50008 | request body format invalid | 请求包体格式无效 |
50009 | organization id mismatching | 组织ID不匹配 |
50010 | application id mismatching | 应用ID不匹配 |
50011 | application id mismatching | 应用KEY不匹配 |
50012 | put times parameter invalid | PUT次数参数无效 |
50013 | put total size parameter invalid | PUT总数据量参数无效 |
51014 | organization is not exist | 组织不存在 |
51015 | application is not exist | 应用不存在 |
51016 | license information not exist | 未找到授权信息 |
51017 | request id invalid | 请求ID无效 |
51018 | query request status failed | 检查请求ID状态失败 |
51019 | query computing service failed | 查询计算服务失败 |
51020 | query computing result failed | 获取结果失败 |
51021 | computing service is busy | 计算服务正忙,请求稍后重试 |
51022 | distribute computing task timeout | 计算任务分发超时 |
51023 | distribute computing task failed | 计算任务分发超时 |
51024 | cache overload | session的缓存超载 |
51025 | session status invalid | session状态错误 |
51026 | session expired | session超时 |
51027 | computing data invalid | 计算数据无效 |
51028 | callback url invalid | 回调地址无效 |
51029 | query sdk concurrency failed | 查询SDK端并发数失败 |
51030 | query sdk concurrency counter failed | 查询SDK端并发计数者失败 |
51031 | sdk concurrency invalid | SDK端并发数无效 |
51032 | sdk concurrency counter invalid | SDK端并发计数者无效 |
51033 | query sdk concurrency used failed | 查询SDK端并发使用数量失败 |
51034 | add sdk concurrency failed | 增加SDK端并发数失败 |
51035 | remove sdk concurrency failed | 删除SDK端并发数失败 |
51036 | update sdk concurrency failed | 更新SDK端并发数失败 |
51037 | web service is busy try again | WEB服务正忙 |
51038 | receive data timeout | 接收数据超时 |
51039 | receive result timeout | 接收结果超时 |
51040 | connection disconnected | 连接已断开 |
51041 | update ability status failed | 更新能力使用状态失败 |
51042 | query call mode failed | 查询调用方式失败 |
51043 | query put times failed | 查询put次数失败 |
51044 | query cloud concurrency failed | 查询服务器端并发数失败 |
51045 | update cloud concurrency failed | 更新服务器端并发失败 |
51046 | update put once size failed | 更新put单次数据量失败 |
51047 | put size out of bounds | PUT数据大小不在许可范围内 |
51048 | business param invalid | 业务参数无效 |
51049 | data param invalid | 数据参数无效 |
51050 | image mode invalid | 图像模式无效 |
51051 | request time invalid | 请求时间无效 |
51052 | cache data distribute failed | 缓存数据发布失败 |
51053 | vad param invalid | VAD参数错误 |
51054 | vad param2 invalid | VAD参数2错误 |
90001 | internal error | 内部错误 |