ChatTTS 通过多项创新功能,为对话场景提供前所未有的语音合成体验
专为对话任务优化,实现自然且富有表现力的语音合成。支持多说话人功能,促进交互式对话体验。
模型可以预测并控制细粒度的韵律特征,包括笑声、停顿和插入语等,让合成语音更加生动自然。
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 仓库从文本到自然语音的转换过程
提供您想要转换为语音的文本内容,支持中英混合输入
可选配置说话人、温度、韵律控制等参数,实现个性化语音
模型生成高质量的自然语音输出,支持实时流式生成
解答您可能遇到的问题
本仓库仅供学术目的使用。仅用于教育和研究用途,不应将其用于任何商业或法律目的。作者不保证信息的准确性、完整性或可靠性。为了限制 ChatTTS 的使用,我们在 40,000 小时模型的训练过程中添加了少量高频噪声,并尽可能使用 MP3 格式压缩音频质量,以防止恶意者将其用于犯罪目的。同时,我们内部训练了检测模型,并计划在未来开源。