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 是一个本地文字转语音的网页界面,用浏览器输入文字即可离线合成中文或中英混杂的语音,支持 Docker、源码两种部署方式,还对外提供 TTS API 接口,适合需要离线配音的内容创作者和想集成语音合成功能的开发者。
🧩 本地文字转语音工具能替你解决什么问题
ChatTTS-ui 把 ChatTTS 语音合成模型(一个能输出接近真人音色的开源模型)装进了一个浏览器网页里:输入文字、选个音色、点击按钮就得到 wav 音频,全程数据不离开本机。它解决的核心痛点是:不想把文本发给第三方接口、也不想按量付费,同时希望界面简单到不需要写代码。除了网页操作,服务启动后还自带/tts接口,方便其他程序调用。
🚀 跑起 TTS 服务的三种方式:从最快到最灵活
推荐路线是Windows 预打包版,全程无需配置环境;Linux 服务器建议用 Docker;需要深度定制(改依赖、换设备)再走源码部署。
路线一:Windows 预打包版(3 步跑通)
- 从项目 Releases 下载压缩包,解压后双击
app.exe - 首次启动会自动检测网络并下载模型(可连 huggingface.co 则从那里下,否则自动改从阿里魔塔 modelscope 下载)
- 浏览器自动打开默认地址
http://127.0.0.1:9966
前置条件:Windows 环境即可;若英伟达显卡显存大于 4G 且已装 CUDA 12.8+,会自动启用 GPU 加速。部分安全软件可能误报,遇到时改走源码部署。
路线二:Docker 容器化部署(Linux 服务器)
前置条件:已安装 Docker 与 docker compose。
git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui.git cd ChatTTS-ui # GPU 版本 docker compose -f docker-compose.gpu.yaml up -d # CPU 版本 docker compose -f docker-compose.cpu.yaml up -d启动后访问部署机器的IP:9966即可,本机可用http://127.0.0.1:9966。
路线三:源码部署(Linux / macOS / Windows)
前置条件:Python 3.9–3.11 环境。
git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui.git cd ChatTTS-ui python3 -m venv venv && source ./venv/bin/activate pip3 install -r requirements.txt # 无 CUDA 加速: pip3 install torch==2.7.1 torchaudio==2.7.1 # 需要 CUDA 加速(另需 CUDA 12.8+ ToolKit): pip install torch==2.7.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu128 python3 app.py注意:模型默认从 modelscope 下载,下载过程中必须关闭代理,否则会报 proxy 错误。
🎚️ 从基础合成到自定义音色:界面操作走读
单一功能——基础合成。在文本框输入文字(按行分段合成),从音色下拉框选一个预设音色,点击"立即合成声音",下方即出现可播放的音频。中英文、数字、符号混杂的文本可以直接输入,无需额外处理。
功能组合——合成 + 控制符 + 种子音色。在 Prompt 输入框填写控制词,例如[laugh_0]加笑声、[break_6]插入停顿、[oral_2]让表达更口语化;同时在"音色值"填入一个大于 1 的种子数字(如 3000),即可得到一个不同于预设的随机音色,生成结果会保存到本地 speaker 目录。想要长期稳定复用某个音色,可以把 csv 或 pt 格式的音色文件放进 speaker/ 目录作为固定音色。需要说明的是:相同种子值在不同设备上、甚至同一设备多次生成,音色都可能不同,追求稳定就用固定音色文件。
高级设置——参数与 API。界面上还有语速(1–9 档)、temperature、top_p、top_k 等采样滑杆,调节语气随机程度与节奏;编辑.env文件可修改WEB_ADDRESS(监听地址与端口)、device(手动指定 cpu / mps / cuda)、compile。服务本身就是一个 API:向http://127.0.0.1:9966/tts发 POST 请求,参数包括text、voice、prompt、temperature、top_p、top_k、skip_refine、custom_voice,成功时返回 JSON,内含 wav 文件路径和可直接下载的 url,pyVideoTrans 等工具可直接对接。常见报错的处理方法见 faq.md。
👥 这个 TTS 网页界面适合谁用
- 自媒体创作者:文案量大、需要频繁出配音时,用它批量把稿子转成音频,再导入剪辑软件合成视频。
- 开发者:想在自研工具里加文字转语音能力又不想维护模型时,直接调用
/tts接口拿到 wav。 - 个人用户:对隐私敏感、不想让文本经过外部服务时,在本机离线合成朗读音频。
⚠️ 常见报错与对策:部署避坑清单
| 现象 | 解决办法 |
|---|---|
下载模型时报ProxyError、proxy 类错误 | modelscope 不允许走代理下载,关闭代理后重试 |
FileNotFoundError缺path.yaml或Missing spk_stat.pt | 模型文件不完整,重新下载模型,或单独补齐缺失文件放到models/pzc163/chatTTS对应子目录 |
| 有英伟达显卡却仍走 CPU,或 GPU 上速度很慢 | 确认显存大于 4G;CUDA 升级到 11.8+,并卸载后重装 CUDA 版 torch(--index-url .../cu128) |
| macOS 进度条卡在 0% 或报 libomp 错误 | 执行brew install libomp,必要时把.env中compile=true改为compile=false |
启动报Dynamo is not supported on Python 3.12 | 项目要求 Python 3.9–3.11,换用 3.10 重建虚拟环境 |
| 相同种子值这次和上次音色不一样 | 属已知行为,音色会漂移;需要稳定音色时改用 csv / pt 固定音色文件 |
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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考