ChatTTS本地部署教程:5分钟搭一套免费的文字转语音服务
2026/9/20 17:35:35 网站建设 项目流程

ChatTTS本地部署教程:5分钟搭一套免费的文字转语音服务

【免费下载链接】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 就是为此而生的本地方案:一个网页界面,把中英文混杂、带数字符号的文本合成为自然语音,同时对外暴露 REST 接口,方便接进你现有的程序。按下面的步骤走,从空机器到第一条语音,大概 5 分钟。

先确认你属于哪类人

这个项目适合三种情况:

  • 内容制作:要批量合成中文、中英混杂的旁白,且希望同一句子的音色可固定复用
  • 开发者:字幕、配音、朗读类应用需要一个可私有的 TTS 接口
  • 隐私敏感:文本不能离开本机,或团队内部部署、多人共用一台机器

如果你的需求只是偶尔转几句话,云 TTS API 反而更省事,没必要折腾本地部署。

5分钟跑通:预打包版最快

Windows 用户从 Releases 下载压缩包,解压后直接双击app.exe,浏览器会自动打开http://127.0.0.1:9966

两个注意点:

  1. 部分安全软件会误报病毒,可临时放行或改走源码部署
  2. 英伟达显卡显存大于 4G 且安装了 CUDA 12.8+ 才会启用 GPU 加速,否则自动回退 CPU

源码部署:Linux / macOS / Windows 三条路

三种系统的流程一致,只是装 torch 的方式不同。以 Linux 为例,要求 Python 3.9–3.11(3.12 以上会报 Dynamo 错误):

mkdir -p /data/chattts && 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

CPU 版直接装基础 torch;GPU 版追加--index-url https://download.pytorch.org/whl/cu128并装好 CUDA 12.8+:

pip3 install torch==2.7.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu128

最后一步统一是:

python3 app.py

启动后浏览器自动打开,默认地址http://127.0.0.1:9966。macOS 用户额外执行brew install libsndfile libomp;Docker 用户则只需一条命令:

docker compose -f docker-compose.gpu.yaml up -d # CPU 换成 docker-compose.cpu.yaml

首次启动会自动下载 ChatTTS 模型,优先从魔塔 modelscope 拉取,连不上再走 huggingface。🔊 这一步是唯一耗时的环节,下完就缓存在本地了。

网页界面能做什么

界面由 templates/index.html 渲染,按系统语言自动切换中英文,核心控件就这几类:

控件说明
文本框按行输入,每行合成一段;支持数字、符号与控制符混杂
音色选择读取speaker/目录下的 csv / pt 音色文件,也可填一个数字随机取音色
控制符 prompt[oral_2][laugh_0][break_6],控制口语度、笑声、停顿
采样参数temperature(默认 0.3)、top_p(0.7)、top_k(20)
自定义音色种子填大于 0 的整数,比voice参数优先级更高

合成结果统一是 24kHz 的 wav,落在static/wavs/目录,页面上可直接试听和下载。

接入你的程序:/tts 接口

对外接口定义在 app.py,POST http://127.0.0.1:9966/tts,唯一必填参数是text

import requests res = requests.post( 'http://127.0.0.1:9966/tts', data={"text": "你好,这是 ChatTTS 本地合成的语音", "voice": "3333"} ) print(res.json()) # 成功: {code:0, msg:"ok", audio_files:[{filename:本地wav路径, url:可下载地址, ...}]} # 失败: {code:1, msg:错误原因}

按需再加这些可选参数:

  • prompt:控制符,如[oral_2][break_6]
  • custom_voice:自定义音色种子,设置后忽略voice
  • temperature/top_p/top_k:随机性控制
  • speed:语速,默认 5
  • wav=1:直接返回 wav 文件而不是 JSON

audio_files里同时给了本地绝对路径和 http 下载地址,按你的场景取一个即可。

常见报错怎么解

九成问题都能在下面这条清单里对号入座,完整列表见 faq.md:

症状处理
modelscope 下载报 ProxyError从魔塔下模型时关闭代理;国内连不上它才会回退 huggingface
spk_stat.ptpath.yaml模型不完整,手动补齐到models/pzc163/chatTTS/对应子目录
cannot find a working triton installation打开.env,把compile=true改成compile=false
有 GPU 却慢、走 CPU显存低于 4G 会强制 CPU;否则卸载 torch 重装 cu128 版本
同种子音色对不上正常现象:跨机器、甚至同机器多次合成,音色都可能漂移

地址和端口想改就编辑 .env 里的WEB_ADDRESS,比如改成192.168.0.10:9966让局域网访问,device字段可手动指定cpu/mps/cuda

上线前检查清单

  • Python 在 3.9–3.11 区间(3.12 会报 Dynamo 不支持)
  • torch 版本 2.7.1,GPU 用户确认装的是 cu128 版本
  • 首次启动已让模型下载完毕(models/目录)
  • .envWEB_ADDRESS是你想要的监听地址
  • 浏览器打开http://127.0.0.1:9966成功合成出一句语音

机器只启动这一次最费时,之后每一次合成都是本地免费完成——文本不出门,接口随你调。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询