语音合成

优质
小牛编辑
179浏览
2023-12-01

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 连接,每条连接需要分别作认证

语音合成接入说明

流程
  1. 需要先进行 service 为 tts 的 设备认证
  2. 一次完整的语音合成的数据包以 id 来标识,称为一个 session
  3. 语音数据以流的形式返回
  4. 中间数据块 finish = false
  5. 以 finish = true 的数据块结束
TtsRequest
参数类型描述默认值
idint32唯一标识,用于跟踪一个完整的请求,处理及响应事件。0
textstring需要转换的text文本
declaimerstring发音人,目前支持 中文成人 "zh" 与 中文儿童 "c1" 两种
codecstring语音流的编码,目前支持PCM、OPU、OPU2、opus、mp3。
sample_rateuint32语音流的码率,目前支持 16000 与 2400024000
说明
  1. declaimer 发音人
    • zh: 成人,会读中文与英文
    • c1: 儿童,会读中文与英文(完善中)
  2. text 中的文本中可以设置 SSML 标签,详见SSML文档
  3. codec 编码格式:
    • pcm:24000,16bit,mono
    • opu:由数据帧组成,每帧由 1字节(后面数据长度)与 用opus压缩320字节后的数据
    • opu2:与 opu 区别是没有表示数据长度的1字节
    • mp3:mp3编码,保存成文件可以直接用播放器播放
    • opus:标准8字节头的opus编码
  4. sample_rate 可设置为 16000 或 24000,16000 语音数据较少,所需带宽较小,效果较差,默认为24000
TtsResponse
参数类型描述
idint32唯一标识,用于跟踪一个完整的请求,处理及响应事件。
resultSpeechErrorCode错误信息
textstringvoice语音中包含的文字
voicebytes合成的voice语音
finishbool是否是此次合成请求的最后一个语音包
说明
  1. 接收到第一个数据块就可以开始播放,以加快响应速度