ChatTTS-ui 音色定制完整指南
【免费下载链接】ChatTTS-ui一个简单的本地网页界面,使用ChatTTS将文字合成为语音,同时支持对外提供API接口。A simple native web interface that uses ChatTTS to synthesize text into speech, along with support for external API interfaces.项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui
合成出来的语音总像同一个人?想给产品换一个专属的声音,却不知从哪下手?这篇教程带你在 ChatTTS-ui 里走完试听、调参、固化三步:挑一个顺耳的seed 值,把 temperature、top_p、top_k 调到位,最后存成可反复调用的音色文件。
场景速认:这三类人直接照做
- 本地网页配音:你已用 ChatTTS-ui 做文字转语音,想换掉默认音色并固定下来
- 产品接口接入:你的应用要通过
/tts接口生成语音,需要统一、可复用的专属音色 - 批量配音生产:需要按同一个声音批量出片,并能追溯每段音频用了哪个 seed 和参数
四阶段主流程:启动→试听→调参→固化
阶段 1:启动服务,打通试听链路
目标:服务启动成功,生成并下载第一段音频。
- 克隆仓库并安装依赖(需要 Python 3.9–3.11):
git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui cd ChatTTS-ui pip3 install -r requirements.txt python3 app.py- 等待首次启动自动下载模型,浏览器打开
http://127.0.0.1:9966后再操作 - 打开页面,在"选择音色"下拉框任选内置音色(默认 2222),输入一句话并生成
- 确认能试听并下载 wav 文件,链路即打通,进入阶段 2
阶段 2:用 seed 值批量试听,筛出候选音色
目标:用同一段文本试听 5 个内置音色,记下 3 个以上候选 seed。
- 填写 2222、6653、4099、5099、7869 到页面"音色值"输入框,逐个生成并下载
- 固定使用同一段 50 字左右的测试文本,避免内容差异干扰听感判断
- 下载后核对每个音频文件名中 seed 后的数字,确认实际使用的音色值
- 记录候选:写下 seed 值和听感特征,如"6653 女声、活泼"
- 更换新的整数 seed(建议 1000–10000 区间),重复上述步骤
阶段 3:微调采样参数,定稿音色
目标:固定 seed 后,把音色调成稳定档或自然档。
- 调整 temperature(0.2–0.5)试 3 个档位,一次只改一个参数
- 再调整 top_p(0.6–0.8)与 top_k(20–40),每改一项就重新生成对比
- 锁定稳定档:temperature=0.3、top_p=0.7、top_k=20(服务默认值),读法最不容易出错
- 切换自然档:temperature=0.5、top_p=0.8、top_k=30,语调更有起伏,偶有跑调
- 控制语速:speed 取 1–10 档(默认 5);refine 阶段随机性用 text_seed 固定(默认 42)
阶段 4:固化音色文件,API 验收
目标:让选定音色变成文件,任何请求里都不漂移。
- 确认 speaker/ 目录下已生成
{seed}.csv(首次使用该 seed 生成时自动保存) - 刷新页面,在"选择音色"下拉框选中它,即固定音色
- 把第三方 .pt 音色放入 speaker/,执行
python3 cover-pt.py转换格式 - 删除原始
_emb.pt文件,保留转换后以-covert.pt结尾的文件,避免误选 - 用 API 做最终验收,返回的 url 直接可播放:
import requests r = requests.post("http://127.0.0.1:9966/tts", data={ "text": "定制音色验收测试", "custom_voice": 3000, "temperature": 0.3, "top_p": 0.7, "top_k": 20 }) print(r.json()["audio_files"][0]["url"])参数速查:五个关键旋钮
| 参数 | 作用 | 推荐值 | 调错的后果 |
|---|---|---|---|
| custom_voice | 音色 seed 值,>0 时优先生效 | 1000–10000 整数 | 设为 0 会退回 voice 参数指定的音色 |
| temperature | 读法与语调的随机性 | 0.2–0.5 | 过高破音跑调,过低机械感强 |
| top_p | 发音多样性 | 0.6–0.8 | 过高音色忽好忽坏,过低全程平板 |
| top_k | 候选发音数量 | 20–40 | 过小发音受限,过大不可预测 |
| speed | 语速档位 | 4–6(默认 5) | 过大听不清,过小拖沓 |
| skip_refine | 1=跳过文本润色 | 0 | 设为 1 更快,文本质量下降 |
常见坑:先自查这五条
- ✅同一 seed 换机器音色变了:属 ChatTTS 已知特性,好音色要立刻固化成 csv,别指望 seed 跨机器复现
- ✅报 Missing spk_stat.pt:模型文件不完整,按 faq.md 第 5 条补齐缺失文件
- ✅启动报 Dynamo 或 triton 错误:打开 .env 将 compile=true 改为 compile=false,见 faq.md 第 12 条
- ✅选中 .pt 音色不生效:确认文件在 speaker/ 目录且后缀为 .csv 或 .pt,第三方 _emb.pt 需先跑 cover-pt.py
- ✅下载模型报 proxy 错误:从 modelscope 拉模型时不能开代理,关闭代理重试,见 faq.md 第 10 条
行动清单:五步收尾
- 服务启动成功,默认音色 2222 能正常生成音频
- 试听 5 个内置 seed,写下 3 个候选及其听感特征
- 按稳定档与自然档参数各生成一版,选定一组
- 确认 speaker/ 下存在对应 .csv 或 -covert.pt 文件
- API 用固定音色与参数调用成功,接入你的产品
音色是产品的声音名片,今天就固定你的第一个。
温馨提示:部署步骤与平台差异见 README.md,模型下载、报错等 15 类问题见 faq.md。
【免费下载链接】ChatTTS-ui一个简单的本地网页界面,使用ChatTTS将文字合成为语音,同时支持对外提供API接口。A simple native web interface that uses ChatTTS to synthesize text into speech, along with support for external API interfaces.项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考