同传 PaaS API 简介
概念解释
使用 WebSocket 连接,实时输入音频数据,返回识别结果和翻译结果,同时支持“翻译结果TTS”和“说话人识别”。
说明
Hi,您好,欢迎使用有道智云接口服务。
本文档主要针对需要集成HTTP API的技术开发工程师,详细描述接口计费,入参,返回值等信息。
如果您有与我们商务合作的需求,可以通过以下方式联系我们:
商务邮箱: AIcloud_Business@corp.youdao.com
如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:
客服QQ:1906538062
AIGC产品技术交流群 :837394306
联系邮箱: zhiyun@corp.youdao.com
温馨提示:
- 本文档主要针对开发人员,接入测试前需要获取应用ID和应用密钥,并创建应用;如果您还没有,请按照 新手指南 获取。
- 平台向每个账户赠送50元的体验金,供用户集成前测试所用。
协议须知
调用方在集成本接口时,请遵循以下规则。
| 规则 | 描述 |
|---|---|
| 传输方式 | WSS |
| 请求方式 | WebSocket |
| 字符编码 | 二进制数据流 |
| 请求格式 | wav |
| 响应格式 | JSON |
接口定义
同传接口地址:
wss://zhiyun-private-doctrans.youdao.com/stream-audio/stream-si
接口调用流程
服务接口的调用分为认证、实时通信两阶段。
认证阶段
请求参数
| 参数名称 | 类型 | 含义 | 是否必填 | 示例或描述 |
|---|---|---|---|---|
| appKey | string | 应用ID | 是 | 控制台创建应用获取 |
| salt | string | 随机值 | 是 | |
| curtime | string | 时间戳(单位到秒) | 是 | 1757560399 |
| sign | string | 签名 | 是 | 参见下方的签名生成方法 |
| from | string | 原语种 | 否 | 参考语种列表 |
| to | string | 目标语种 | 否 | 参考语种列表 |
| speakerRequired | boolean | 支持说话人识别 | 否 | 默认 false |
| ttsRequired | boolean | 支持翻译结果 TTS | 否 | 默认 false |
| ttsSex | String | TTS 性别,可选值: female, male | 否 | 默认 female |
参数额外说明
1、 auto为源语种的时候,目标语种须为auto
2、❗❗❗音频格式要求❗❗❗
格式:wav(不压缩、pcm编码)
采样率:16k
位深:16bit
声道:单声道
签名生成方法如下(v4):
sign=sha256(appKey+salt+curtime+应用密钥);
认证阶段响应示例:
服务端通过 text message 返回 json 字符串的认证结果,参数示例:
成功:
{
"result": [],
"action": "started",
"errorCode": "0"
}
失败:
{
"result": [],
"msg": "signature check failed",
"errorCode": "202"
}
实时通信阶段
认证成功之后,进入实时通信阶段,此阶段客户端发送音频流和结束标识,并接收结果或错误。
2.1 发送音频流
此阶段客户端通过 binary message 发送音频流,内容为音频的二进制数据,此过程的发送频率将影响文字结果展示的实时性。
强烈建议以 200ms 间隔发送 200ms 音频数据,若间隔超时 15s 以上,服务端将停止识别。
2.2 发送结束标识
客户端完成所有音频数据的发送后,需发送一个特殊的 binary message 到服务端作为音频流发送结束的标识,内容为:
{"end": "true"}
注:该标识大小写敏感,建议直接复制。
2.3 接收转写结果
交互过程中,服务端不断通过 text message 返回实时识别结果到客户端,响应结果是以json形式输出(为text message)。
识别结果参数说明:
| 字段 | 类型 | 含义 |
|---|---|---|
| errorCode | String | 错误码 |
| action | String | 识别行为: started, recognition, error |
| isEnd | boolean | 识别是否结束 |
| result | 对象数组 | 目前数组只包含一个元素 |
| result[0].st | Object | 识别句子对象 |
| result[0].st.sentence | String | 识别句子内容 |
| result[0].st.bg | Number | 句子开始时间,毫秒 |
| result[0].st.ed | Number | 句子开始时间,毫秒 |
| result[0].st.type | Number | 参见 partial 属性,0代表完整句子,1代表非完整句子 |
| result[0].st.partial | boolean | 是否完整句子 |
| result[0].st.translation | String | 翻译结果 |
| result[0].st.speaker | String | 说话人编号 |
| result[0].st.tts | String | 翻译结果的 TTS, wav格式字节数组对应的16进制编码字符串 注:仅当设置请求参数 ttsRequired=true,且返回结果为“完整句子”时该字段才存在。 |
| result[0].segId | Number | 识别结果顺序编码,从 1 开始 |
| data.resolution | String | 参见对应的请求参数 |
| data.bgm | boolean | 参见对应的请求参数 |
| data.movementAmplitude | String | 参见对应的请求参数 |
| data.watermark | boolean | 参见对应的请求参数 |
| data.createAt | String | 任务创建时间 |
响应样例
{
"errorCode": "0",
"action": "recognition",
"result": [
{
"st": {
"sentence": "This is English testing.",
"bg": 0,
"ed": 1860,
"type": 1,
"partial": true,
"translation": "这是英语测试。"
"speaker": "0"
},
"segId": 1
}
],
"isEnd": false
}
支持的语种
| 语种名称 | 语种代码 |
|---|---|
| 西班牙语 | es |
| 法语 | fr |
| 阿拉伯语 | ar |
| 俄语 | ru |
| 葡萄牙语 | pt |
| 德语 | de |
| 日语 | ja |
| 印地语 | hi |
| 韩语 | ko |
| 意大利语 | it |
| 荷兰语 | nl |
| 瑞典语 | sv |
| 波兰语 | pl |
| 土耳其语 | tr |
| 泰语 | th |
| 越南语 | vi |
| 印尼语 | id |
| 马来语 | ms |
| 粤语 | yue |
| 中文 | zh-CHS |
| 英文 | en |
| 自动识别 | auto |
- auto支持自动语种识别和翻译
API错误代码列表
| 状态码 | 状态码含义 |
|---|---|
| 0 | 成功 |
| 1 | 未知错误,请联系客服 |
| 101 | 参数错误,请参见接入文档 |
| 108 | 应用ID无效,注册账号,登录后台创建应用并完成绑定,可获得应用ID和应用密钥等信息 |
| 110 | 当前应用ID没有权限访问此服务,需要在控制台给当前应用ID开通此服务 |
| 112 | 请求的服务不存在 |
| 202 | 签名检验失败 |
| 206 | 因为时间戳无效导致签名校验失败 |
| 207 | 重放请求 |
| 901000 | 认证服务异常,请联系客服 |
| 901100 | 翻译服务异常,请联系客服 |
| 901110 | 大模型翻译服务异常,请联系客服 |
| 901150 | 语音合成调用失败 |
| 901200 | 语音识别算法错误 |
| 901201 | 语音识别算法连接失败 |
| 901202 | 语音识别算法连接提前关闭 |
| 901203 | 语音识别算法连接异常断开 |
| 901210 | 客户端连接空闲超时 |
| 901220 | 音频缓存队列溢出 |
| 901230 | 说话人识别错误 |
| 909999 | 未知异常 |
常用语言 Demo
Java 示例
暂无
python3 示例
go 示例
暂无