开源文本转语音模型

ChatTTS

专为对话场景优化的文本转语音模型

支持中英双语,基于 10万+ 小时数据训练,为 LLM 助手等对话应用提供自然、富有表现力的语音合成能力

中文
English
多说话人

核心特性

ChatTTS 通过多项创新功能,为对话场景提供前所未有的语音合成体验

对话式 TTS

专为对话任务优化,实现自然且富有表现力的语音合成。支持多说话人功能,促进交互式对话体验。

细粒度控制

模型可以预测并控制细粒度的韵律特征,包括笑声、停顿和插入语等,让合成语音更加生动自然。

更好的韵律

ChatTTS 在韵律方面超越了大多数开源 TTS 模型。我们提供预训练模型以支持进一步的研究和开发。

使用指南

简单的 API 设计,轻松集成到您的项目中

基础使用

import ChatTTS
from IPython.display import Audio

chat = ChatTTS.Chat()
chat.load_models()

texts = ["<PUT YOUR TEXT HERE>"]

wavs = chat.infer(texts, use_decoder=True)
Audio(wavs[0], rate=24_000, autoplay=True)

高级使用

###################################
# 从高斯分布采样说话人
import torch
std, mean = torch.load('ChatTTS/asset/spk_stat.pt').chunk(2)
rand_spk = torch.randn(768) * std + mean

params_infer_code = {
  'spk_emb': rand_spk,  # 添加采样的说话人
  'temperature': .3,  # 使用自定义温度
  'top_P': 0.7,  # top P 解码
  'top_K': 20,  # top K 解码
}

###################################
# 句子级别手动控制

# 使用 oral_(0-9), laugh_(0-2), break_(0-7)
# 在文本中生成特殊 token 进行合成
params_refine_text = {
  'prompt': '[oral_2][laugh_0][break_6]'
}

wav = chat.infer("<PUT YOUR TEXT HERE>", 
                params_refine_text=params_refine_text, 
                params_infer_code=params_infer_code)

###################################
# 词级别手动控制
text = 'What is [uv_break]your favorite english food?[laugh][lbreak]'
wav = chat.infer(text, skip_refine_text=True, 
                params_infer_code=params_infer_code)

查看完整文档和更多示例

访问 GitHub 仓库

工作流程

从文本到自然语音的转换过程

1

输入文本

提供您想要转换为语音的文本内容,支持中英混合输入

2

参数配置

可选配置说话人、温度、韵律控制等参数,实现个性化语音

3

生成音频

模型生成高质量的自然语音输出,支持实时流式生成

常见问题

解答您可能遇到的问题

需要多少显存?推理速度如何?
对于 30 秒的音频片段,至少需要 4GB GPU 显存。对于 4090D GPU,它可以每秒生成约 7 个语义 token 对应的音频。实时因子(RTF)约为 0.65。
模型稳定性不够好,出现多说话人或音质问题怎么办?
这是自回归模型的典型问题(bark 和 valle 也存在)。通常难以完全避免。可以尝试多次采样来找到合适的结果。
除了笑声,还能控制其他内容吗?能控制其他情感吗?
在当前发布的模型中,唯一的 token 级别控制单元是 [laugh]、[uv_break] 和 [lbreak]。在未来版本中,我们可能会开源具有额外情感控制能力的模型。
这个项目适合什么用途?
ChatTTS 专为学术研究和教育用途设计,特别适合对话应用场景(如 LLM 助手)的语音合成。不应将其用于任何商业或法律目的。

重要声明

本仓库仅供学术目的使用。仅用于教育和研究用途,不应将其用于任何商业或法律目的。作者不保证信息的准确性、完整性或可靠性。为了限制 ChatTTS 的使用,我们在 40,000 小时模型的训练过程中添加了少量高频噪声,并尽可能使用 MP3 格式压缩音频质量,以防止恶意者将其用于犯罪目的。同时,我们内部训练了检测模型,并计划在未来开源。