接口描述¶
3. 交互过程¶
说明:所有服务端的响应都会在返回信息的header包含task_id参数,用于表示本次识别任务的ID,请记录下这个值,如果发生错误,请将task_id和错误信息提交到工单。
3.1 合成开始¶
客户端创建 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);
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 |
服务状态描述 |