news 2026/9/20 13:52:56

ChatTTS-ui 本地语音合成实测:从部署到调通 TTS API 的完整记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ChatTTS-ui 本地语音合成实测:从部署到调通 TTS API 的完整记录

ChatTTS-ui 本地语音合成实测:从部署到调通 TTS 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 是一个把 ChatTTS 语音合成封装成本地网页 + API 服务的项目:输入文字,输出 wav 音频,全程在自己机器上完成。部署门槛不高,Docker 或 Python 环境一条命令即可启动,首次运行会联网下载模型,之后可离线使用。

项目定位

它本质上是一个 ChatTTS 的封装层,补足的是"调用 ChatTTS 太麻烦"这件事:不用写 Python 推理代码,不用手动管理音色文件,浏览器打开就能合成,外部程序也能通过 HTTP 接口调用。它适合三类人:想要本地配音而不愿依赖在线接口的内容创作者、需要批量文本转语音的小工具作者,以及想给自己的软件接 TTS 能力的开发者。

快速跑起来:Docker 一条命令

最省事的路径是 Docker,以 CPU 版为例:

git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui cd ChatTTS-ui && docker compose -f docker-compose.cpu.yaml up -d

容器启动后访问http://127.0.0.1:9966即可。GPU 版把文件名换成docker-compose.gpu.yaml,需要 NVIDIA 显卡加 CUDA 12.8。

其余方式压缩成三行:Windows 用户可从 Releases 下载预编译包,解压后双击app.exe;Mac/Linux 源码部署用 Python 3.9–3.11(不支持 3.12+),依次执行pip3 install -r requirements.txtpython3 app.py;启动时自动打开浏览器。完整步骤见 README.md。

能力拆解:仓库里实际给了什么

网页界面 + REST 接口,一套服务两个入口。app.py 用 Flask 同时提供首页和/tts接口,网页填什么参数,接口就收什么参数,默认值完全一致(voice 默认 2222、temperature 0.3、top_p 0.7、top_k 20)。效果:浏览器点"合成"或脚本 POST 请求,走的是同一条推理链路。

中文数字、日期、电话号码的自动读法转换。uilib/zh_normalization/ 内置中文文本规范化,能把"12块5""0421-33441122"这类内容转成口播读法;英文数字则尝试用 nemo_text_processing 处理,失败时回退到自带实现。效果:直接粘贴带数字、标点的原始文案也能正常读。

音色可固定、可复用。传一个整数音色值(如 2222)会据此生成随机音色并自动存为 csv 到 speaker/ 目录;之后把 csv 或 pt 文件放进 speaker/ 文件夹,就能当固定音色选。效果:满意的音色调出来一次,后续所有合成直接点名调用。

设备自动选择。启动时根据显卡显存判断:显存大于 4G 走 CUDA,不足 4G 强制 CPU,Mac 走 MPS,也可以在 .env 里手动指定device。效果:普通笔记本开箱即用,不折腾。

一个完整使用场景:把一段文案变成 wav

以源码部署为例,端到端走一遍:

  1. 启动后浏览器停在http://127.0.0.1:9966,页面只有几项:文本框、音色选择、音色值、Prompt、语速、temperature、top_p 等;
  2. 文本框按行输入,比如第一行"大家好,我是你们的配音助手",选音色 2222,语速保持默认 5;
  3. 点合成,页面开始加载,音频生成后浏览器直接可试听;
  4. 文件落在static/wavs/目录,文件名自带耗时、音色、参数信息,方便回溯是哪次生成的。

如果走接口,产物一样:POST 成功后返回 json,audio_files里同时给本地绝对路径和可下载 url,取哪个都行。

进阶:接口怎么调、.env 改什么

调用/tts接口。只传text就能跑,其余参数全部有默认值:

res = requests.post('http://127.0.0.1:9966/tts', data={"text": "要合成的内容", "voice": "2222"}) print(res.json()["audio_files"][0]["url"])

改服务地址。编辑 .env 里WEB_ADDRESS=127.0.0.1:9966,换成局域网 IP 后其他设备也能访问网页和接口。

控制停顿与语气。prompt参数支持[break_6](停顿)、[laugh_0](笑)等控制符,适合给文案加节奏感;文本里直接写控制符效果不好时,勾选"跳过 refine text"(接口即skip_refine=1)。

限制与常见坑

  • 模型下载卡住:默认从 modelscope 下载,期间不能挂代理,否则报 proxy 类错误;国内网络直连通常无问题。报错对照见 faq.md。
  • GPU 不生效:显存低于 4G 会被强制回退 CPU;N 卡需要 CUDA 12.8+ 且装的是对应 CUDA 版 torch,装错就重装。
  • 相同音色值 ≠ 相同声音:不同机器用同一 seed 音色不同,同一机器多次生成音调也可能漂移。想要稳定音色,务必把生成过的 csv/pt 存进 speaker/ 目录复用。
  • 长文本处理:超过约 200 字符的段落会按标点自动分段合成再拼接,分段边界处节奏可能略生硬,关键文案建议自己按行分行。

写在最后

ChatTTS-ui 做的事情不复杂,但把"下载模型、管理音色、调推理参数"这几件麻烦事都收进了一个服务里,对只想拿结果的场景是合适的。功能更新以项目提交记录为准,升级前先看下 changelog 再重建容器即可。

【免费下载链接】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/9/20 13:51:07

ArcGIS地理坐标面转UTM栅格:投影与像元对齐实战指南

1. 从一个"坐标对不上"的现场说起如果你手头有一份用经纬度记录的面状数据,比如某个片区的用地类型图斑、某片林地的边界范围,而下游的分析工具偏偏只认UTM投影坐标下的栅格,那你大概率经历过下面这个场景:数据加载进去…

作者头像 李华
网站建设 2026/9/20 13:47:57

Email Verification API 规范 Accounts Validation 算法逐行讲解

Email Verification API 规范 Accounts Validation 算法逐行讲解 【免费下载链接】email-verification verified autofill 项目地址: https://gitcode.com/GitHub_Trending/em/email-verification Email Verification API(邮件验证协议 EVP)是 W…

作者头像 李华
网站建设 2026/9/20 13:45:23

Halcon + C#:工业读码与OCR识别的落地方案

简介:这份资源是一套基于 C# 与 Halcon 的二维码深度识别与 OCR 示例工程,面向需要在 Windows 桌面应用中集成机器视觉能力的开发者和自动化项目人员。项目以 WindowsFormsApp1 为入口,完整演示了图像捕获、预处理、二维码定位与解码、文字识…

作者头像 李华