概述

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

IndexTTS-2 异步语音合成 API 文档 1

本文档提供 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 服务器内部错误

使用流程

  1. 获取API密钥 - 在用户中心获取你的API密钥
  2. 提交合成任务 - 调用 /indextts2_speech_generate,获取任务ID
  3. 轮询任务状态 - 每5秒调用 /speech_task_status 查询进度
  4. 获取结果 - 任务完成后返回音频URL
  5. 取消任务(如需要) - 任务完成前可调用 /speech_task_cancel 取消并退款

注意事项

  • 情感向量模式的emo_vector参数支持JSON数组格式或逗号分隔字符串格式
  • 任务完成后音频请在24小时内下载,过期自动清理
  • 任务失败或取消时,已扣除的费用会自动返还到账户
  • 建议轮询间隔设置为5秒,避免请求过于频繁
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。