接口描述

1. 功能介绍

支持输出WAV、AAC、OGG和MP3编码格式数据。

2. 接口地址

ws://dialoguex.tts-ha.dm-ai.cn/tts

3. 交互过程

_images/interaction.png

说明:所有服务端的响应都会在返回信息的header包含task_id参数,用于表示本次识别任务的ID,请记录下这个值,如果发生错误,请将task_id和错误信息提交到工单。

3.1 合成开始

以c++SDK为例:
  • 客户端创建 WebSocket 客户端实例

  • 需要指定 header, 字典,需要有 token 和 task_id key;目前后端不处理token值; task_id 为一个唯一的 UID (字符串);

  • 消息payload参考“请求参数”;

  • 需要注册 on_open, on_message, on_close 回调函数;

  • 客户端在 on_open,调用websocket_client.send() 像服务端发送 开始请求 (JSON消息)

auto text = serialize_string();
this->_c->send(hdl, text, websocketpp::frame::opcode::value::text, ec);

3.2 语音接收

客户端在on_message回调函数中接收合成的二进制音频流,SDK接收并处理二进制数据,合成的语音文件保存在build文件夹中。

3.3 合成结束

  • 服务端合成结束会发送合成完毕事件通知,详细信息见4。

  • 发送事件通知后服务端会主动关闭websocket链接。

  • 客户端也可主动关闭链接,_c->stop()。

4. 参数设置

客户端发起语音合成请求,在请求消息中进行参数设置,各参数含义如下。

  • 请求示例

{
    "payload":
        {
            "text": "Babu matsala, yin lissafin cewa 10km daidai 10000m.".
            "chunk_size": 22050,
            "split_threshold": 20,
            "cut_sen": True,
            "debug_flag": True,
            "format": "aac",
            "bit_rate": "16k"
        },
    "header":
        {
            "task_id": "4df29f9eb43c43de89467febd165c00f"
        }
}

字段名

是否必选

数据类型

说明

text

是

string

待合成文本,文本内容必须采用utf-8,输入文本不能超过300个字符,超过300字符的内容会被截断

chunk_size

否

int

wav启用,每次传输数据流大小,可选范围(100,100000)默认值为22050

split_threshold

否

int

可设置语义切分长度,默认值为20

cut_sen

否

bool

可设置false/true,默认true,true为切分单句长度超过split_threshold的句子

debug_flag

否

bool

可设置false/true,默认为false,为false不显示debug时间戳不保存中间输出,为true时显示debug时间戳并保存中间输出

format

否

string

可设置wav/opus/aac/mp3/ogg,默认值为wav

bit_rate

否

string

opus/aac/mp3/ogg启用,可设置16k/32k,默认值32k

5. 返回参数

语音合成完毕,服务端发送合成完毕事件通知。

  • 正确返回示例

{
    "header":
        {
            "task_id":"4df29f9eb43c43de89467febd165c00f",
            "namespace": "SpeechSynthesizer",
            "name": "SynthesisCompleted",
            "status": 20000000,
            "status_message": "GATEWAY|SUCCESS|Success."
        }
}
  • 错误返回示例

{
    "header":
        {
            "task_id":"9dasdrghb43c43de89467febd165c00f",
            "namespace": "SpeechSynthesizer",
            "name": "TaskFailed",
            "status": status,
            "status_message": "status_message"

        }
}

字段名

是否必选

数据类型

说明

task_id

是

string

任务唯一id

namespace

是

string

命名空间

name

是

string

状态名

status

是

int

服务状态码

status_message

是

string

服务状态描述

6. 服务状态码

错误码

原因

解决办法

400000000

text丢失

请检查后重传

400000002

内部处理错误

算法推理不断完善中,对特殊的组合不能进行处理,请提交text内容,算法人员做更新完善。