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。本文按先联网跑通、再整体搬到断网机的思路走在一台有网的机器上备好模型与依赖整体迁移后离线验证全程不用碰源码。断网机器第一次启动会卡在哪很多人直接把代码拷到断网机器上就运行结果程序在第一步就停下——app.py 启动时会先找本地模型找不到就尝试联网下载优先 HuggingFace连不上再走 ModelScope 魔塔。模型只是第一道坎第二道是 pip 装依赖同样需要网络。所以离线部署没有神秘的离线开关程序本身就是本地优先逻辑你要做的只是提前备好两样东西——完整的模型目录、装好的 Python 依赖环境。模型文件到底丢哪个目录答案是固定的models目录目录约定写在 uilib/cfg.py 里启动时会自动创建。需要预置的内容如下路径内容models/pzc163/chatTTS/asset/模型权重Vocos.safetensors、DVAE.safetensors、Decoder.safetensors、Embed.safetensors、gpt/、tokenizer/、spk_stat.ptmodels/pzc163/chatTTS/config/path.yaml 等配置文件具体文件名以 ChatTTS/config/config.py 中的默认值为准拷贝前对照一遍。别把它放到项目根目录的asset/下程序只认models/。除了模型还有什么会卡网络就是 Python 依赖requirements.txt 里的 torch、transformers、vocos 等外加 torch 自己的大轮子几百 MB。这些都必须在离线机装好第一次python app.py才会真正进入加载模型环节。最短路径联网机上 5 分钟跑通服务这一步一石二鸟既验证环境没问题又顺手把模型缓存在models/里后面整体打包带走。cd /data/chattts 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 torch2.7.1 torchaudio2.7.1 python3 app.py注意两点Python 必须 3.9–3.113.12 会报 dynamo 错误需要 GPU 加速时把 torch 换成 cu128 源安装且要求 NVIDIA 显卡显存大于 4G、系统装好 CUDA 12.8。启动后浏览器会自动打开http://127.0.0.1:9966在页面输入中英混排文本点合成能听到声音即算成功。如何把整套环境搬到断网机器联网机跑通后只做三件事依赖打包、模型拷贝、整体迁移。离线依赖包怎么一键打包在与离线机相同操作系统、相同 CPU 架构、相同 Python 版本的联网机上执行pip download -r requirements.txt -d ./offline_packages pip download torch2.7.1 torchaudio2.7.1 -d ./offline_packages pip freeze requirements-offline.txt然后把offline_packages和requirements-offline.txt拷到离线机与代码放同一目录用pip install --no-index --find-links./offline_packages -r requirements-offline.txt完成安装。三个提醒torch 的轮子与平台绑定架构不匹配就装不上要 GPU 版就下载 torch 时加--index-url https://download.pytorch.org/whl/cu128pynini、WeTextProcessing 这几个包只有 Linux 能装离线机若是 Windows 请留意 requirements.txt 里的平台标记。除依赖外还要带什么要搬的东西来源放到离线机的位置整个models/目录联网机程序目录相同相对路径.env文件程序根目录相同位置speaker/可选音色 .csv / .pt 文件相同位置offline_packages刚打包的与代码同级离线机不用 GPU 的话装 CPU 版 torch 即可无需 CUDA。用到音频拼接、转码功能时系统需要有 ffmpeg把可执行文件放进ffmpeg/目录目录内附了获取说明。场景分叉个人、内网、高并发怎么跑.env里一共三个变量WEB_ADDRESS、device、compile。默认值127.0.0.1:9966意味着只有本机能用按场景改场景WEB_ADDRESSdevice附加建议个人单机保持默认default自动选 CUDA/MPS/CPU8GB 内存、纯 CPU 就够内网共享192.168.x.x:9966或0.0.0.0:9966default防火墙放行 9966 端口长文本 / 高频合成0.0.0.0:9966cuda显存 4Gcompiletrue开启 torch.compile内网部署只改WEB_ADDRESS为服务器内网 IP同事浏览器访问http://IP:9966就能用网页界面、调 API。高并发要注意ChatTTS-ui 是单进程服务请求多了会排队。GPU 机上多开几个实例、各占一个端口是最简单的横向扩展偏好容器化的话仓库自带 docker-compose 的 cpu/gpu 两套编排文件把当前目录挂进容器即可复用同一套models/。怎么确认离线服务真的断了网断网机启动后做两个动作就能闭环。第一步看控制台出现模型下载进度说明本地models/pzc163/chatTTS不完整回到上一节补文件没有任何下载动作说明全部命中本地。第二步直接打一次 APIcurl -X POST http://127.0.0.1:9966/tts -d text离线合成测试成功 -d voice2222返回 JSON 里code为 0、且带url字段就通了这个 url 可直接播放想直接拿音频文件就加一个-d wav1。常用可选参数text必填其余都有默认值参数默认说明voice2222音色种子数或 speaker/ 里的音色文件名prompt空控制符如[laugh_0][break_6]temperature / top_p / top_k0.3 / 0.7 / 20采样参数越大声音越飘skip_refine0置 1 跳过文本精修出音更快is_stream0置 1 走流式输出现象 → 原因 → 解法断网机启动不了别慌先查这张表更详细的讨论在 faq.md现象原因解法启动后仍尝试联网下载模型models/pzc163/chatTTS缺失或不完整把联网机的models/整目录拷过来覆盖FileNotFoundError: ...config/path.yaml模型包不全魔塔源缺该文件手动补config/path.yaml到对应目录合成时报Missing spk_stat.pt魔塔模型包缺这个文件把 spk_stat.pt 复制到models/pzc163/chatTTS/asset/下载模型时ProxyErrorModelScope 不允许走代理下载关闭代理后重试Dynamo is not supported on Python 3.12Python 版本过高换 Python 3.9–3.11 重建环境GPU 机器推理仍走 CPU 或很慢装了 CPU 版 torch 或显存不足 4G重装 cu128 版 torch装好 CUDA 12.8cannot find a working triton installation当前环境不支持 torch.compile把.env的compile改为false跑起来之后还能做什么固定音色把 .csv 或 .pt 音色文件放进speaker/目录API 的voice传对应文件名即可。注意同一音色值在不同机器上音调可能有差异跨设备交付前要试听。清理音频合成的 wav 都堆在static/wavs/调POST /clear_wavs可一键清空避免磁盘写满。看日志运行日志落在logs/目录按天滚动保留 5 份合成异常时先翻这里。下一步建议先用 curl 压一轮/tts接口记录单次合成耗时再决定要不要上 GPU 或多实例扩容。【免费下载链接】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),仅供参考