概述

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

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

本文档提供 IndexTTS-2 异步语音合成接口 的完整参考。开发者可通过本接口,利用上述三种情感控制模式,轻松集成高质量的语音合成功能。

通用说明

认证方式

所有接口均需要在请求头中携带 Authorization 字段进行身份验证:

Authorization: Bearer <你的API密钥>

基础URL

https://www.yuntts.com/api/v1

响应格式

所有接口返回 JSON 格式数据。


一、语音合成接口

使用方式

模式一:默认模式(无情感控制)

原理:不传任何情感控制参数,使用默认音色合成语音。

关键参数:

  • input_text:要合成的文本内容
  • prompt_audio_url:说话人音色参考音频
  • prompt_text:对应 prompt_audio_url 的文字内容(用于语义对齐,可选)

适用场景:不需要特殊情感控制,使用默认语气合成。

模式二:音频模式(通过音频控制语气)

原理:上传一段带有目标情绪的参考音频,模型会模仿其中的语气和韵律。

关键参数:

  • emo_audio_prompt_url:情感参考音频的地址
  • emo_alpha:情感影响强度(0~1,越大情绪越明显,默认0.5)
  • input_text:要合成的文本内容
  • prompt_audio_url:说话人音色参考音频
  • prompt_text:对应 prompt_audio_url 的文字内容(用于语义对齐,可选)

适用场景:已有真实录音作为情感样例,想让模型模仿。

模式三:文本模式(通过文本控制语气)

原理:输入一段带有目标情绪的参考文本,模型会根据文字语义推断并模仿对应的语气。

关键参数:

  • use_emo_text:是否启用情感参考文本(传 true)
  • emo_text:表达目标情绪的参考文本
  • input_text:要合成的文本内容
  • prompt_audio_url:说话人音色参考音频
  • prompt_text:对应 prompt_audio_url 的文字内容(用于语义对齐,可选)

适用场景:没有情感音频样例,仅通过文字引导模型生成目标情绪语音。

模式四:向量模式(通过向量控制语气)

原理:通过设置情感向量,控制合成语音中不同情绪的占比和强度。

关键参数:

  • emo_vector:情感强度向量 [happy, angry, sad, afraid, disgusted, melancholic, surprised, calm],数值范围 0~1
  • emo_alpha:情感影响强度(0~1,越大情绪越明显,默认0.5)
  • input_text:要合成的文本内容
  • prompt_audio_url:说话人音色参考音频
  • prompt_text:对应 prompt_audio_url 的文字内容(用于语义对齐,可选)

适用场景:希望精细调节合成语音的情绪比例,无需真实参考音频。


请求接口

POST https://www.yuntts.com/api/v1/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 参考音频对应的文字内容,用于语义对齐

情感控制参数(四种模式互斥,都不传则为默认模式)

参数名 类型 必填 适用模式 说明
emo_audio_prompt_url string 音频模式必填 音频模式 情感参考音频URL
emo_vector string/array 向量模式必填 向量模式 情感强度向量,8个数值,范围0~1,顺序:[happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]
emo_text string 文本模式必填 文本模式 表达目标情绪的参考文本
use_emo_text boolean 文本模式必填 文本模式 是否使用文本模式,传true时启用emo_text
emo_alpha float 音频模式、向量模式 情感影响强度,范围0~1,数值越大情绪越明显,默认0.5

请求示例

模式一:默认模式(无情感控制)

不传任何情感控制参数,使用默认音色合成。

{
  "input_text": "你好,这是测试文本",
  "prompt_audio_url": "https://example.com/voice.wav",
  "prompt_text": "这是参考音频里说的话"
}

模式二:音频模式(通过音频控制语气)

传入 emo_audio_prompt_url 参数,使用情感参考音频控制输出情感。

{
  "input_text": "你好,这是测试文本",
  "prompt_audio_url": "https://example.com/voice.wav",
  "prompt_text": "这是参考音频里说的话",
  "emo_audio_prompt_url": "https://example.com/emotion.wav",
  "emo_alpha": 0.6
}

模式三:文本模式(通过文本控制语气)

传入 use_emo_textemo_text 参数,使用文本描述控制情感。

{
  "input_text": "你好,这是测试文本",
  "prompt_audio_url": "https://example.com/voice.wav",
  "prompt_text": "这是参考音频里说的话",
  "use_emo_text": true,
  "emo_text": "开心、兴奋"
}

模式四:向量模式(通过向量控制语气)

传入 emo_vector 参数,使用8维情感向量精确控制情感强度。

{
  "input_text": "你好,这是测试文本",
  "prompt_audio_url": "https://example.com/voice.wav",
  "prompt_text": "这是参考音频里说的话",
  "emo_vector": "0.8, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0",
  "emo_alpha": 0.6
}

或数组格式:

{
  "input_text": "你好,这是测试文本",
  "prompt_audio_url": "https://example.com/voice.wav",
  "prompt_text": "这是参考音频里说的话",
  "emo_vector": [0.8, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0],
  "emo_alpha": 0.6
}

emo_vector 各维度含义:[happy(开心), angry(生气), sad(悲伤), afraid(害怕), disgusted(厌恶), melancholic(忧郁), surprised(惊讶), calm(平静)]

cURL 示例(音频模式)

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": "这是参考音频里说的话",
    "emo_audio_prompt_url": "https://example.com/emotion.wav",
    "emo_alpha": 0.6
  }'

返回参数

参数名 类型 说明
code int 状态码,200表示成功
message string 返回信息
data object 返回数据对象
data.task_id string 任务ID,用于后续查询
data.char_count int 消耗的字符数
data.cost float 扣除的费用
data.status string 任务状态,默认pending

返回示例

{
  "code": 200,
  "message": "任务提交成功",
  "data": {
    "task_id": "ABC123XYZ789",
    "char_count": 22,
    "cost": 0.01,
    "status": "pending"
  }
}

二、任务查询接口

请求接口

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