ChatTTS[1] 是一款专为日常对话设计的文本到语音(TTS)生成模型,它能够为LLM(大型语言模型)助手等对话场景提供自然、富有表现力的语音合成。
这个模型支持中英文两种语言,经过超过10万小时的中文和英文数据训练而成。
目前,ChatTTS在HuggingFace上提供的开源版本是一个预训练了4万小时的模型,且未进行SFT(Super Fine-Tuning,超微调)。
此外,模型可以预测和控制细粒度的韵律特征,包括笑声、停顿和插入语等。
此外,ChatTTS还提供了基本和高级两种使用方式,用户可以根据自己的需求进行选择。
importChatTTS
fromIPython.displayimportAudio
chat=ChatTTS.Chat()
chat.load_models(compile=False)#设置为True以获得更好的性能
texts=["
UTYOURTEXTHERE",]
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,#topP解码
'top_K':20,#topK解码
}
###################################
#句子级别手动控制。
#使用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='Whatis[uv_break]yourfavoriteenglishfood?[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="""
chatTTSisatexttospeechmodeldesignedfordialogueapplications.
[uv_break]itsupportsmixedlanguageinput[uv_break]andoffersmultispeaker
capabilitieswithprecisecontroloverprosodicelements[laugh]likelike
[uv_break]laughter[laugh],[uv_break]pauses,[uv_break]andintonation.
[uv_break]itdeliversnaturalandexpressivespeech,[uv_break]soplease
[uv_break]usetheprojectresponsiblyatyourownrisk.[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格式压缩音质,以防止恶意使用。
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |