ChatTTS攻略:开源对话式中文 TTS——华人团队出品,GitHub 星标 3w+。
ChatTTS 是由国内团队开发的开源对话式中文文本转语音工具,GitHub 星标已突破 3 万。它专注于生成自然、流畅的中文语音,尤其擅长模拟真实对话中的语气、停顿和情感变化。与市面上常见的 TTS 工具不同,ChatTTS 不追求“播音腔”式的标准发音,而是让 AI 像真人一样“说话”——带口癖、有情绪、会犹豫。这使得它在播客、有声书、语音助手、短视频配音等场景中表现出色。
适合人群:
不适合人群:
目标: 用最短时间让 ChatTTS 说出一句话。
环境准备: 确保电脑已安装 Python 3.8+ 和 Git。建议使用虚拟环境避免依赖冲突。
python -m venv chattts_env
source chattts_env/bin/activate # Linux/Mac
chattts_env\Scripts\activate # Windows
克隆仓库:
git clone https://github.com/2noise/ChatTTS
cd ChatTTS
安装依赖:
pip install -r requirements.txt
下载模型: 首次运行会自动下载预训练模型(约 1.5GB),确保网络畅通。
运行示例脚本:
python examples/web/webui.py
浏览器打开 http://localhost:8080,输入文本“今天天气真好,我们一起去散步吧!”,点击生成,即可听到语音。
第1天成果: 成功生成第一段自然语音,理解基本工作流程。
目标: 掌握核心参数,生成符合需求的语音。
理解核心参数:
temperature:控制随机性,越高语音越多样但可能不稳定(推荐 0.3-0.7)。top_p:核采样,与 temperature 配合使用(推荐 0.7-0.9)。speed:语速调节,1.0 为正常。emotion:情感标签,如“happy”、“sad”、“angry”(实验性功能)。编写 Python 脚本: 脱离 WebUI,用代码控制生成。
from ChatTTS import ChatTTS
import torch
chat = ChatTTS.Chat()
chat.load_models()
text = "你好,今天过得怎么样?"
params = {
"temperature": 0.5,
"top_p": 0.8,
"speed": 1.1,
"emotion": "happy"
}
wav = chat.infer(text, params)
# 保存为文件
import soundfile as sf
sf.write("output.wav", wav[0], 24000)
尝试对话式文本: 输入多轮对话,观察语音的连贯性。
A: 你吃饭了吗?
B: 刚吃完,你呢?
A: 我也吃了,咱们去看电影吧。
第1周成果: 能通过代码控制生成参数,制作不同风格的语音片段。
目标: 定制专属语音模型,或集成到项目中。
微调模型: 使用少量自己的语音数据(10-20 分钟)进行微调,让 ChatTTS 学会你的声音。
transformers 库进行微调(需 GPU)。集成到应用: 将 ChatTTS 作为 API 服务运行。
pip install fastapi uvicorn
编写简单的 FastAPI 接口,接收文本返回音频流。适合嵌入聊天机器人、智能音箱等场景。
批量生成: 利用多线程或异步 IO,批量处理长文本(如有声书章节)。
完全免费。 无隐藏收费、无订阅制、无云端服务费用。你只需要承担自己的硬件成本(GPU/CPU、电费)和网络流量。如果部署在云服务器上,需支付服务器费用。
如果你觉得 ChatTTS 不适合自己,以下替代方案可以参考:
总结: ChatTTS 是当前开源中文 TTS 的佼佼者,适合愿意动手的技术用户。如果你不想折腾代码,建议先用商业服务的免费额度过渡,等技术成熟后再考虑自部署。