1.1.1. 语音合成 WebSocket 接口定义文档
1.1.2. 概述
本文档目的是描述云端语音接口的 WebSocket 版本的开放协议,面向想要了解语音合成(TTS)细节,并具有一定开发能力的开发者或用户。
1.1.3. 协议详解
WebSocket API 接入参考Demo
WebSocket 接入Demo(JAVA)
WebSocket 接入Demo(Python)
1.1.4. 服务地址
环境 |
地址 |
用途 |
线上 |
wss://apigwws.open.rokid.com/api |
对外提供的正式稳定环境 |
1.1.5. 协议地址
1.1.6. 协议概述
此文档用于定义开放平台上云端应用接口开发协议,协议遵循 websocket 协议。协议采用先认证,再使用的方式,步骤如下:
- 建立 wss 连接,注意是 websocket + ssl
- 认证设备
- 如果认证中 service 为 speech,则此连接后续可进行一次或多次语音交互,直至连接断开
- 如果认证中 service 为 tts,则此连接后续可进行一次或多次语音合成,直至连接断开
- 如果需要同时使用语音识别与语音合成,则需要建立两条 wss 连接,每条连接需要分别作认证
语音合成接入说明
流程
- 需要先进行 service 为 tts 的 设备认证
- 一次完整的语音合成的数据包以 id 来标识,称为一个 session
- 语音数据以流的形式返回
- 中间数据块 finish = false
- 以 finish = true 的数据块结束
TtsRequest
参数 |
类型 |
描述 |
默认值 |
id |
int32 |
唯一标识,用于跟踪一个完整的请求,处理及响应事件。 |
0 |
text |
string |
需要转换的text文本 |
空 |
declaimer |
string |
发音人,目前支持 中文成人 "zh" 与 中文儿童 "c1" 两种 |
空 |
codec |
string |
语音流的编码,目前支持PCM、OPU、OPU2、opus、mp3。 |
空 |
sample_rate |
uint32 |
语音流的码率,目前支持 16000 与 24000 |
24000 |
说明
- declaimer 发音人
- zh: 成人,会读中文与英文
- c1: 儿童,会读中文与英文(完善中)
- text 中的文本中可以设置 SSML 标签,详见SSML文档
- codec 编码格式:
- pcm:24000,16bit,mono
- opu:由数据帧组成,每帧由 1字节(后面数据长度)与 用opus压缩320字节后的数据
- opu2:与 opu 区别是没有表示数据长度的1字节
- mp3:mp3编码,保存成文件可以直接用播放器播放
- opus:标准8字节头的opus编码
- sample_rate 可设置为 16000 或 24000,16000 语音数据较少,所需带宽较小,效果较差,默认为24000
TtsResponse
参数 |
类型 |
描述 |
id |
int32 |
唯一标识,用于跟踪一个完整的请求,处理及响应事件。 |
result |
SpeechErrorCode |
错误信息 |
text |
string |
voice语音中包含的文字 |
voice |
bytes |
合成的voice语音 |
finish |
bool |
是否是此次合成请求的最后一个语音包 |
说明
- 接收到第一个数据块就可以开始播放,以加快响应速度