2noise/ChatTTSView GitHub Homepage for Latest Official Releases
专为对话场景设计的生成式语音模型,支持中英文混合输入和多说话人能力
AGPL-3.0PythonChatTTS2noise 37.5k Last Updated: July 06, 2025
ChatTTS - 专业对话场景文本转语音模型
项目概述
ChatTTS是由2noise团队开发的一款专门针对对话场景设计的生成式文本转语音(TTS)模型。该项目在GitHub上已获得超过35,000+星标,是目前最受欢迎的开源TTS项目之一。
项目地址: https://github.com/2noise/ChatTTS
开发团队: 2noise
开源协议: AGPLv3+ (代码) / CC BY-NC 4.0 (模型)
主要语言支持: 中文、英文
ChatTTS的设计初衷是为LLM助手等对话应用提供自然、流畅的语音交互体验,相比传统TTS模型,它在对话场景下表现更加出色。
核心功能与特性
🎯 对话优化设计
- 专为对话场景优化: 针对聊天机器人、LLM助手等对话应用进行了专门优化
- 自然对话体验: 生成的语音更加自然、流畅,适合人机对话场景
- 交互式对话: 支持多轮对话中的语音连贯性
🎭 多说话人支持
- 多说话人能力: 支持不同说话人之间的切换,实现多角色对话
- 说话人采样: 可以从高斯分布中随机采样说话人特征
- 音色控制: 支持自定义和固定特定音色,保持角色一致性
🎵 精细化韵律控制
- 笑声控制: 支持添加不同程度的笑声效果
[laugh]
、[laugh_0-2]
- 停顿控制: 精确控制语音中的停顿和间隔
[uv_break]
、[lbreak]
、[break_0-7]
- 语调控制: 支持口语化程度调节
[oral_0-9]
- 情感表达: 能够预测和控制细粒度的韵律特征,包括语调变化
🌐 多语言支持
- 中英文混合: 原生支持中英文混合输入,无需语言标记
- 语言自适应: 自动识别和处理不同语言的文本内容
- 未来扩展: 计划支持更多语言
⚡ 技术优势
- 先进架构: 基于自回归模型架构,借鉴了Bark、Valle等先进技术
- 韵律优势: 在韵律表现方面超越了大多数开源TTS模型
- 高质量预训练: 主模型使用10万+小时的中英文音频数据训练
- 开源友好: 提供40,000小时预训练基础模型供研究使用
模型规格与性能
训练数据
- 主模型: 10万+小时中英文音频数据训练
- 开源版本: 4万小时预训练模型(未经SFT)
- 数据来源: 公开可用的音频数据源
性能指标
- GPU要求: 生成30秒音频至少需要4GB GPU内存
- 生成速度: 4090 GPU约每秒生成7个语义token
- 实时因子(RTF): 约0.3
- 音频质量: 24kHz采样率输出
硬件要求
- 最低配置: 4GB+ GPU内存
- 推荐配置: RTX 3090/4090等高端显卡
- CPU: 支持多核处理器加速
- 内存: 建议16GB+系统内存
安装与使用
快速安装
# 克隆项目
git clone https://github.com/2noise/ChatTTS
cd ChatTTS
# 安装依赖
pip install --upgrade -r requirements.txt
# 或使用conda环境
conda create -n chattts python=3.11
conda activate chattts
pip install -r requirements.txt
基础使用示例
import ChatTTS
import torch
import torchaudio
# 初始化模型
chat = ChatTTS.Chat()
chat.load(compile=False) # 设为True可获得更好性能
# 文本转语音
texts = ["你好,我是ChatTTS", "Hello, I am ChatTTS"]
wavs = chat.infer(texts)
# 保存音频文件
for i, wav in enumerate(wavs):
torchaudio.save(f"output_{i}.wav", torch.from_numpy(wav).unsqueeze(0), 24000)
高级控制功能
# 随机采样说话人
rand_spk = chat.sample_random_speaker()
# 设置推理参数
params_infer_code = ChatTTS.Chat.InferCodeParams(
spk_emb=rand_spk, # 说话人嵌入
temperature=0.3, # 温度参数
top_P=0.7, # top-P采样
top_K=20, # top-K采样
)
# 设置文本精炼参数
params_refine_text = ChatTTS.Chat.RefineTextParams(
prompt='[oral_2][laugh_0][break_6]', # 添加韵律控制
)
# 生成语音
wavs = chat.infer(
texts,
params_refine_text=params_refine_text,
params_infer_code=params_infer_code,
)
应用场景
🤖 AI助手与聊天机器人
- LLM对话系统的语音输出
- 智能客服系统
- 虚拟助手应用
📚 教育与培训
- 在线教育平台
- 语言学习应用
- 有声读物制作
🎬 内容创作
- 播客制作
- 视频配音
- 音频内容生成
🏢 企业应用
- 会议摘要播报
- 通知公告语音化
- 无障碍辅助功能
技术架构
核心组件
- 文本编码器: 处理输入文本的语义理解
- 韵律预测器: 预测和控制语音的韵律特征
- 声码器: 将特征转换为高质量音频波形
- 说话人编码器: 处理多说话人特征嵌入
模型特点
- 自回归架构: 基于Transformer的自回归生成模型
- 端到端训练: 统一的端到端训练框架
- 多模态融合: 文本、韵律、说话人信息的有效融合
注意事项与限制
使用限制
- 学术用途: 发布的模型仅限学术研究使用
- 商业限制: 不得用于商业或非法用途
- 伦理考量: 添加了高频噪声以防止恶意使用
技术限制
- 音频长度: 较长音频可能出现质量下降
- 计算需求: 需要较高的GPU计算资源
- 语言支持: 目前主要支持中英文
常见问题
- 生成速度: 可通过优化硬件配置和参数调整改善
- 音频质量: MP3压缩格式可能影响最终质量
- 稳定性: 自回归模型可能出现不稳定输出
总结
ChatTTS作为专门针对对话场景设计的TTS模型,在以下方面表现突出:
🎯 专业性: 专门为对话场景优化,在聊天机器人、AI助手等应用中表现优异
🚀 技术先进性: 采用最新的深度学习技术,在韵律控制和多说话人支持方面领先
🌟 开源价值: 提供完整的开源解决方案,降低了高质量TTS技术的使用门槛
🤝 社区活跃: 拥有活跃的开发者社区和丰富的生态资源
⚡ 实用性: 提供了从基础使用到高级控制的完整功能,满足不同层次的需求
ChatTTS的出现填补了对话场景专用TTS模型的空白,为构建更自然的人机语音交互体验提供了强有力的技术支撑。随着技术的不断发展和社区的持续贡献,相信ChatTTS将在语音合成领域发挥越来越重要的作用。