实时语音识别
最近更新时间:2023-06-29 10:46:32 前往 Coding 编辑 导出文档
1. 接口描述
接口请求域名:winner-api.neunit.com:18053
接口请求路径:ws /cloud/asr/v1/stream
本接口服务采用 WebSocket 协议,对实时音频流进行识别,在一句话说完后返回识别结果,达到说完一句返回一句的效果。
- 音频属性需要:采样率:16000Hz,采样精度:16bits,声道:单声道(mono)
- pcm 大小为:320、640 或 960 字节
2. 接口调用流程
接口调用流程分为两个阶段:握手阶段和识别阶段。两阶段后台均返回 text message,内容为 json 序列化字符串,以下是格式说明:
握手阶段
请求格式
握手阶段,客户端主动发起 WebSocket 连接请求,请求 URL 格式为:
ws://winner-api.neunit.com:18053/cloud/asr/v1/stream?{请求参数}
参数说明
以下请求参数列表仅列出了接口请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
voice_id | 是 | String | 音频流识别全局唯一标识,一个 WebSocket 连接对应一个,用户自己生成(推荐使用 uuid),最长128位。 |
请求响应
客户端发起连接请求后,后台建立连接进并进行签名校验,校验成功则返回 code 值为0的确认消息表示握手成功;如果校验失败,后台返回 code 为非0值的消息并断开连接。
{"code":0,"message":"success","voice_id":"RnKu9FODFHK5FPpsrN"}
识别阶段
握手成功之后,进入识别阶段,客户端上传语音数据并接收识别结果消息。
上传数据
在识别过程中,客户端持续上传 binary message 到后台,内容为音频流二进制数据。发送字节为 320、640 或 960 字节。
音频流上传完成之后,客户端需发送 end
,通知后台结束识别。
接收消息
客户端上传数据的过程中,需要同步接收后台返回的实时识别结果,结果示例:
{"code":0,"message":"success","voice_id":"RnKu9FODFHK5FPpsrN","result":"这是一个成功样例"}
3. 开发者资源
SDK
云 API 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
4. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
错误码 | 描述 |
---|---|
10101001 | 音频文件 url 获取失败。 |
10101002 | 参数 url 不能为空。 |
10101003 | 参数 data 不能为空。 |
10101004 | 参数 data 解析失败。 |
10101005 | asr 转译失败,请稍后重试。 |