实时语音识别

最近更新时间: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_idString音频流识别全局唯一标识,一个 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 解析失败。
10101005asr 转译失败,请稍后重试。