语音合成
优质
小牛编辑
187浏览
2023-12-01
1.1. TTS(语音合成) WebSocket接口文档
1.1.1. 概述
本文档目的是描述Rokid云TTS(语音合成)WebSocket接口协议,面向想要了解TTS细节,并具有一定开发能力的开发者或用户。
1.1.2. 服务地址
环境 | 地址 | 用途 |
---|---|---|
线上 | wss://mapi.open.rokid.com/ws/tts | 对外提供的正式稳定环境 |
1.1.3. 协议详解
- 请求认证:在建立websocket连接时,通过http header authorization 进行请求认证
- TTS语音合成
WebSocket API 接入参考Demo
1.1.4. 协议地址
1.1.5. 协议概述
此协议遵循 websocket 协议。协议采用先认证,再使用的方式,步骤如下:
- 建立 wss 连接,注意是 websocket + ssl,在此基础上进行请求认证
- service 设置为 tts,此连接后续可进行一次或多次语音合成,直至连接断开
语音合成
流程
- 一次完整的语音合成的数据包以 id 来标识,称为一个 session
- 在websocket请求和响应中,都是遵循protobuf 2.0协议的;
- websocket请求Request通过protobuf组装好后需要转化成BinaryWebSocketFrame,目前不支持TextWebSocketFrame
Request如下
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
text | string | 需要转换的text文本 | 空 |
declaimer | string | 发音人,目前支持 中文成人 "zh" 与 中文儿童 "c1" 两种 | 空 |
codec | string | 语音流的编码,目前支持PCM、OPU、OPU2、mp3。 | 空 |
content_type | string | raw: 返回是二进制语音数据 url: 返回是对应语音数据CDN的url | raw |
id | int32 | 唯一标识,用于跟踪一个完整的请求,处理及响应事件。 | 0 |
midi | bytes | 用于歌曲合成使用,二进制midi文件 | 空 |
score | string | 歌词信息,用于歌曲合成使用 | 空 |
options | string | 可选json字段,配合各种需求使用详见下表 | 空 |
参数 | 类型 | 描述 |
---|---|---|
text | string | voice语音中包含的文字,如果request的content_type=url,则返回的是保存了文字的url |
voice | bytes | 合成的voice语音,如果request的content_type=url,则返回的是语音数据CDN的url |
finish | bool | 是否是此次合成请求的最后一个语音包 |
result | string | 结果信息 SUCCESS/ERROR等 |
id | int32 | 唯一标识,用于跟踪一个完整的请求,处理及响应事件。 |
说明
- result字段值代表本次请求是否成功,除了SUCCESS,其他返回值都表示错误(此时云端会主动断掉WebSocket连接),返回值如下:
- SUCCESS 成功
- BUSY 云端繁忙/调用受限/欠费
- UNAUTHENTICATED 验证未通过
- INTERNAL 云端内部错误
- BADREQUEST 网络或者协议导致的错误