news 2026/8/24 5:01:12

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
快速搭建本地文字转语音服务: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 秒以内。

读完全文,你可以独立做到:

  1. 在自己的 Linux 机器上部署 ChatTTS-ui 的 WebUI 和/tts合成接口,并验证服务真的在跑;
  2. 用 ROCm 6.2(AMD 显卡)或 CUDA 12.8(NVIDIA 显卡)拿到 GPU 加速,并用rocm-smi/ PyTorch 脚本自查生效与否;
  3. 用一条curl或几行 Python 调用 API,拿到 wav 文件的本地路径和下载地址。

环境与选型速查:动手前先对一遍

项目最低要求推荐说明
操作系统Ubuntu 20.04 / Debian 11Ubuntu 22.04 / 24.04 LTSWindows、MacOS 的方案见README.md
Python3.93.103.12 及以上不支持(torch.compile 不兼容)
PyTorch2.7.12.7.1项目requirements.txt锁定torch>=2.7.1,按下表选对应 wheel
显存2GB(自动选型阈值)4GB 及以上低于 2GB 会强制回退 CPU,逻辑见ChatTTS/utils/gpu_utils.py
磁盘约 3GB5GB 以上含源码、虚拟环境、首次自动下载的模型
网络可连通 modelscope直连、关闭代理首次启动下载模型,下载时开代理会报 ProxyError

PyTorch wheel 三选一(版本号精确到 2.7.1,与项目要求一致):

你的显卡安装命令安装后torch.__version__
NVIDIA(需 CUDA 12.8+ Toolkit)pip3 install torch==2.7.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu1282.7.1+cu128
AMD(需 ROCm 6.2 运行时)pip3 install torch==2.7.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/rocm6.22.7.1+rocm6.2
纯 CPUpip3 install torch==2.7.1 torchaudio==2.7.12.7.1+cpu

六步部署实操:从 git clone 到第一段语音

每一步都是「命令 → 作用 → 验证」三段连着来,做完一步确认一步再往下走。

第 1 步:克隆源码

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

作用:拉取全部源码。验证:ls应看到app.pyChatTTS/requirements.txtspeaker/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、numpy==1.26.4transformers>=4.41.1等(torch 此时装的是通用版本,第 4 步会换成带 GPU 支持的确切版本)。验证:

python3 -c "import ChatTTS, flask; print('ok')"

输出ok即可。

第 4 步:按显卡装 PyTorch(AMD 用户看这里)

# AMD 显卡(ROCm 6.2) pip3 install torch==2.7.1 torchaudio==2.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.1+rocm6.2 GPU可用: True AMD Radeon RX 7900 XT 显存: 20.0 GB

NVIDIA 用户把安装命令换成上面速查表里的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/。验证有两处:

  1. 终端日志打印Start:127.0.0.1:9966,浏览器自动打开合成页面,标题是ChatTTS WebUI & API - v260614
  2. 网页里输入一段中文点合成,能听到语音、static/wavs/目录里多出一个 wav 文件。

顺手把服务地址和运行设备写进.env(项目根目录):

WEB_ADDRESS=127.0.0.1:9966 # 改成 0.0.0.0:9966 或局域网 IP 即可被内网访问 compile=false # torch.compile 开关,Windows 和部分环境建议关 device=default # 可手动指定 cpu / mps / cuda,default 按显存自动选

性能实测:300 字到底要多久

测试口径先说清楚:300 字中英数字混合文本,音频时长 35.2 秒;API 默认参数temperature=0.3top_p=0.7top_k=20skip_refine=0speed=5;每种配置跑 5 次取平均;系统 Ubuntu 22.04,torch 2.7.1。硬件为 Intel i7-12700K(32GB 内存)、AMD RX 7900 XT 20GB(ROCm 6.2)、NVIDIA RTX 4090 24GB(CUDA 12.8,驱动 555.52)。

配置300 字合成耗时每百字耗时进程内存显存占用RTF(耗时/音频时长)
i7-12700K,纯 CPU(16 线程)27.4 秒9.1 秒8.9GB0.78
RX 7900 XT,ROCm 6.23.9 秒1.3 秒6.4GB4.1GB0.11
RTX 4090,CUDA 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.csv7869.csv6653.csv4099.csv5099.csv3333.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;加wav=1参数则接口直接返回音频流。

避坑实录:六个最常见的问题怎么修

1. 现象:下载模型时报ProxyError: HTTPSConnectionPool(host='www.modelscope.cn', port=443)原因: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.ptFileNotFoundError: .../config/path.yaml原因:模型下载不完整,或 modelscope 源模型缺文件。 解法:删除models/重下一次;或手动补spk_stat.ptmodels/pzc163/chatTTS/asset/目录。

5. 现象:Windows 上启动报Windows not yet supported for torch.compile原因:.env里开了compile=true。 解法:改成compile=false再启动。

6. 现象:报Runtime Error: cannot find a working triton installation原因:同样指向compile=true,而当前环境没有可用的 triton。 解法:.envcompile=false(这也是项目默认值)。

横向对比与选型建议:哪种方案适合你

你的情况推荐方案理由
没有独显,先试试效果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,端口 9966
Mac M 系列芯片CPU 部署,compile=falseMPS 属于实验性路径,.envdevice=mps可自行试

选型一句话:优先看你有没有 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开头的说明)。
  • 内网共享.envWEB_ADDRESS=0.0.0.0:9966保存后重启,局域网内http://你的IP:9966就能访问。
  • 流式与直出/tts支持is_stream=1流式返回、wav=1直接返回音频文件,做长文本合成时前端可以边收边播。

资源索引

文件用途
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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 5:01:11

AI Agents系统设计:把前沿模型扔进糟糕设计的智能体系统你只会得到更会说话的失败

把前沿模型扔进糟糕设计的智能体系统你只会得到更会说话的失败 把最强的前沿模型塞进一个设计糟糕的智能体系统&#xff0c;结果往往不是能力跃升&#xff0c;而是失败变得更会说话、更难排查。几乎所有真正的工程量都落在模型之外——那个被称作Agent Harness的脚手架上。工具…

作者头像 李华
网站建设 2026/8/24 4:59:14

Adobe Photoshop 2026 保姆级安装教程:从下载到配置的完整指南

之前帮朋友装PS时&#xff0c;发现网上很多教程要么版本老旧&#xff0c;要么步骤复杂&#xff0c;要么夹带私货&#xff0c;新手很容易踩坑。本文基于最新的Adobe Photoshop 2026版本&#xff0c;整理了一套从下载、安装到激活、配置的保姆级教程&#xff0c;全程图文并茂&…

作者头像 李华
网站建设 2026/8/24 4:59:05

从脚本到系统:构建模块化自动化体系与智能体操作实践

在实际软件开发、运维和测试工作中&#xff0c;自动化是提升效率、保证质量、减少重复劳动的核心手段。从简单的脚本到复杂的持续集成/交付&#xff08;CI/CD&#xff09;流水线&#xff0c;再到前沿的AI智能体&#xff0c;自动化技术贯穿了现代软件工程的全生命周期。然而&…

作者头像 李华
网站建设 2026/8/24 4:57:08

Unity Shader 中的 multi-compile 关键字详解

#pragma multi_compile 是 Unity Shader 里用来生成**多个 shader 变体&#xff08;variants&#xff09;**的机制。理解它&#xff0c;能帮你搞懂"为什么一个 shader 文件能应对开关阴影、开关雾效、切换光照模式等无数种情况"。一、先搞懂核心问题&#xff1a;为什…

作者头像 李华
网站建设 2026/8/24 4:53:24

Gyroflow DaVinci Resolve 陀螺仪防抖:避坑快速上手

Gyroflow DaVinci Resolve 陀螺仪防抖&#xff1a;避坑快速上手 【免费下载链接】gyroflow Video stabilization using gyroscope data 项目地址: https://gitcode.com/GitHub_Trending/gy/gyroflow 手持 GoPro 的素材&#xff0c;画面像在船上漂&#xff0c;剪进成片观…

作者头像 李华
网站建设 2026/8/24 4:52:21

librealsense D455 点云实战手册

librealsense D455 点云实战手册 【免费下载链接】librealsense RealSense SDK 项目地址: https://gitcode.com/GitHub_Trending/li/librealsense 当你需要把一个仓库或车间扫描成三维模型做巡检时&#xff0c;关键一步是把深度相机的深度数据变成点云。librealsense 是…

作者头像 李华