跳转到内容

大模型实时语音识别 API 简介

概念解释

使用 WebSocket 连接,实时输入音频数据,返回流式语音识别结果。接口支持中间识别结果、完整句子结果、词级时间戳、说话人识别、auto 多语种 ASR 模式、ASR 热词和连续静音自动结束。

说明

Hi,您好,欢迎使用有道智云接口服务。

本文档主要针对需要集成 WebSocket API 的技术开发工程师,详细描述接口认证、入参、返回值、音频格式和常见错误码等信息。

接入测试前需要获取应用 ID 和应用密钥,并确认当前应用已开通流式语音识别服务权限。

协议须知

调用方在集成本接口时,请遵循以下规则。

规则描述
传输方式WSS
请求方式WebSocket
字符编码URL 参数使用 UTF-8,音频使用二进制数据流
请求格式wav(不压缩、PCM 编码)
响应格式JSON

接口定义

流式 ASR 接口地址

wss://openapi.youdao.com/stream-audio/stream-asr

请求参数

请求参数通过 WebSocket 连接 URL 的 query string 传递。

参数名称类型含义是否必填示例或描述
appKeystring应用 ID
saltstring随机值建议使用 UUID
curtimestring当前时间戳,单位秒1757560399
signstring签名参见下方的签名生成方法
langTypestring音频语种zh-CHSenjaauto

参数额外说明

  1. langType=auto 表示由服务端配置选择支持多语种识别的 ASR 模型。

音频格式要求

属性要求
格式wav(不压缩、PCM 编码)
采样率16k
位深16 bit
声道单声道

客户端需要把音频按二进制 WebSocket frame 分片发送。建议按音频真实时长控制发送频率,例如 16k、16bit、单声道音频每次发送 3200 字节时,对应约 100ms 音频。

结束消息

音频发送完成后,客户端必须发送一个二进制 WebSocket frame,内容为以下 UTF-8 字节序列:

json
{"end": "true"}

服务端收到结束消息后,会等待算法侧最终结果并返回 isEnd=true 的结束响应。

签名生成方法如下(v4):

text
sign = sha256(appKey + salt + curtime + 应用密钥)

其中 curtime 为秒级时间戳,salt 为调用方生成的随机字符串。

请求 URL 示例

text
wss://openapi.youdao.com/stream-audio/stream-asr?appKey=应用ID&salt=随机值&curtime=1757560399&sign=签名&langType=zh-CHS&speakerRequired=false&timestampRequired=true&vadEos=0

auto 多语种 ASR 示例:

text
wss://openapi.youdao.com/stream-audio/stream-asr?appKey=应用ID&salt=随机值&curtime=1757560399&sign=签名&langType=auto&speakerRequired=false&timestampRequired=true

响应结果

字段类型含义
requestIdstring请求 ID,用于问题排查
errorCodestring错误码,0 表示成功
actionstring响应行为:startedrecognitionerror
msgstring错误描述或状态描述
closeCodestring关闭原因编码,仅错误关闭时可能返回
isEndboolean识别是否结束
result对象数组识别结果数组,目前通常只包含一个元素
result[0].stobject识别句子对象
result[0].st.sentencestring识别句子内容
result[0].st.bgnumber句子开始时间,毫秒
result[0].st.ednumber句子结束时间,毫秒
result[0].st.typenumber句子类型,0 代表完整句子,1 代表非完整句子
result[0].st.partialboolean是否为非完整句子;false 表示完整句子
result[0].st.ws对象数组词级时间戳列表
result[0].st.ws[].wstring词文本
result[0].st.ws[].wbnumber词开始时间,毫秒
result[0].st.ws[].wenumber词结束时间,毫秒
result[0].st.speakerstring说话人编号,仅 speakerRequired=true 时可能返回
result[0].segIdnumber识别结果顺序编号,从 1 开始
result[0].seg_idnumber兼容旧接口的顺序编号字段,与 segId 含义一致

开始响应样例

json
{
  "requestId": "f8f8d2b776a24e91a145d4dd26f5b7a5",
  "errorCode": "0",
  "action": "started",
  "msg": "成功"
}

识别响应样例

中间识别响应样例(仅在显式传 partialAsrRequired=true 且增量 ASR 未断句时可能返回):

json
 {
  "requestId": "1785312554422-17100767562388193-577",
  "errorCode": "0",
  "action": "recognition",
  "isEnd": false,
  "result": [
    {
      "st": {
        "sentence": "主席",
        "bg": 1280,
        "type": 1,
        "ws": [
          {
            "w": "主",
            "wb": 1280,
            "we": 1440
          },
          {
            "w": "席",
            "wb": 1440,
            "we": 1600
          }
        ],
        "partial": true,
        "ed": 1600
      },
      "segId": 0,
      "seg_id": 0
    }
  ]
}

完整句识别响应样例:

json
 {
  "requestId": "1785312554422-17100767562388193-577",
  "errorCode": "0",
  "action": "recognition",
  "isEnd": false,
  "result": [
    {
      "st": {
        "sentence": "主席先生。",
        "bg": 1280,
        "type": 0,
        "ws": [
          {
            "w": "主",
            "wb": 1280,
            "we": 1440
          },
          {
            "w": "席",
            "wb": 1440,
            "we": 1600
          },
          {
            "w": "先",
            "wb": 1600,
            "we": 1920
          },
          {
            "w": "生",
            "wb": 1920,
            "we": 2000
          }
        ],
        "partial": false,
        "ed": 2000
      },
      "segId": 0,
      "seg_id": 0
    }
  ]
}

结束响应样例

json
{
  "requestId": "f8f8d2b776a24e91a145d4dd26f5b7a5",
  "errorCode": "0",
  "action": "recognition",
  "msg": "成功",
  "isEnd": true
}

错误响应样例

json
{
  "requestId": "f8f8d2b776a24e91a145d4dd26f5b7a5",
  "errorCode": "101",
  "action": "error",
  "msg": "langType: 不能为空"
}

支持的语种

英文名称语言代码中文名称
Autoauto自动检测
Chinese (Simplified)zh-CHS中文(简体)
Englishen英语
Russianru俄语
Japaneseja日语
Spanishes西班牙语
Vietnamesevi越南语
Arabicar阿拉伯语
Indonesianid印度尼西亚语
Thaith泰语

服务配置

支持格式免费用户最大支持并发单次最大请求时长(s)每小时最大音频时长(s)每小时最大连接次数支持语言
wav103600600003000中/英等,参考详细语言列表

注意:如需上调调用量请联系技术人员咨询。

错误代码列表

错误码含义
101缺少必填的参数,首先确保必填参数齐全,然后,确认参数书写是否正确
102不支持的语言类型
103翻译文本过长
104不支持的API类型
105不支持的签名类型
106不支持的响应类型
107不支持的传输加密类型
108应用ID无效,注册账号,登录后台创建应用和实例并完成绑定,可获得应用ID和应用密钥等信息
109batchLog格式不正确
110无相关服务的有效实例,应用没有绑定服务实例,可以新建服务实例,绑定服务实例。注:某些服务的结果发音需要tts实例,需要在控制台创建语音合成实例绑定应用后方能使用。
111开发者账号无效
112请求服务无效
113q不能为空
114不支持的图片传输方式
201解密失败,可能为DES,BASE64,URLDecode的错误
202签名检验失败,请确认应用ID和应用密钥的正确性。
203访问IP地址不在可访问IP列表
205请求的接口与应用的平台类型不一致,确保接入方式(Android SDK、IOS SDK、API)与创建的应用平台类型一致。如有疑问请参考入门指南
206因为时间戳无效导致签名校验失败
207重放请求
301辞典查询失败
302翻译查询失败
303服务端的其它异常
304会话闲置太久超时
401账户已经欠费停
402offlinesdk不可用
411访问频率受限,请稍后访问
412长请求过于频繁,请稍后访问
901000认证服务异常,请联系客服
901010并发量过高,请稍后重试
901020计费服务异常,请联系客服
901030ZK 服务异常,请联系客服
901200语音识别算法错误
901201语音识别算法连接失败
901202语音识别算法连接提前关闭
901203语音识别算法连接异常断开
901204语音识别算法响应超时
901205语音识别算法空闲超时
901206不支持的 ASR 语种
901210客户端连接空闲超时
901211客户端连接静音超时
901220音频缓存队列溢出
901230说话人识别错误
901231语种识别错误,新 langType=auto 主流程通常不触发
901232分句错误
909998服务终止
909999未知异常

常见语言Demo

Java 示例

暂无

Python 示例

暂无

C# 示例

暂无

Php 示例

暂无

go 示例

暂无