概述
IndexTTS 是一款先进的零样本文本转语音(Zero-shot TTS)系统。它具备卓越的个性化能力,无需大规模训练数据即可快速克隆说话人音色。该模型支持灵活的情感与风格控制,提供音频参考、情感向量、文本提示三种调节方式,助您生成自然、富有表现力的语音。

本文档提供 IndexTTS-2 异步语音合成接口 的完整参考。开发者可通过本接口,利用上述三种情感控制模式,轻松集成高质量的语音合成功能。
通用说明
认证方式
所有接口均需要在请求头中携带 Authorization 字段进行身份验证:
Authorization: Bearer <你的API密钥>
基础URL
https://www.yuntts.com/api/v1
响应格式
所有接口返回 JSON 格式数据。
一、语音合成接口
请求接口
POST /indextts2_speech_generate
请求头
| 参数名 |
必填 |
说明 |
| Authorization |
是 |
Bearer Token 认证,格式:Bearer <API密钥> |
| Content-Type |
是 |
application/json |
请求参数
基础参数
| 参数名 |
类型 |
必填 |
说明 |
| input_text |
string |
是 |
要合成的文本内容,最大长度600字符 |
| prompt_audio_url |
string |
是 |
说话人音色参考音频URL,支持WAV、MP3等格式 |
| prompt_text |
string |
否 |
参考音频对应的文字内容,用于语义对齐 |
| mode |
string |
否 |
情感控制模式:1-音频模式,2-向量模式,3-文本模式,默认1 |
| emo_alpha |
float |
否 |
情感影响强度,范围0~1,数值越大情绪越明显,默认0.5 |
模式1(音频模式)- 额外必填参数
| 参数名 |
类型 |
必填 |
说明 |
| emo_audio_prompt_url |
string |
是 |
情感参考音频URL |
模式2(向量模式)- 额外必填参数
| 参数名 |
类型 |
必填 |
说明 |
| emo_vector |
string/array |
是 |
情感强度向量,8个数值,范围0~1,顺序:[happy, angry, sad, afraid, disgusted, melancholic, surprised, calm] |
模式3(文本模式)- 额外必填参数
| 参数名 |
类型 |
必填 |
说明 |
| emo_text |
string |
是 |
表达目标情绪的参考文本 |
请求示例
cURL (Linux/Mac)
curl -X POST "https://www.yuntts.com/api/v1/indextts2_speech_generate"
-H "Authorization: Bearer YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{
"input_text": "你好,这是测试文本",
"prompt_audio_url": "https://example.com/voice.wav",
"prompt_text": "这是参考音频里说的话",
"mode": "1",
"emo_audio_prompt_url": "https://example.com/emotion.wav",
"emo_alpha": 0.5
}'
PowerShell (Windows)
$body = @{
input_text = "你好,这是测试文本"
prompt_audio_url = "https://example.com/voice.wav"
prompt_text = "这是参考音频里说的话"
mode = "1"
emo_audio_prompt_url = "https://example.com/emotion.wav"
emo_alpha = 0.5
} | ConvertTo-Json
Invoke-WebRequest -Uri "https://www.yuntts.com/api/v1/indextts2_speech_generate" -Method Post -Headers @{"Authorization"="Bearer YOUR_API_KEY";"Content-Type"="application/json"} -Body $body
JSON 请求体
{
"input_text": "你好,这是测试文本",
"prompt_audio_url": "https://example.com/voice.wav",
"prompt_text": "这是参考音频里说的话",
"mode": "1",
"emo_audio_prompt_url": "https://example.com/emotion.wav",
"emo_alpha": 0.5
}
返回参数
| 参数名 |
类型 |
说明 |
| code |
int |
状态码,200表示成功 |
| message |
string |
返回信息 |
| data |
object |
返回数据对象 |
| data.task_id |
string |
任务ID,用于后续查询 |
| data.char_count |
int |
消耗的字符数 |
| data.cost |
float |
扣除的费用 |
| data.mode |
string |
使用的模式 |
| data.status |
string |
任务状态,默认pending |
返回示例
{
"code": 200,
"message": "任务提交成功",
"data": {
"task_id": "ABC123XYZ789",
"char_count": 22,
"cost": 0.01,
"mode": "1",
"status": "pending"
}
}
二、任务查询接口
请求接口
POST /speech_task_status
请求头
| 参数名 |
必填 |
说明 |
| Authorization |
是 |
Bearer Token 认证,格式:Bearer <API密钥> |
| Content-Type |
是 |
application/json |
请求参数
| 参数名 |
类型 |
必填 |
说明 |
| task_id |
string |
是 |
任务ID,提交任务时返回的ID |
请求示例
curl -X POST "https://www.yuntts.com/api/v1/speech_task_status"
-H "Authorization: Bearer YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"task_id": "ABC123XYZ789"}'
PowerShell (Windows)
Invoke-WebRequest -Uri "https://www.yuntts.com/api/v1/speech_task_status" -Method Post -Headers @{"Authorization"="Bearer YOUR_API_KEY";"Content-Type"="application/json"} -Body '{"task_id": "ABC123XYZ789"}'
JSON 请求体
{
"task_id": "ABC123XYZ789"
}
返回参数
| 参数名 |
类型 |
说明 |
| code |
int |
状态码 |
| message |
string |
返回信息 |
| data |
object |
返回数据对象 |
| data.task_id |
string |
任务ID |
| data.status |
string |
任务状态:pending-等待中,in_progress-处理中,completed-已完成,failed-失败,cancelled-已取消 |
| data.progress |
int |
进度百分比,0~100 |
| data.message |
string |
状态消息 |
| data.audio_url |
string |
合成完成的音频URL(仅任务完成时返回) |
返回示例
{
"code": 200,
"message": "获取状态成功",
"data": {
"task_id": "ABC123XYZ789",
"status": "completed",
"progress": 100,
"message": "语音合成成功",
"audio_url": "https://oss.example.com/audio/xxx.wav"
}
}
三、任务取消接口
请求接口
POST /speech_task_cancel
请求头
| 参数名 |
必填 |
说明 |
| Authorization |
是 |
Bearer Token 认证,格式:Bearer <API密钥> |
| Content-Type |
是 |
application/json |
请求参数
| 参数名 |
类型 |
必填 |
说明 |
| task_id |
string |
是 |
要取消的任务ID |
请求示例
curl -X POST "https://www.yuntts.com/api/v1/speech_task_cancel"
-H "Authorization: Bearer YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"task_id": "ABC123XYZ789"}'
PowerShell (Windows)
Invoke-WebRequest -Uri "https://www.yuntts.com/api/v1/speech_task_cancel" -Method Post -Headers @{"Authorization"="Bearer YOUR_API_KEY";"Content-Type"="application/json"} -Body '{"task_id": "ABC123XYZ789"}'
JSON 请求体
{
"task_id": "ABC123XYZ789"
}
返回参数
| 参数名 |
类型 |
说明 |
| code |
int |
状态码 |
| message |
string |
返回信息 |
| data |
object |
返回数据对象 |
| data.task_id |
string |
任务ID |
| data.status |
string |
任务状态,cancelled表示已取消 |
| data.message |
string |
操作结果消息 |
返回示例
{
"code": 200,
"message": "取消成功",
"data": {
"task_id": "ABC123XYZ789",
"status": "cancelled",
"message": "任务已取消"
}
}
错误码说明
| code |
说明 |
| 200 |
请求成功 |
| 400 |
请求参数错误 |
| 401 |
未授权,API密钥无效 |
| 402 |
用户余额不足 |
| 404 |
资源不存在 |
| 405 |
请求方法不允许 |
| 500 |
服务器内部错误 |
使用流程
- 获取API密钥 - 在用户中心获取你的API密钥
- 提交合成任务 - 调用
/indextts2_speech_generate,获取任务ID
- 轮询任务状态 - 每5秒调用
/speech_task_status 查询进度
- 获取结果 - 任务完成后返回音频URL
- 取消任务(如需要) - 任务完成前可调用
/speech_task_cancel 取消并退款
注意事项
- 情感向量模式的emo_vector参数支持JSON数组格式或逗号分隔字符串格式
- 任务完成后音频请在24小时内下载,过期自动清理
- 任务失败或取消时,已扣除的费用会自动返还到账户
- 建议轮询间隔设置为5秒,避免请求过于频繁
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)