前言说明
IndexTTS 是一款零样本文本转语音(TTS)系统,无需依赖海量说话人样本,即可快速合成高音质、高度个性化的语音。该模型不仅支持音色迁移,还支持通过参考音频、情感向量、文本提示等多种方式灵活调节情绪与语气,让生成的语音在各类场景下都更自然、更具表现力。本文将详细介绍 IndexTTS-2 语音合成接口的对接方法。
接口信息
- 接口地址:
https://www.yuntts.com/api/v1/text-to-speech - 请求方式: POST
- Content-Type: application/json
- 认证方式: Bearer Token (API Key)
请求头
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
公共参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 要合成的文本内容 |
| prompt_audio_url | string | 是 | 说话人音色参考音频URL |
| prompt_text | string | 否 | 参考音频对应的文字内容(用于语义对齐) |
| stream_mode | boolean | 否 | 是否开启流式模式,默认false |
| failover_enabled | boolean | 否 | 是否启用故障转移,默认true |
四种情感控制模式
模式一:默认模式(无情感控制)
原理
不使用任何情感控制参数,仅使用默认音色合成语音。
适用场景
只需要基础语音合成,不需要特殊情感效果。
请求示例
{
"input": "欢迎使用IndexTTS语音合成系统,这是一个默认模式的示例。",
"prompt_audio_url": "https://example.com/speaker.wav",
"prompt_text": "欢迎使用语音合成系统。",
"stream_mode": false,
"failover_enabled": true
}
模式二:通过音频控制语气
原理
上传一段带有目标情绪的参考音频,模型会模仿其中的语气和韵律。
关键参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| emo_audio_prompt_url | string | 是 | 情感参考音频的地址 |
| emo_alpha | float | 否 | 情感影响强度(0~1,越大情绪越明显),默认0.5 |
适用场景
已有真实录音作为情感样例,想让模型模仿。
请求示例
{
"input": "我知道自己不是一个人在战斗,有大家的支持和协作,我相信我们一定能一起把事情做好。",
"prompt_audio_url": "https://gitee.com/gitee-ai/moark-assets/raw/master/jay_prompt.wav",
"prompt_text": "对我来讲是一种荣幸,但是也是压力蛮大的。不过我觉得是一种呃很好的一个挑战。",
"emo_audio_prompt_url": "https://gitee.com/gitee-ai/moark-assets/raw/master/index-tts-2/emo_sad.wav",
"emo_alpha": 0.5,
"stream_mode": false,
"failover_enabled": true
}
模式三:通过文本控制语气
原理
输入一段带有目标情绪的参考文本,模型会根据文字语义推断并模仿对应的语气。
关键参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| use_emo_text | boolean | 是 | 是否启用情感参考文本,必须设置为true |
| emo_text | string | 是 | 表达目标情绪的参考文本 |
适用场景
没有情感音频样例,仅通过文字引导模型生成目标情绪语音。
请求示例
{
"input": "今天的天气真是太好了,阳光明媚,心情格外舒畅!",
"prompt_audio_url": "https://example.com/speaker.wav",
"prompt_text": "欢迎使用语音合成系统。",
"use_emo_text": true,
"emo_text": "非常开心和激动,充满了喜悦和兴奋",
"stream_mode": false,
"failover_enabled": true
}
模式四:通过向量控制语气
原理
通过设置情感向量,控制合成语音中不同情绪的占比和强度。
关键参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| emo_vector | array | 是 | 情感强度向量 [happy, angry, sad, afraid, disgusted, melancholic, surprised, calm],数值范围 0~1 |
| emo_alpha | float | 否 | 情感影响强度(0~1,越大情绪越明显),默认0.5 |
向量维度说明
| 索引 | 情绪 | 说明 |
|---|---|---|
| 0 | happy | 高兴 |
| 1 | angry | 生气 |
| 2 | sad | 悲伤 |
| 3 | afraid | 害怕 |
| 4 | disgusted | 厌恶 |
| 5 | melancholic | 忧郁 |
| 6 | surprised | 惊讶 |
| 7 | calm | 平静 |
适用场景
希望精细调节合成语音的情绪比例,无需真实参考音频。
请求示例
示例1:平静温和的语气
{
"input": "请保持冷静,我们慢慢来,一切都会好起来的。",
"prompt_audio_url": "https://example.com/speaker.wav",
"prompt_text": "欢迎使用语音合成系统。",
"emo_vector": [0.1, 0.0, 0.1, 0.0, 0.0, 0.1, 0.0, 0.9],
"emo_alpha": 0.6,
"stream_mode": false,
"failover_enabled": true
}
示例2:兴奋激动的语气
{
"input": "太棒了!我们成功了!这真是一个激动人心的时刻!",
"prompt_audio_url": "https://example.com/speaker.wav",
"prompt_text": "欢迎使用语音合成系统。",
"emo_vector": [0.9, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3, 0.1],
"emo_alpha": 0.7,
"stream_mode": false,
"failover_enabled": true
}
示例3:悲伤忧郁的语气
{
"input": "他的爱像秋天的阳光,看似清冷,却总能在我最需要的时候给予温暖。",
"prompt_audio_url": "https://example.com/speaker.wav",
"prompt_text": "欢迎使用语音合成系统。",
"emo_vector": [0.0, 0.0, 0.8, 0.0, 0.0, 0.6, 0.0, 0.2],
"emo_alpha": 0.5,
"stream_mode": false,
"failover_enabled": true
}
响应格式
JSON模式响应(stream_mode: false)
{
"code": 200,
"message": "语音合成成功",
"data": {
"task_id": "tts_sync_xxxxxxxxxxxx",
"char_count": 45,
"cost": 0.45,
"mode": "audio",
"status": "completed",
"audio_url": "https://your-domain.com/wp-content/mp3/download/speech-xxx.wav",
"message": "语音合成成功"
}
}
流式模式响应(stream_mode: true)
直接返回音频二进制数据,响应头包含:
Content-Type: audio/wav
Content-Length: 27214
X-Characters: 45
X-Cost: 0.45
高级选项说明
stream_mode(流式模式)
- false(默认): 音频文件保存到服务器后返回JSON数据,包含音频URL、字符数、费用等信息
- true: 直接返回音频二进制流,不保存文件到服务器,响应更快但不保留历史记录
failover_enabled(故障转移)
- true(默认): 当主服务不可用时自动切换到备用服务
- false: 禁用故障转移功能
错误码说明
| 错误码 | 说明 |
|---|---|
| 400 | 请求参数错误 |
| 401 | API密钥无效或未授权 |
| 402 | 余额不足 |
| 405 | 请求方法不允许 |
| 500 | 服务器内部错误 |
注意事项
- 文本长度: 建议单次合成文本不超过500字符
- 音频格式: 参考音频支持 WAV、MP3 格式
- 网络超时: 同步接口超时时间为120秒
- 情感强度: emo_alpha 建议范围 0.3~0.8,过大可能导致音质下降
- 向量总和: 情感向量各维度值相加建议不超过1.5
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。


评论(0)