ChatTTS-ui 部署实操:10 分钟跑通本地语音合成
2026/9/20 18:57:46 网站建设 项目流程

ChatTTS-ui 部署实操:10 分钟跑通本地语音合成

【免费下载链接】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 是基于 ChatTTS 内核的本地网页语音合成工具:打开浏览器输入文字就能出语音,中英文和数字混杂也能正常读,同时对外提供 /tts 接口。本文覆盖 Docker 一键拉起 → 源码依赖安装 → 模型与音色准备 → API 调用,帮你一次跑通 ChatTTS-ui 部署。

快速上手:Docker 一键拉起

先克隆项目到本地并进入目录:

git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui.git chat-tts-ui cd chat-tts-ui

再用 compose 启动容器,GPU 机器换用 docker-compose.gpu.yaml:

docker compose -f docker-compose.cpu.yaml up -d docker compose logs -f --no-log-prefix

等日志出现启动:['0.0.0.0', '9966']后,浏览器访问 http://127.0.0.1:9966 。首次启动会自动下载模型并打开浏览器,耐心等待即可。

部署路径选择

方式适用人群上手时间注意事项
Docker 容器服务器、批量部署约 10 分钟需装 Docker Compose,镜像基于 pytorch/torchserve
源码部署开发调试、二次开发约 20 分钟Python 限 3.9–3.11,首次启动联网下模型
Windows 预打包版只想快速体验约 5 分钟解压双击 app.exe,部分安全软件可能误报

如果你不确定,选 Docker 容器部署。

Windows 预打包版

从项目 Releases 下载 Windows 压缩包,解压后双击 app.exe,控制台出现启动提示后访问 http://127.0.0.1:9966 。NVIDIA 显卡显存大于 4G 且已装 CUDA 12.8+ 时会自动启用 GPU 加速,遇到报毒提示可用源码部署替代。

Docker 容器部署

启动命令与快速上手一致,区别只在配置文件:有 NVIDIA GPU 用 docker-compose.gpu.yaml,纯 CPU 用 docker-compose.cpu.yaml。compose 文件会把当前目录挂载为 /app 并映射 9966 端口,模型和生成的音频都落在宿主机项目目录下,容器删除也不丢数据。

代码更新后执行docker compose down,再在 up 命令后加--build重建镜像。服务器部署时把地址换成服务器 IP 即可,例如 http://192.168.1.100:9966 ,无需其他改动。

源码手动部署

准备 Python 3.9–3.11(3.12 会报 Dynamo 不支持),克隆代码后建虚拟环境装依赖:

python3 -m venv venv source ./venv/bin/activate # Windows 下执行 .\venv\Scripts\activate pip install -r requirements.txt

PyTorch 单独装,按硬件二选一:

pip install torch==2.7.1 torchaudio==2.7.1 # CPU / macOS pip install torch==2.7.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu128 # 上一行为 NVIDIA GPU 版,需已装 CUDA 12.8+

最后启动,首次运行自动下载模型并打开浏览器:

python3 app.py

Linux 下

系统依赖执行sudo apt-get install ffmpeg python3.10 python3.10-venv(CentOS 换 yum)。显存充足却仍走 CPU 时,先pip uninstall -y torch torchaudio再按 cu128 重装 GPU 版。

macOS 额外步骤

先执行brew install python@3.10 libsndfile libomp:缺 libsndfile 会导致 soundfile 装不上,缺 libomp 会报 libomp.dylib 冲突。若进度条卡在 0%,把本地工作副本 .env 里的 compile 保持为 false(默认即是)。

模型与资源准备

首次启动会自动检测网络:能连 modelscope 就从魔塔下载,否则走 huggingface,模型缓存在项目根目录 models/ 下的 pzc163/chatTTS 子目录。⚠️ modelscope 只接受直连,挂着代理下载会报 ProxyError,关掉代理再重启。

下载不完整时可手动补齐:把完整模型文件(重点是 asset/spk_stat.pt 和 config/path.yaml)放进 models/pzc163/chatTTS/ 对应子目录后重启。

固定音色支持 csv 或 pt 两种格式,放进 speaker/ 目录后,在界面里填文件名(不带扩展名)或任意数字种子即可。0.96 版后从外部站点下载的 pt 文件需要先转换:

python cover-pt.py

脚本会把 speaker/ 下 seed_ 开头、_emb.pt 结尾的文件转成可用的 -covert.pt 格式,转换后原文件可删。

参数与 API 调用

Web 界面背后就是 /tts 接口,POST 一个最简请求即可出语音:

import requests res = requests.post('http://127.0.0.1:9966/tts', data={ "text": "欢迎使用 ChatTTS-ui", "voice": "3333", "temperature": 0.3 }) print(res.json())

成功时返回code:0和 audio_files 数组,其中 url 就是可直接下载的 wav 地址。常用参数如下:

参数默认值说明
text必填要合成的文字,多行会分段合成
voice2222音色数字,也可填 speaker/ 下 csv/pt 文件名
prompt控制符,如 [laugh_0][break_6] 表示笑声、停顿
temperature0.3温度,越低音色越稳定
top_p / top_k0.7 / 20采样参数
skip_refine01=跳过文本精修,速度更快
custom_voice0大于 0 时优先生效并忽略 voice
wav01=直接返回 wav 文件而非 json

端口和设备改本地 .env 文件即可:WEB_ADDRESS 换端口和 IP,device 指定 cpu / mps / cuda,改完重启生效。

踩坑速查

端口被占用:启动报 address already in use,多半是 9966 被其他程序占了。改本地 .env 里的 WEB_ADDRESS 端口后重启。

模型下载报 ProxyError:走 modelscope 时不允许挂代理。关掉系统代理,重新执行 python3 app.py。

有显卡但走 CPU:显存低于 4G 会自动降级 CPU,属正常保护。显存充足却仍走 CPU,多半装成了 CPU 版 torch,卸载后按 cu128 重装。

Dynamo is not supported on Python 3.12:项目只支持 Python 3.9–3.11。换 3.10 重建虚拟环境再装依赖。

报 Missing spk_stat.pt:models 目录里模型不完整,魔塔源缺该文件。手动下载 spk_stat.pt 放到 models/pzc163/chatTTS/asset/ 下再重启。

跑通任一路径后,改 .env 换端口即可给局域网使用。更多参数细节与报错对照见 README.md 和 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),仅供参考

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

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

立即咨询