微信扫码
与创始人交个朋友
我要投稿
ChatTTS[1] 是一款专为日常对话设计的文本到语音(TTS)生成模型,它能够为LLM(大型语言模型)助手等对话场景提供自然、富有表现力的语音合成。
这个模型支持中英文两种语言,经过超过10万小时的中文和英文数据训练而成。
目前,ChatTTS在HuggingFace上提供的开源版本是一个预训练了4万小时的模型,且未进行SFT(Super Fine-Tuning,超微调)。
此外,模型可以预测和控制细粒度的韵律特征,包括笑声、停顿和插入语等。
此外,ChatTTS还提供了基本和高级两种使用方式,用户可以根据自己的需求进行选择。
import ChatTTS
from IPython.display import Audio
chat = ChatTTS.Chat()
chat.load_models(compile=False) # 设置为 True 以获得更好的性能
texts = ["PUT YOUR TEXT HERE",]
wavs = chat.infer(texts)
torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)
###################################
# 从高斯分布中采样一个说话者。
rand_spk = chat.sample_random_speaker()
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)
# 来在文本中生成特殊标记进行合成。
params_refine_text = {
'prompt': '[oral_2][laugh_0][break_6]'
}
wav = chat.infer(texts, 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_refine_text=params_refine_text, params_infer_code=params_infer_code)
torchaudio.save("output2.wav", torch.from_numpy(wavs[0]), 24000)
inputs_en = """
chat T T S is a text to speech model designed for dialogue applications.
[uv_break]it supports mixed language input [uv_break]and offers multi speaker
capabilities with precise control over prosodic elements [laugh]like like
[uv_break]laughter[laugh], [uv_break]pauses, [uv_break]and intonation.
[uv_break]it delivers natural and expressive speech,[uv_break]so please
[uv_break] use the project responsibly at your own risk.[uv_break]
""".replace('\n', '') # 英语仍在实验中。
params_refine_text = {
'prompt': '[oral_2][laugh_0][break_4]'
}
# audio_array_cn = chat.infer(inputs_cn, params_refine_text=params_refine_text)
audio_array_en = chat.infer(inputs_en, params_refine_text=params_refine_text)
torchaudio.save("output3.wav", torch.from_numpy(audio_array_en[0]), 24000)
对于30秒的音频剪辑,至少需要4GB的 GPU 显存。对于4090 GPU,每秒可以生成大约7个语义标记的音频。实时因子(RTF)大约为0.3。
这通常是自回归模型(例如 bark 和 valle)的问题,通常难以避免。可以尝试多次采样以找到合适的结果。
在当前发布的模型中,唯一的标记级控制单元是 [laugh]、[uv_break] 和 [lbreak]。在未来版本中,可能会开源具有额外情感控制能力的模型。
项目目前处于学术目的,仅供教育和研究使用,并且开发者对信息的准确性、完整性或可靠性不作保证。同时,为了限制ChatTTS的使用,开发者在40,000小时的模型训练中加入了高频噪声,并尽可能使用MP3格式压缩音质,以防止恶意使用。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-08-13
2024-05-28
2024-04-26
2024-08-21
2024-06-13
2024-08-04
2024-07-09
2024-09-23
2024-07-18
2024-04-11