当前流式TTS单点能力基于端云协议实现,如需实现ASR、LLM、TTS端云全链路功能,请参考端云交互链路协议
host
为避免你的api_key外泄,该文档的接口均只适用于云端对接,不建议使用在设备端侧进行使用。
请求地址
GET wss://api.listenai.com/v1/tts/stream?api_key=xxx
协议发送参数
| 名称 | 类型 | 说明 | 是否必填 | 备注 |
|---|---|---|---|---|
| status | int | 请求状态(0: 初始化、1: 中间数据、2: 结束) | 是 | |
| version | string | v2: 支持返回pcm、mp3音频 v3:支持返回m3u音频 |
是 | 建议使用v2 |
| payload | object | 业务数据 | 否 | |
| payload.format | string | mp3 pcm |
否 | 默认mp3 |
| payload.vcn | string | 发音人参数 聆玉昭pro: x5_lingyuzhao_flow 聆小璇pro: x5_lingxiaoxuan_flow 聆玉言pro: x5_lingyuyan_flow 聆飞逸pro: x5_lingfeiyi_flow 聆小玥pro: x5_lingxiaoyue_flow |
否 | |
| payload.auf | string | 合成音频采样率 8k: "audio/L16;rate=8000 16k: "audio/L16;rate=16000" 24k: "audio/L16;rate=24000" |
否 | 默认为audio/L16;rate=16000,24k仅特定发音人支持 |
| payload.speed | int | 语速,范围1-100,默认50 | 否 | |
| payload.volume | int | 音量,范围1-100,默认50 | 否 | |
| payload.pitch | int | 音高,范围1-100,默认50 | 否 | |
| payload.style | string | smartTTS相关参数 | 否 | |
| payload.emotion_scale | int | smartTTS相关参数,情感强度调节系数 最小值:-20,最大值:20 |
否 | |
| payload.emt | string | smartTTS相关参数,字符串传入情感类别。 neutral:中立, naughty:调皮, conciliative:安慰, adorable:可爱, encouraged:鼓励, cheerful:高兴, apologetic:抱歉, affectionate:撒娇, beloved:宠溺, serious:严肃, puzzled:困惑, fearful:害怕, sad:悲伤, angry:生气, auto:自动预测 |
否 | |
| payload.text | string | 合成增量文本,status为1时传,合成的音频内容为多次text文本的拼接结果 | 否 | |
| payload.oral_config | object | 超拟人tts合成参数 | 否 | 传该参数时进行超拟人tts合成 |
| payload.oral_config.spark_assist | int | 传oral_config时必填,是否通过大模型进行口语化 开启:1 关闭:0 |
否 | 默认传1 |
| payload.oral_config.oral_level | string | 口语化等级 高:high,中:mid,低:low |
否 | 默认mid |
协议响应参数
| 名称 | 类型 | 说明 |
|---|---|---|
| secure_url | string | https音频流拉取地址,该字段只存在于初始化后返回的响应帧中 |
| url | string | http音频流拉取地址,该字段只存在于初始化后返回的响应帧中 |
| error | number | 初始化是否异常 |
| message | string | 初始化的响应message |
协议说明
{
"status": 0,
"payload": {
"vcn": "x2_chongchong",
"speed": 50,
"volume": 50
}
}
{
"secure_url": "https://api.iflyos.cn/external/skill_app_action/stream_tts/6705beaa-b3f3-4969-9104-2dc30e5e8851",
"url": "http://api.iflyos.cn/external/skill_app_action/stream_tts/6705beaa-b3f3-4969-9104-2dc30e5e8851",
"error": 0,
"message": "success"
}
补充说明:该接口返回的是mp3格式音频数据。
{
"status": 1,
"payload": {
"text": "分段合成文本"
}
}
{
"status": 2
}
注意事项
流式合成TTS接口为Websocket协议
GET wss://api.listenai.com/v1/tts/stream_data?api_key=xxx
协议说明
{
"status": 0,
"payload": {
"vcn": "x2_chongchong",
"speed": 50,
"volume": 50
}
}
| 名称 | 类型 | 说明 | 是否必填 | 备注 |
|---|---|---|---|---|
| status | string | 请求状态(0: 初始化、1: 中间数据、2: 结束) | 是 | |
| payload | object | 业务数据 | 否 | |
| payload.vcn | string | 发音人 | 否 | |
| payload.speed | int | 语速,范围1-100,默认50 | 否 | |
| payload.volume | int | 音量,范围1-100,默认50 | 否 | |
| payload.pitch | int | 音高,范围1-100,默认50 | 否 | |
| payload.emt | string | smartTTS相关参数 | 否 | |
| payload.style | string | smartTTS相关参数 | 否 | |
| payload.text | string | 合成增量文本,status为1时传,合成的音频内容为多次text文本的拼接结果 | 否 |
{
"sid":"f31a03fe-f383-4db1-86cf-d07db0b533c1",
"action":"started"
}
{
"status": 1,
"payload": {
"text": "分段合成文本"
}
}
服务端通过ws返回二进制数据,内容为pcm音频数据
文本发送完成后,客户端发送结束请求:
{
"status": 2
}
{
"sid":"f31a03fe-f383-4db1-86cf-d07db0b533c1",
"action":"finish"
}
流式文本推送合成的播放Url,有效期3分钟
非流式文本推送合成的播放Url,有效期6小时