行业资讯

快速搭建本地文字转语音服务:ChatTTS-ui 部署、ROCm GPU 加速与 API 调用完整指南

发布时间:2026/8/24 5:01:14
快速搭建本地文字转语音服务:ChatTTS-ui 部署、ROCm GPU 加速与 API 调用完整指南 快速搭建本地文字转语音服务ChatTTS-ui 部署、ROCm GPU 加速与 API 调用完整指南【免费下载链接】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 提供的本地文字转语音服务一个开箱即用的 Web 界面外加一个可以直接被程序调用的 HTTP API。结论先行值得动手读完你能上手什么一句话结论如果你想在自己的工作流视频配音、有声内容、本地自动化脚本里用 ChatTTS又不想把文本发到云端ChatTTS-ui 是目前最省事的选择值得试。纯 CPU 也能跑通300 字约 27.4 秒挂上 GPU 加速后缩到 4 秒以内。读完全文你可以独立做到在自己的 Linux 机器上部署 ChatTTS-ui 的 WebUI 和/tts合成接口并验证服务真的在跑用 ROCm 6.2AMD 显卡或 CUDA 12.8NVIDIA 显卡拿到 GPU 加速并用rocm-smi/ PyTorch 脚本自查生效与否用一条curl或几行 Python 调用 API拿到 wav 文件的本地路径和下载地址。环境与选型速查动手前先对一遍项目最低要求推荐说明操作系统Ubuntu 20.04 / Debian 11Ubuntu 22.04 / 24.04 LTSWindows、MacOS 的方案见README.mdPython3.93.103.12 及以上不支持torch.compile 不兼容PyTorch2.7.12.7.1项目requirements.txt锁定torch2.7.1按下表选对应 wheel显存2GB自动选型阈值4GB 及以上低于 2GB 会强制回退 CPU逻辑见ChatTTS/utils/gpu_utils.py磁盘约 3GB5GB 以上含源码、虚拟环境、首次自动下载的模型网络可连通 modelscope直连、关闭代理首次启动下载模型下载时开代理会报 ProxyErrorPyTorch wheel 三选一版本号精确到 2.7.1与项目要求一致你的显卡安装命令安装后torch.__version__NVIDIA需 CUDA 12.8 Toolkitpip3 install torch2.7.1 torchaudio2.7.1 --index-url https://download.pytorch.org/whl/cu1282.7.1cu128AMD需 ROCm 6.2 运行时pip3 install torch2.7.1 torchaudio2.7.1 --index-url https://download.pytorch.org/whl/rocm6.22.7.1rocm6.2纯 CPUpip3 install torch2.7.1 torchaudio2.7.12.7.1cpu六步部署实操从 git clone 到第一段语音每一步都是「命令 → 作用 → 验证」三段连着来做完一步确认一步再往下走。第 1 步克隆源码git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui cd ChatTTS-ui作用拉取全部源码。验证ls应看到app.py、ChatTTS/、requirements.txt、speaker/、docker-compose.gpu.yaml等条目看到app.py就说明目录结构完整。第 2 步准备 Python 3.9–3.11 虚拟环境python3.10 -m venv venv # 没有3.10就用3.9或3.11千万别用3.12 source ./venv/bin/activate作用隔离依赖避免污染系统 Python。验证python3 --version输出Python 3.10.x。第 3 步安装基础依赖pip3 install -r requirements.txt作用装 Flask、modelscope、numpy1.26.4、transformers4.41.1等torch 此时装的是通用版本第 4 步会换成带 GPU 支持的确切版本。验证python3 -c import ChatTTS, flask; print(ok)输出ok即可。第 4 步按显卡装 PyTorchAMD 用户看这里# AMD 显卡ROCm 6.2 pip3 install torch2.7.1 torchaudio2.7.1 --index-url https://download.pytorch.org/whl/rocm6.2作用安装带 ROCm 后端的确切版本 PyTorch。前置条件系统已装好 AMD 显卡驱动和 ROCm 6.2 运行时ROCm 官方文档有 Ubuntu/Debian 的一键脚本照着装。先验证运行时本身rocm-smi预期输出类似下面这样能看到你的 GPU 名称、温度、频率 ROCm System Management Interface GPU Temp(Power) Partitions SCLK MCLK Fan Perf PwrCap VRAM% GPU% 0 43.0c (38.0W) N/A 2100Mhz 1600Mhz 0% auto 300.0W 11% 0% 再验证 PyTorch 真的认到了卡ROCm 下仍走torch.cuda接口python3 - EOF import torch print(torch.__version__) print(GPU可用:, torch.cuda.is_available()) if torch.cuda.is_available(): print(torch.cuda.get_device_name(0)) print(f显存: {torch.cuda.get_device_properties(0).total_memory/1024**3:.1f} GB) EOF预期输出以 RX 7900 XT 为例2.7.1rocm6.2 GPU可用: True AMD Radeon RX 7900 XT 显存: 20.0 GBNVIDIA 用户把安装命令换成上面速查表里的cu128那一行即可验证脚本完全相同。第 5 步装 ffmpeg可选音频后处理需要# Debian/Ubuntu sudo apt-get install ffmpeg # Windows 源码部署则把 ffmpeg.exe 放到项目 ffmpeg/ 目录见 ffmpeg/ffmpeg下载.txt验证ffmpeg -version第一行输出形如ffmpeg version 6.0 ...。第 6 步启动服务并验证python3 app.py作用首次启动会自动检测模型——优先从 modelscope 下载此时必须关闭代理连不上则自动切 HuggingFace模型落到models/pzc163/chatTTS/。验证有两处终端日志打印Start:127.0.0.1:9966浏览器自动打开合成页面标题是ChatTTS WebUI API - v260614网页里输入一段中文点合成能听到语音、static/wavs/目录里多出一个 wav 文件。顺手把服务地址和运行设备写进.env项目根目录WEB_ADDRESS127.0.0.1:9966 # 改成 0.0.0.0:9966 或局域网 IP 即可被内网访问 compilefalse # torch.compile 开关Windows 和部分环境建议关 devicedefault # 可手动指定 cpu / mps / cudadefault 按显存自动选性能实测300 字到底要多久测试口径先说清楚300 字中英数字混合文本音频时长 35.2 秒API 默认参数temperature0.3、top_p0.7、top_k20、skip_refine0、speed5每种配置跑 5 次取平均系统 Ubuntu 22.04torch 2.7.1。硬件为 Intel i7-12700K32GB 内存、AMD RX 7900 XT 20GBROCm 6.2、NVIDIA RTX 4090 24GBCUDA 12.8驱动 555.52。配置300 字合成耗时每百字耗时进程内存显存占用RTF耗时/音频时长i7-12700K纯 CPU16 线程27.4 秒9.1 秒8.9GB—0.78RX 7900 XTROCm 6.23.9 秒1.3 秒6.4GB4.1GB0.11RTX 4090CUDA 12.83.6 秒1.2 秒5.9GB3.8GB0.10两个实用结论AMD RX 7900 XT 的速度约为 RTX 4090 的 90%是性价比很高的加速方案而 CPU 版 RTF 0.78 意味着「边合成边播」也来得及只是不适合批量出片。这个耗时不用信我——每次调用/tts的返回 JSON 里都有inference_time字段你自己跑一次就能复核。产出展示音频去哪儿了文件名是什么意思合成音频统一落在static/wavs/目录文件名自带全部关键信息例如102405_use1.82s-audio3.4s-seed2222-te0.3-tp0.7-tk20-textlen22-83912.wav含义102405合成时刻use1.82s耗时audio3.4s音频时长seed2222音色te0.3/tp0.7/tk20三个采样参数textlen22输入字数。想复现某条音频看文件名就够了。固定音色speaker/目录自带 23 个 csv 音色如2222.csv、7869.csv、6653.csv、4099.csv、5099.csv、3333.csv直接对应 API 的voice参数你从别处下载的 pt/csv 音色丢进这个目录就能用。API 返回片段第 6 步实测简化版{code:0,msg:ok,audio_files:[ {filename:.../static/wavs/102405_use1.82s-audio3.4s-seed2222-te0.3-tp0.7-tk20-textlen22-83912.wav, url:http://127.0.0.1:9966/static/wavs/102405_..._83912.wav, inference_time:1.82,audio_duration:3.4}]}url点开就是可直接播放下载的 wav加wav1参数则接口直接返回音频流。避坑实录六个最常见的问题怎么修1. 现象下载模型时报ProxyError: HTTPSConnectionPool(hostwww.modelscope.cn, port443)原因modelscope 的模型下载通道不允许走代理。 解法关掉代理重新python3 app.py如果你确实想从 HuggingFace 拉模型看app.py第 50–68 行的注释切换即可。2. 现象启动即报错Dynamo is not supported on Python 3.12原因项目不支持 Python 3.12。 解法换 Python 3.9–3.11推荐 3.10重建虚拟环境重跑第 2 步起。3. 现象明明有 N 卡/A 卡日志却显示在用 CPU合成特别慢原因装的是 CPU 版 torch。 解法先pip uninstall -y torch torchaudio再按第 4 步装对应cu128/rocm6.2wheel用第 4 步的验证脚本确认GPU可用: True。4. 现象运行时报Missing spk_stat.pt或FileNotFoundError: .../config/path.yaml原因模型下载不完整或 modelscope 源模型缺文件。 解法删除models/重下一次或手动补spk_stat.pt到models/pzc163/chatTTS/asset/目录。5. 现象Windows 上启动报Windows not yet supported for torch.compile原因.env里开了compiletrue。 解法改成compilefalse再启动。6. 现象报Runtime Error: cannot find a working triton installation原因同样指向compiletrue而当前环境没有可用的 triton。 解法.env设compilefalse这也是项目默认值。横向对比与选型建议哪种方案适合你你的情况推荐方案理由没有独显先试试效果CPU 源码部署300 字 27.4 秒能边合成边播零额外成本N 卡且显存 ≥4GBCUDA 12.8 cu128 wheel生态最成熟3.6 秒/300 字AMD RX 6000 / 7000 系列ROCm 6.2 rocm6.2 wheel3.9 秒约为 4090 的 90%性价比突出要部署到服务器/给别人用docker-compose.gpu.yaml一条docker compose -f docker-compose.gpu.yaml up -d起服务镜像基于 pytorch/torchserve:0.11.0-gpu端口 9966Mac M 系列芯片CPU 部署compilefalseMPS 属于实验性路径.env里devicemps可自行试选型一句话优先看你有没有 4GB 以上显存的 N 卡或 RX 6000 的 A 卡有就走对应 GPU 通道没有就先 CPU 跑通全流程之后再升级硬件也不用改代码。延伸方向跑通之后可以玩什么接入视频翻译工作流pyVideoTrans 1.82 在「设置 → ChatTTS」里填http://127.0.0.1:9966即可把本服务当作它的 TTS 引擎字幕直接变配音。固定专属音色把喜欢的 csv/pt 音色存进speaker/或在 API 里传custom_voice指定音色种子批量合成时声音保持统一注意不同设备同一 seed 的音色会有差异详见faq.md开头的说明。内网共享.env里WEB_ADDRESS0.0.0.0:9966保存后重启局域网内http://你的IP:9966就能访问。流式与直出/tts支持is_stream1流式返回、wav1直接返回音频文件做长文本合成时前端可以边收边播。资源索引文件用途README.mdWindows / Linux / MacOS / 容器四种部署的原始说明faq.md完整报错对照表本文避坑部分的来源app.pyWebUI 与/ttsAPI 实现参数默认值在第 141–154 行ChatTTS/utils/gpu_utils.py设备自动选择逻辑2048MB 显存阈值ChatTTS/config/config.py模型结构配置.envWEB_ADDRESS/compile/device三项运行配置speaker/音色目录csv 或 pt 文件docker-compose.gpu.yaml/docker-compose.cpu.yamlGPU / CPU 容器化部署【免费下载链接】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),仅供参考