接口概述

Index-TTS2 同步语音合成 API 是一款支持文件上传的语音合成接口,用户可通过上传说话人音色参考音频与情感参考音频,生成具备特定情感基调与专属音色的语音内容。该接口支持流式输出,可满足实时语音合成需求;同时,考虑到网站用户量大、接口调用频次高可能导致的调用失败问题,我们已新增其他算力接口作为补充,保障接口调用的稳定性与流畅性。
如需要在线使用Index-TTS2 语音合成,请访问Index-TTS2在线语音合成,可选模式1进行体验!

API 接口插图

接口信息

项目
URL /api/v1/indextts2_infer
方法 POST
Content-Type multipart/form-data
认证 Authorization: Bearer {api_key}

请求参数

Body(multipart/form-data)

参数名 类型 必填 默认值 说明
payload string (JSON) - 合成参数 JSON 字符串,见下方 payload 结构
spk_audio_file file - 说话人参考音频,MP3/WAV,最大 20MB
emo_audio_file file 条件 - 情感音频,仅模式 1 时必填,MP3/WAV,最大 20MB
stream_mode boolean true true=流式直接返回 WAV 音频;false=返回 JSON(含 audio_url)

四种模式 payload 示例

模式一:基础合成(无情感控制)

{
  "input": "你好,欢迎使用语音合成服务",
  "use_random": false,
  "emo_control_method": 0
}

可省略 emo_control_method,默认为 0。不需要额外上传情感音频。


模式二:音频情感控制

{
  "input": "今天真是太开心了!",
  "use_random": false,
  "emo_control_method": 1,
  "emo_alpha": 0.8
}

必须同时上传 emo_audio_file 文件,否则返回 missing_emo_file 错误。


模式三:向量情感控制

emo_vec 支持两种传参格式:

数组格式(推荐):

{
  "input": "这个消息让我感到非常震惊",
  "use_random": false,
  "emo_control_method": 2,
  "emo_vec": [0.5, 0, 0.1, 0, 0, 0.3, 0.5, 0],
  "emo_alpha": 0.6
}

字符串格式:

{
  "input": "这个消息让我感到非常震惊",
  "use_random": false,
  "emo_control_method": 2,
  "emo_vec": "[0.5, 0, 0.1, 0, 0, 0.3, 0.5, 0]",
  "emo_alpha": 0.6
}

8 个维度依次为:happy, angry, sad, afraid, disgusted, melancholic, surprised, calm。每个值范围 [0, 1.2],总和 ≤ 1.5。


模式四:文本情感控制

{
  "input": "谢谢大家的支持与鼓励",
  "use_random": false,
  "emo_control_method": 3,
  "emo_text": "用温柔而感激的语气说",
  "emo_alpha": 0.7
}

通过自然语言描述目标情感,后端根据文本判断情感方向。


响应

流式模式 (stream_mode=true,默认)

场景 Content-Type 说明
成功 audio/wav 直接返回 WAV 音频二进制流
失败 application/json 返回 JSON 错误

流式响应头:

Content-Type: audio/wav
Content-Disposition: inline
X-Accel-Buffering: no

非流式模式 (stream_mode=false)

成功响应 (200):

{
  "code": 200,
  "message": "合成成功!",
  "data": {
    "audio_url": "https://example.com/wp-content/uploads/audio/processed/xxx.wav",
    "format": "wav",
    "char_count": 15,
    "points_deducted": 0.0045
  }
}
字段 类型 说明
audio_url string 合成后的 WAV 音频文件下载地址
format string 固定值 "wav"
char_count int 合成文本的实际计费字符数
points_deducted float 实际扣除的积分/金额

错误响应

{
  "code": 400,
  "error": "empty_text",
  "message": "请输入要合成的文本!"
}

常见错误码

HTTP error 说明
400 invalid_payload payload 不是有效的 JSON 字符串
400 empty_text input 字段为空
400 text_too_long 文本超过 600 字符
400 missing_spk_file 缺少说话人参考音频
400 invalid_spk_file 音频格式不符或超过 20MB
400 missing_emo_file 模式 1 时缺少情感音频文件
400 invalid_emo_control_method 值不在 0~3 范围
400 invalid_emo_vec 情绪向量维度/范围不符合要求
401 empty_key 缺少 Authorization 请求头
401 invalid_key API Key 无效
403 insufficient_balance 账户余额不足
500 api_error 上游服务合成失败
500 missing_api_key 服务端 API 密钥未配置

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。