
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 引擎的本地文本转语音 Web 服务你会得到点开即用的网页界面外加一个任何程序都能调用的 /tts 接口。下面三条路线选一条跟着走。先选路线10 秒对比路线上手速度可定制性适合场景Windows 预打包版解压双击约 5 分钟只能改 .env 配置个人电脑尝鲜、验证效果Docker 容器一条 compose 命令代码挂载进容器镜像可自改服务器 7×24 长期运行源码安装手动装 6 步依赖任意源码文件可改二次开发、接口定制、离线机器检查点动手前先用python -V确认版本在 3.9–3.11 区间3.12 及以上会在启动时报Dynamo is not supported直接走降级或换解释器。路线一Windows 预打包版解压双击即用到项目 Releases 页面下载最新 Windows 压缩包解压到无中文、无空格的路径例如D:\ChatTTS-ui。解压到短路径是为了避免程序写日志和模型时遇到权限问题。双击app.exe首次启动自动下载约 1GB 模型视网速 2–5 分钟控制台出现Start:127.0.0.1:9966一行代表服务已在监听。打开浏览器访问http://127.0.0.1:9966输入一句话点合成听效果。平台特有事项安全软件若误报app.exe加白名单或改用路线三的源码部署。英伟达显卡显存大于 4G、且已装 CUDA 12.8 及以上时程序自动启用 GPU 加速无需任何配置。检查点页面能打开合成后static/wavs/目录多出.wav文件浏览器里能听到人声。路线二容器部署丢到服务器长期跑这条路线只适用于 Linux 服务器前提是装好 Docker 和 Docker Compose批量定义、运行容器组合的工具GPU 版还要装 nvidia-container-toolkit 驱动容器才能看到显卡。克隆仓库并进入项目目录git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui chat-tts-ui cd chat-tts-ui固定目录克隆之后升级只需git pull不用重下代码。按硬件选 compose 文件启动容器# GPU 版需已装 nvidia-container-toolkit docker compose -f docker-compose.gpu.yaml up -d # CPU 版 docker compose -f docker-compose.cpu.yaml up -d跟一次初始化日志docker compose logs -f --no-log-prefix成功的标志是出现Start:0.0.0.0:9966一行此时局域网内任何设备访问http://服务器IP:9966都能用。容器路线适合长期跑的原因docker-compose.gpu.yaml 里配了restart: always断电重启后服务自动恢复整个项目目录挂载到容器内/app模型和音色都落在本机磁盘重建镜像也不会丢。升级时执行git pull再docker compose down后用up -d --build重建模型不会重复下载。检查点服务器重启后docker ps里容器状态仍在运行且能用局域网地址合成出一段新音频。路线三源码部署6 步得到可改的环境Windows、Linux、macOS 通用公共步骤一致平台差异放在最后。1. 准备 Python。装 3.9–3.11 任意版本3.12 直接不兼容Windows 安装时勾选 Add Python to environment variables让python命令全局可用。2. 克隆代码命令同路线二第 1 步并进入目录。3. 创建虚拟环境并激活——虚拟环境是独立的 Python 沙箱装包不污染系统库python -m venv venv # Windows 激活 .\venv\Scripts\activate # Linux / macOS 激活 source venv/bin/activate成功的标志是命令行前出现(venv)前缀。4. 安装依赖pip install -r requirements.txt注意 requirements.txt 中pynini、WeTextProcessing、nemo_text_processing三个文本规范化包只在 Linux 上安装Windows 装不上遇到相关报错查后面排错章节。5. 装 PyTorch。CPU 版pip install torch2.7.1 torchaudio2.7.1GPU 版需先装好英伟达 CUDA 12.8 及以上 Toolkit它是 GPU 算子库pip install torch2.7.1 torchaudio2.7.1 --index-url https://download.pytorch.org/whl/cu128显存小于 4G 时不用装 GPU 版——程序检测到显存不足会强制回退 CPU。6. 启动服务python app.py # Windows python3 app.py # Linux / macOS程序会自动打开浏览器没弹就手动访问http://127.0.0.1:9966首次启动下载模型约 1GB属正常等待。平台差异Windows把 ffmpeg 可执行文件开源音频处理工具放到 ffmpeg/ 目录程序会自动把它加进 PATH若报torch.compile相关错误保持.env里compilefalse默认就是关闭。macOS先brew install libsndfile git python3.10soundfile装不上就是缺 libsndfile进度条卡 0% 时确认compilefalse报libomp冲突就brew install libomp。Linuxapt 里默认只有高版本 Python 时用sudo apt install python3.10 python3.10-venv指定版本。公共配置用记事本打开 .envWEB_ADDRESS127.0.0.1:9966 # 改成 192.168.0.10:9966 之类的局域网地址其他设备即可访问 compilefalse # 关闭 torch.compile规避兼容性报错 devicedefault # 自动选 cuda(显存4G)/mps/cpu也可手动写 cpu|mps|cuda检查点控制台打印Start:行、页面可打开输入一句中英混排文字能合成出 24kHz 的 wav。跑通之后模型缓存与音色配置模型文件下载成功后存放在models/pzc163/chatTTS/之后每次启动直接用本地缓存。首次启动的取用顺序本地有就用本地没有且能连通 huggingface 就从2Noise/ChatTTS仓库拉取连不通则回落到魔搭modelscope国内模型社区源。手动放置模型时确认config/path.yaml和asset/spk_stat.pt齐全——魔搭源打包缺少后者缺了会报Missing spk_stat.pt。音色speaker/ 目录放固定音色.csv文件如3333.csv拿来即用在页面音色栏或 API 的voice参数里填文件名数字.pt文件是音色嵌入文件——音色被编码成的一段数值向量0.96 内核起旧格式不能直接用放进speaker/后执行python cover-pt.py转换即可填一个没有对应文件的数字时程序以该数为随机种子生成新音色并自动存入speaker/下次填同样的数字就是同一个声音。同一音色值在不同机器、甚至同一机器不同时间音调可能有轻微漂移属正常现象。检查点音色栏填3333合成控制台打印当前使用音色 .../3333.csv声音与随机音色明显不同。出错了按症状查起不来 / 页面能开但合成报错报错关键字原因处理No such file ... path.yaml模型没下全重新启动重下或手动把path.yaml放进models/pzc163/chatTTS/config/Missing spk_stat.pt魔搭源缺该文件补到models/pzc163/chatTTS/asset/目录ProxyErrormodelscope走魔搭下载时不能挂代理关掉系统代理再跑Dynamo is not supported on Python 3.12Python 版本过高换 Python 3.10 重建虚拟环境cannot find a working triton installationcompile 模式缺 Triton.env保持compilefalsemacOS 装不上soundfile缺底层库brew install libsndfile后重装macOS 报libomp冲突OpenMP 库重复加载brew install libomp能跑但声音不对返回code:0但url打不开确认static/wavs/目录存在且可写wav 就写在这里。中英混读怪页面勾选中英分词程序会把中文和英文分行合成并把数字转成对应语言读法123 → one two three / 一二三。太慢有显卡却在跑 CPU先pip uninstall -y torch torchaudio再按路线三第 5 步装 cu128 版CUDA 低于 12.8 先升级。显存不足 4G 被强制 CPU关掉占显存的其他程序或用 API 参数skip_refine1跳过文本精修阶段少一轮推理耗时。报错关键字速查Windows not yet supported for torch.compile→.env保持compilefalse默认已关。NotOpenSSLWarningmacOS→brew install openssl1.1再pip install urllib31.26.15。pynini/WeTextProcessing装不上Windows→ 这三个包只支持 Linux源码部署时可给chat.infer()传do_text_normalizationFalse或注释 ChatTTS/core.py 约 143 行起的对应段落。检查点改完重启服务重跑当初失败的那句话不再报错且static/wavs/生成新 wav。接进你的应用/tts 接口直接可用服务跑起来后向/tts发 POST 就能拿到音频。下面示例改掉端口和参数即可直接使用import requests res requests.post(http://127.0.0.1:9966/tts, data{ text: 欢迎使用ChatTTS-ui语音合成服务, voice: 3333, # 音色数字或 speaker/ 下不带扩展名的文件名 prompt: , # [laugh_0][break_6] 之类的语气、停顿控制符 temperature: 0.3, top_p: 0.7, top_k: 20, speed: 5, # 语速 skip_refine: 0, # 1跳过文本精修更快但质量略降 custom_voice: 0, # 正整数时强制按随机种子取音色优先级高于 voice wav: 0 # 1直接返回 wav 文件流而非 json }) print(res.json())成功返回{code: 0, msg: ok, audio_files: [{filename, url, ...}]}url可直接当音频地址失败返回{code: 1, msg: 原因}。检查点把返回里的url贴进浏览器能直接播放。下一步方向更多报错案例与解释faq.md完整参数表和 pyVideoTrans 集成说明README.md合成主逻辑在 ChatTTS/core.pyWeb 与 API 层在 app.py要改功能先读这两个文件功能建议与缺陷反馈去项目 Issues 区提【免费下载链接】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),仅供参考