跳到主要内容

IndexTTS2 API

index-tts-v2 提供 10 个开箱即用的预置音色,并支持用一句话描述目标情感。 输出 22.05 kHz 单声道音频。

本模型串行处理请求,不适合批量或高并发场景,批量合成请使用 matrix-tts-v1。

快速开始​

curl --fail-with-body \
-X POST 'https://mzsjai.com/v1/audio/speech' \
-H "Authorization: Bearer ${MOZIA_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model": "index-tts-v2",
"input": "你好,这是一段由 IndexTTS2 生成的语音。",
"voice": "voice_01"
}' \
--output speech.wav

请求参数​

参数类型必填说明
modelstring是固定为 index-tts-v2
inputstring是待合成文本,上限 4000 字符
voicestring否预置音色,voice_01~voice_10,默认 voice_01
instructionsstring否情感描述文本,例如 "非常开心兴奋"
ref_audiostring否Base64 编码的参考音频,传入后覆盖 voice
response_formatstring否wav(默认)、flac、ogg、opus

预置音色​

可选值为 voice_01 到 voice_10。传入其他名称会返回 400:

{"detail": "preset voice not allowed: my-voice"}

各音色的实际听感请通过一次短文本合成试听确定。

情感控制​

用 instructions 传入一句情感描述,模型会据此调整语气:

curl --fail-with-body \
-X POST 'https://mzsjai.com/v1/audio/speech' \
-H "Authorization: Bearer ${MOZIA_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model": "index-tts-v2",
"input": "太好了,我们成功了!",
"voice": "voice_03",
"instructions": "非常开心兴奋"
}' \
--output happy.wav

instructions 接受自由描述,与 matrix-tts-v1 的固定词典不同。

:::note 情感向量与情感参考音频暂未开放

模型本身还支持用数值向量或一段情感参考音频来控制情感,但这两种方式目前不在平台开放的参数范围内, 通过 API 传入不会生效。当前请使用 instructions 进行情感控制。

:::

带情感描述的请求需要额外的情感推断步骤,耗时通常比普通合成更长。

声音克隆​

传入 ref_audio 即可克隆参考音频的音色,此时 voice 不再生效:

REF_B64=$(base64 -i my-voice.wav | tr -d '\n')

curl --fail-with-body \
-X POST 'https://mzsjai.com/v1/audio/speech' \
-H "Authorization: Bearer ${MOZIA_API_KEY}" \
-H 'Content-Type: application/json' \
-d "{
\"model\": \"index-tts-v2\",
\"input\": \"用我的声音念这句话。\",
\"ref_audio\": \"${REF_B64}\"
}" \
--output cloned.wav

输出​

返回 22.05 kHz、单声道、16 位音频。默认为 WAV。 三个语音模型中本模型采样率最低,对音质要求较高时建议选择 48 kHz 的另外两个模型。

请求 mp3 或 pcm 不会报错,但返回的仍是 WAV 数据,详见语音合成总览。

错误码​

状态码触发条件
400input 为空或超过 4000 字符;voice 不在预置列表;ref_audio 不是合法 Base64
500合成失败
503模型加载中或服务繁忙

其余错误码见语音合成总览。