🎙️ ReporterTTS

基于 IndexTTS 的文字转语音服务

上传声纹 · 调整参数 · 生成高质量语音

加载中…

🗣️ 文字转语音

⚙️ 高级生成参数 点击展开 / 折叠
快速推理模式
对长文本使用 batched-bucket 推理,可加速 2-10 倍
随机采样
关闭后使用贪心 / 束搜索,输出更确定但多样性降低

🎛️ GPT-2 采样参数

1.0
采样温度:越高越多样/随机,越低越稳定/保守。推荐 0.7–1.2
0.8
仅从累积概率前 P 的 token 中采样。越低越聚焦
30
仅从概率最高的 K 个 token 中采样。0 = 不限制
2
束搜索宽度。1 = 无束搜索,越大越慢但可能更稳定
10.0
重复惩罚:防止 mel-token 循环/重复。太低可能导致重复噪音
0.0
长度偏好:>0 倾向更长输出,<0 倾向更短

📐 分句与生成长度

300
单句生成 mel-token 上限。过小会截断音频,过大则增加推理时间
120
文本分句粒度。80–200 较佳。过大过小均影响质量
1
快速推理分桶大小。越大越快但占用更多显存
1.2
输出语速倍率。>1 更快,<1 更慢(推荐 1.1–1.4)

🎧 生成结果

🎭 声纹管理


上传新声纹

提示:上传一段 5–15 秒的清晰语音作为声纹参考(.wav 格式)。名称仅允许字母、数字、连字符和下划线。

📡 API 文档

默认无需身份验证;若配置环境变量 TTS_ACCESS_TOKEN,则所有 API 调用都必须带 Authorization: Bearer <token>。Base URL 即本服务地址。

POST /api/tts — 文字转语音(支持全部高级参数)
发送表单数据,返回 WAV 音频文件。除 voicetext 外,其余参数均为可选。
参数类型默认值说明
voicestring必填,声纹名称
textstring必填,要合成的文字
temperaturefloat1.0采样温度 (0.05–2.0)
top_pfloat0.8Nucleus 采样概率 (0–1)
top_kint30Top-K 采样 (0=不限)
do_samplebooltrue是否随机采样
num_beamsint2束搜索宽度 (1–10)
repetition_penaltyfloat10.0重复惩罚 (0.1–20)
length_penaltyfloat0.0长度偏好 (-2–2)
max_mel_tokensint300单句 mel-token 上限 (50–2000)
max_text_tokens_per_segmentint120分句粒度 (20–300)
fast_modebooltrue启用 batched-bucket 快速推理
bucket_sizeint1快速推理分桶大小 (1–8)
speech_ratefloat1.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)
GET /api/voices — 获取声纹列表
返回 JSON 数组,每个元素包含 namefilenamesize_kb
curl http://HOST:8000/api/voices
POST /api/voices — 上传声纹
上传 .wav 文件并指定声纹名称(表单字段 name + file)。
curl -X POST http://HOST:8000/api/voices \
  -F "name=my-voice" \
  -F "file=@/path/to/voice.wav"
DELETE /api/voices/{name} — 删除声纹
按名称删除指定声纹。
curl -X DELETE http://HOST:8000/api/voices/my-voice
GET /api/system — 系统信息与默认参数
返回设备类型、GPU 型号、CUDA 版本、模型状态,以及所有默认生成参数。
curl http://HOST:8000/api/system
GET /health — 健康检查
返回 {"status":"ok"}{"status":"degraded"}
curl http://HOST:8000/health