ChatTTS-ui完整指南:三步从文字到语音
2026/9/20 10:34:37 网站建设 项目流程

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 就是一个跑在本地电脑上的文字转语音(TTS)合成工具——网页上输入文字,直接产出中英数字混杂、语感自然的音频,同时还开放 API 给你的程序调用。下面带你把它跑起来,并调出满意的音色。

如何安装并运行 ChatTTS-ui

你的第一个目标:打开网页,合成出第一段音频。全程不需要改任何配置,默认值就能用。

git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui . python3 -m venv venv && source venv/bin/activate pip3 install -r requirements.txt pip3 install torch==2.7.1 torchaudio==2.7.1 python3 app.py

Windows 用户把第二行换成.\venv\scripts\activate,其余命令不变。

  • 首次启动会自动联网下载模型(优先 ModelScope 魔塔,连不上再走 HuggingFace),耐心等进度走完
  • 启动后浏览器自动打开http://127.0.0.1:9966,在文本框输入文字,点"立即合成声音",页面上就能直接播放
  • 音色下拉框会自动列出 speaker目录 里的全部音色文件,先用默认的 2222 即可

如何固定音色并合成一段完整讲解

第一段音频到手后,你马上会遇到一个问题:换个种子音色就变了,怎么把某个好听的音色固定下来?页面上有三层控制,各司其职:

  1. 选内置音色:在"选择音色"下拉框里挑 speaker 目录中的 csv/pt 文件(如 2222.csv、7869.csv),音色完全固定,反复合成不会变
  2. 填音色值:在"音色值"框填任意大于 0 的整数(如 3000、9000),系统用这个种子生成随机音色,并自动存成speaker/3000.csv——从此这个数字永久对应同一副嗓子
  3. 调表达细节:Prompt 框填[oral_2][laugh_0][break_6]这类控制符,分别调口语感、笑声和停顿;语速滑杆 1~9,默认 5

举个例子,做一段儿童故事配音:音色下拉选 5099,语速拉到 3,Prompt 填[oral_1][laugh_1],出来的读白就会活泼不少。觉得嗓音太"平",把 temperature 从 0.3 往 0.4~0.5 调;追求稳定的播报感就往 0.2 降。

音色与参数推荐值速查

参数作用推荐值
voice从 speaker 目录选固定音色2222 / 7869 / 6653 / 4099 / 5099
custom_voice用任意种子生成随机音色,设置后覆盖 voice大于 0 的整数
prompt控制口语感、笑声、停顿[oral_2][laugh_0][break_6]
speed语速,1 最慢、9 最快5
temperature音色随机性0.3;稳定播报用 0.2
top_p / top_k采样宽度与候选词数0.7 / 20
text_seed文本润色阶段的种子,固定"说话习惯"42
skip_refine1=跳过文本润色,保留控制符时开启0

生成的 wav 存到static/wavs/下,文件名自动标注了参数,例如use14.39s-audio0s-seed1983-te0.1-tp0.701-tk20-textlen5-39593.wav——回头找"这条音频是怎么配的"时非常省事。

如何批量调用语音合成 API

要把一整个字幕文件转成音频,API 才是趁手的工具。向/tts发 POST 请求,参数和网页上一一对应:

import requests res = requests.post('http://127.0.0.1:9966/tts', data={ "text": "大家好,欢迎收听本期节目", "custom_voice": 3333, "temperature": 0.3, "top_p": 0.7, "top_k": 20 }) print(res.json()["audio_files"][0]["url"])

返回的url就是可直接下载的 wav 地址;请求里再加wav=1,则直接返回音频流。如果你手上有从外部站点下载的旧版 pt 音色文件(seed_开头、_emb.pt结尾),放进 speaker 目录后执行python cover-pt.py,cover-pt.py 会把它们转成当前内核可识别的格式。

避坑指南:四个常见报错与解决

现象原因解决
下载模型失败,报 proxy 类错误开着代理去连 ModelScope,而魔塔不允许代理关闭代理后重启 app.py
显存大于 4G 的显卡仍跑在 CPU 上装的是 CPU 版 torch 或 CUDA 版本过低卸载后重装 cu128 版 torch,并升级 CUDA 到 12.8+
下载的 pt 音色文件不出现在下拉框旧内核格式与 0.96+ 版本不兼容放进 speaker 目录,运行 python cover-pt.py 转换
同一音色值在不同机器上声音不同随机音色由采样生成,本身会漂移改用 speaker 目录里的 csv/pt 文件固定音色

接下来可以做这三件事

  1. 打开.env,把WEB_ADDRESS改成局域网 IP 加端口,让手机和同事也能访问你的合成页
  2. 挑 3~5 个音色值各合成同一段话,试听后只留下最好听的,组成你的固定音色库
  3. 写个循环调用/tts的小脚本,把整本稿子批量转成音频

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询