ChatTTS-ui 本地语音合成:三条部署路径,5分钟从文字到语音
【免费下载链接】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
给短视频批量做旁白,不想按量付 API 费?ChatTTS-ui 是一个本地部署的语音合成工具:网页输入文字,直接产出 wav 文件。模型跑在你自己的机器上,生成次数不设限,数据不出本机。
📌 项目速览:本地语音合成能干什么
- 合成全程在本机完成,文本不经过任何外部服务器
- 模型下载一次,之后生成不收任何费用
- 模型就位后即可断网使用,笔记本、办公机都能跑
- 中英文、数字混排可直接输入;内置
/tts接口供程序调用
🚀 选一条部署路径:Windows一键安装 / Docker部署 / 源码安装
新手:Windows一键安装
- 从项目 Releases 下载预打包版,解压。
- 双击
app.exe,首次启动自动下载模型,浏览器随即打开。 - 个别安全软件可能误报,忽略即可,或改用源码方式。
服务器用户:Docker容器部署
git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui.git chat-tts-ui cd chat-tts-ui && docker compose -f docker-compose.cpu.yaml up -d容器自动构建并监听 9966 端口。本机访问127.0.0.1:9966,局域网用服务器 IP 即可。有 NVIDIA 显卡可换docker-compose.gpu.yaml,用docker compose logs -f跟踪启动日志。
开发者:Linux / macOS 源码安装
git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui.git chat-tts-ui cd chat-tts-ui python3 -m venv venv && source venv/bin/activate pip3 install -r requirements.txt python3 app.py注意两点:Python 用 3.9-3.11,3.12 会报 Dynamo 错误;首次下载模型默认走魔塔 modelscope,期间关闭代理,否则会报 proxy 类错误。
🎧 首次使用:从输入到出音
启动后浏览器自动打开http://127.0.0.1:9966。操作顺序固定:输入文本 → 选音色 → 调参数 → 点合成。中英数字混排可直接粘贴,系统按语言分行处理,数字会自动转成对应语言的读法。生成的 wav 保存在static/wavs/目录,文件名带时间戳和本次参数,方便回溯。
三个关键参数及其默认值:
| 参数 | 作用 | 推荐值 |
|---|---|---|
| temperature | 控制语音多样性 | 0.1-1.0,默认 0.3 |
| top_p | 影响语音质量 | 0.5-1.0,默认 0.7 |
| top_k | 优化生成效果 | 10-50,默认 20 |
音色编号对应speaker/目录里的 csv 文件,挑 3 个常用的:
- 2222:沉稳商务风,适合正式场合
- 7869:活泼青春感,适合娱乐内容
- 4099:温柔亲和,适合教育场景
🎬 三类高频使用场景
内容创作:短视频、播客作者把文案贴进界面,几分钟拿到整段旁白,wav 文件拖进剪辑软件就是成片配音。长脚本分段输入,单段控制在 50 字内,拼接后停顿更自然。
无障碍辅助:为视障读者提供本地文本转语音,把网页或书本文字粘进来,换音色、调语速,听感比默认音色的机械感好不少,且内容不经过第三方。
开发集成:业务系统通过/tts接口调用,传 text、voice 等参数,拿回音频文件路径和下载地址。批量任务在程序里循环请求即可,无需额外中间件。
❓ 高频问题速答
模型下载失败?多为代理拦截。关闭代理重跑;魔塔源缺个别文件时,手动补到models/pzc163/chatTTS/对应目录。
GPU加速不生效?需 NVIDIA 显卡、显存大于 4G 且装好 CUDA 12.8+。显存不足 4G 会强制回退 CPU;装了 CUDA 版 torch 仍无效时,先卸载 torch 再重装。
启动报错怎么办?Python 3.12+ 不兼容,降到 3.10 或 3.11;报 triton 缺失时,把.env里compile改成false。
断网能用吗?模型会缓存在本地models/目录,下载完整跑通一次后,启动不再依赖网络。
同一个音色值,两次声音不一样?相同种子在不同机器、甚至同一台机器上合成的音色会有差异,音调尤其明显。要固定音色,把 csv 或 pt 文件存进speaker/目录即可。
⚡ 提速与进阶
性能上记住三件事:
- NVIDIA 显卡显存大于 4G 并配好 CUDA 12.8+ 后,GPU 加速自动启用,速度提升 3-5 倍;显存低于 4G 会被强制切到 CPU。
- 长文本建议分段合成,每段 50 字以内,效果比一次塞整篇更稳。
- 首次下载的模型缓存在
models/目录,之后启动直接复用,不再走网络。
进阶玩法:custom_voice参数传一个大于 0 的整数作为种子,同一种子能稳定得到同一音色,方便音色复用;试听满意后,可把该音色存成 csv/pt 放进speaker/目录长期保存。接口侧,prompt支持[laugh_0]、[break_6]这类控制符来插入笑声和停顿。API 调用长这样:
import requests r = requests.post('http://127.0.0.1:9966/tts', data={ "text": "你好,这是本地合成的语音", "voice": "2222", "temperature": 0.3 }) print(r.json())返回code: 0即成功,audio_files里给出 wav 文件路径与下载链接。
本地部署一次,之后生成不再产生任何费用。挑一条部署路径把服务跑起来,再花五分钟走一遍输入到出音的流程;跑通后把127.0.0.1:9966配进你的业务,直接调用/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),仅供参考