ChatTTS-ui 语音合成音色定制:10分钟拿到3种选音色方法
【免费下载链接】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 是一个本地文字转语音合成工具,支持中英混排输入。本文按实际任务拆解四件事:启动服务、用三种途径选音色、把自备音色文件放进项目、调节语气效果。照做一遍,10 分钟内就能听到第一段定制语音。
最快上手合成:三条命令听到第一段语音
先克隆仓库并装好依赖:
git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui cd ChatTTS-ui && pip install -r requirements.txt python3 app.py首次启动会自动下载 ChatTTS 模型文件,网络连不上 Hugging Face 时会自动切到国内魔搭镜像源。终端出现 Start 提示、浏览器自动打开后即可使用,默认地址是http://127.0.0.1:9966🎧
在网页文本框输入一句话并点击合成。默认使用预置音色 2222,稍等几秒就能听到第一段语音。这一步不需要任何额外配置,先跑通流程。
选音色的三种途径:预置音色、自定义种子值、音色文件
合成时你听到的声音由三种途径决定,按场景任选其一:
| 途径 | 操作方式 | 适合场景 |
|---|---|---|
| 预置音色 | voice填数字 | 要一个稳定可复现的固定音色 |
| 自定义种子值 | custom_voice填大于 0 的整数 | 想当场生成一个新音色 |
| 音色文件 | .csv 或 .pt 文件放入 speaker 目录 | 要复用某个已确认的音色 |
预置常用值有 2222、7869、6653、4099、5099,任意其他数字也可以填。填了custom_voice后voice字段会被忽略,系统以这个数字为随机种子(决定音色随机性的整数)生成音色,并自动存成 speaker 目录下的{值}.csv,下次填同一个值即可得到同一音色。注意同一种子值在不同机器上音调可能略有差异,先试听确认可用再固定使用。
音色文件放进项目:版本不匹配时的格式转换步骤
0.92 版本起支持 .csv 和 .pt 两种音色文件。把文件放进 speaker 目录 后重启程序,它就会出现在音色下拉框里,API 的voice参数也可以直接填文件名(带或不带后缀都行)。
从魔搭等渠道下载的 .pt 文件(默认文件名形如seed_XXXX_restored_emb.pt)因为 0.96 版本后 ChatTTS 内核升级,不能直接用了。需要先在项目根目录执行音色格式转换脚本 cover-pt.py:
python cover-pt.py脚本会把 speaker 里所有以seed_开头、_emb.pt结尾的文件转成以_emb-covert.pt结尾的新文件,原文件转换完成后可以删掉。之后在界面下拉框选这个新文件即可使用该音色。
调节语气效果:prompt 标签的三种写法
prompt参数控制语音的细微效果,写法是一串方括号标签,常用的有三种:
[oral_X]:口语感强弱,X 越大越"聊天腔"[laugh_X]:是否带笑,X=0 为无笑声[break_X]:停顿时长,X 越大停顿越明显
标签直接拼接,X 取非负整数。比如合成一句带停顿、偏口语的表达,可以这样调用 API:
import requests res = requests.post('http://127.0.0.1:9966/tts', data={ "text": "欢迎收听本地语音合成教程", "voice": "2222", "prompt": "[oral_2][break_4]" }) print(res.json())返回的 JSON 里带 wav 文件路径和可下载网址。另外 temperature(默认 0.3)、top_p(默认 0.7)能调节合成的随机程度,想更稳定就往低调。
设备与显存门槛:自动选 GPU 还是 CPU
启动时程序会自动挑选计算设备,也可以用.env文件里的device变量强制指定:
default:优先找英伟达 GPU,显存不足会自动退回 CPU(README 中描述的门槛为显存低于 4G 强制 CPU)cpu:强制 CPU 推理mps:使用 Apple 芯片的 GPUcuda:强制使用英伟达 GPU
没有 GPU 也能跑,只是合成速度慢。有 4G 以上显存的英伟达卡时,装好 CUDA 12.8+ 和 CUDA 版 torch,启动即自动走 GPU 加速。
遇到问题先查这里:四个高频现象
音色文件不在下拉框里—— 原因:文件放错目录或扩展名不是 .csv/.pt。处理:移到 speaker 目录后重启程序。
下载的 .pt 音色报错或声音异常—— 原因:0.96 内核升级后旧格式不兼容。处理:先跑python cover-pt.py转换,再用-covert.pt结尾的新文件。
有英伟达显卡却仍走 CPU—— 原因:装的是非 CUDA 版 torch。处理:卸载后重装 CUDA 版,且系统需已装 CUDA 12.8+ 工具包。
同一种子值两台机器听感不同—— 原因:随机音色受运行环境影响,音调可能漂移。处理:接受小差异,或用 .csv/.pt 音色文件把声音固定下来。
到这里,选音色、换音色、调效果三条线就都通了。下一步建议挑一个顺耳的种子值,试听两遍后存成文件,之后直接当固定音色用。
【免费下载链接】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),仅供参考