ChatTTS
ChatTTS 简介
ChatTTS 是一款专为对话场景设计的文本转语音(Text-to-Speech, TTS)模型,特别适用于大语言模型(LLM)助手。该模型支持中英文,并经过100,000+小时的中英文语音数据训练。HuggingFace 上的开源版本是基于40,000小时数据进行预训练的模型,无SFT(监督微调)。
亮点
- 对话TTS:ChatTTS 针对对话任务进行优化,能够生成自然且富有表现力的语音,支持多位说话者,实现互动对话。
- 细粒度控制:该模型可以预测和控制包括笑声、停顿、感叹词等细粒度的韵律特征。
- 更好的韵律:ChatTTS 在韵律方面超越了大多数开源TTS模型,提供了预训练模型以支持进一步的研究和开发。
使用场景
- 虚拟助理:利用自然语音生成技术,提升用户与虚拟助理的互动体验。
- 教育及培训:生成多语言、多情景的语音内容,辅助在线教育及培训课程的开发。
- 游戏和娱乐:为游戏角色提供真实、自然的语音,提高用户的沉浸感。
- 无障碍技术:为视力或听力障碍人士提供更自然的语音交流工具。
使用方法
基本使用
import ChatTTS
from IPython.display import Audio
chat = ChatTTS.Chat()
chat.load_models()
texts = ["<在这里输入你的文本>",]
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 解码
}
# 句子层面控制示例
params_refine_text = {
'prompt': '[oral_2][laugh_0][break_6]'
}
wav = chat.infer("<在这里输入你的文本>", 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)
使用注意事项
由于ChatTTS拥有强大的语音合成能力,请务必负责任和伦理性地使用此技术。为了限制ChatTTS的滥用,训练40,000小时模型时加入了高频噪音,并通过MP3格式尽可能地压缩音频质量。同时,我们内部训练了一个检测模型,计划在未来开源。
广告:私人定制视频文本提取,字幕翻译制作等,欢迎联系QQ:1752338621