基于 IndexTTS 的文字转语音服务
上传声纹 · 调整参数 · 生成高质量语音
🎛️ GPT-2 采样参数
📐 分句与生成长度
🎧 生成结果
上传新声纹
提示:上传一段 5–15 秒的清晰语音作为声纹参考(.wav 格式)。名称仅允许字母、数字、连字符和下划线。
默认无需身份验证;若配置环境变量 TTS_ACCESS_TOKEN,则所有 API 调用都必须带 Authorization: Bearer <token>。Base URL 即本服务地址。
/api/tts — 文字转语音(支持全部高级参数)voice 和 text 外,其余参数均为可选。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
voice | string | — | 必填,声纹名称 |
text | string | — | 必填,要合成的文字 |
temperature | float | 1.0 | 采样温度 (0.05–2.0) |
top_p | float | 0.8 | Nucleus 采样概率 (0–1) |
top_k | int | 30 | Top-K 采样 (0=不限) |
do_sample | bool | true | 是否随机采样 |
num_beams | int | 2 | 束搜索宽度 (1–10) |
repetition_penalty | float | 10.0 | 重复惩罚 (0.1–20) |
length_penalty | float | 0.0 | 长度偏好 (-2–2) |
max_mel_tokens | int | 300 | 单句 mel-token 上限 (50–2000) |
max_text_tokens_per_segment | int | 120 | 分句粒度 (20–300) |
fast_mode | bool | true | 启用 batched-bucket 快速推理 |
bucket_size | int | 1 | 快速推理分桶大小 (1–8) |
speech_rate | float | 1.2 | 输出语速倍率 (0.5–2.0) |
# 基础调用
curl -X POST http://HOST:8000/api/tts \
-F "voice=reporter-zh" \
-F "text=你好,欢迎使用语音合成服务。" \
--output speech.wav
# 高级调用:低温度 + 高重复惩罚,生成更稳定的语音
curl -X POST http://HOST:8000/api/tts \
-F "voice=reporter-zh" \
-F "text=各位观众大家好,欢迎收看今天的新闻。" \
-F "temperature=0.7" \
-F "top_p=0.9" \
-F "repetition_penalty=12.0" \
-F "max_mel_tokens=800" \
-F "fast_mode=true" \
--output news.wav
# Python
import requests
resp = requests.post("http://HOST:8000/api/tts", data={
"voice": "reporter-zh",
"text": "你好,世界!",
"temperature": 0.8,
"top_p": 0.85,
"fast_mode": True,
})
with open("speech.wav", "wb") as f:
f.write(resp.content)
/api/voices — 获取声纹列表name、filename、size_kb。curl http://HOST:8000/api/voices
/api/voices — 上传声纹name + file)。curl -X POST http://HOST:8000/api/voices \ -F "name=my-voice" \ -F "file=@/path/to/voice.wav"
/api/voices/{name} — 删除声纹curl -X DELETE http://HOST:8000/api/voices/my-voice
/api/system — 系统信息与默认参数curl http://HOST:8000/api/system
/health — 健康检查{"status":"ok"} 或 {"status":"degraded"}。curl http://HOST:8000/health