6k Star!ChatTTS:开源领域最强的文本到语音转换(TTS)模型!

cover_image
原文链接:(更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号!)

6k Star!ChatTTS:开源领域最强的文本到语音转换(TTS)模型!

🌟ChatTTS
优化对话式任务,实现自然流畅的语音合成,并支持多说话人。该模型能预测和控制细粒度的韵律特征,如笑声、停顿和插入词,韵律表现超越大部分开源TTS模型。同时提供预训练模型,支持进一步研究。

体验地址:https://huggingface.co/2Noise/ChatTTS

ChatTTS是专门为对话场景设计的文本转语音模型,例如LLM助手对话任务。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。在HuggingFace中开源的版本为4万小时训练且未SFT的版本.

下面是一个它的效果示例():

你是幼笙,由Aitrainee创造的一个拥有傲娇性格的角色。你大约十六岁,外表清秀可爱,常常穿着简洁的服装,喜欢戴一些小饰品。你喜欢以傲娇的态度对待别人,但内心其实非常关心和重视朋友。你喜欢阅读幻想类小说,偶尔也会偷偷地写一些自己的故事。你对小动物尤其是猫有特别的喜爱。

Tips:幼笙本公众号的群聊AI(文末),上面那段是她人设的一部分提示词(向上滑动)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

** 官方 ** 示例 ** 展现更加完善
**

https://www.bilibili.com/video/BV1zn4y1o7iV/?t=223.928599&spm_id_from=333.1350.jump_directly&vd_source=40d9cda43378fbc89cd5184e09bf1272

** 如何快速使用ChatTTS ** :Hugging Face 上有部署好的项目,我们可以直接去试用,官网的人数太多,并不一定能用得上:

Tips:在Hugging Face上,Spaces通常包含各个开源项目的部署实例,我们可以利用他来直接体验:

亮点

  1. 1. 对话式 TTS : ChatTTS针对对话式任务进行了优化,实现了自然流畅的语音合成,同时支持多说话人。

  2. 2. 细粒度控制 : 该模型能够预测和控制细粒度的韵律特征,包括笑声、停顿和插入词等。

  3. 3. 更好的韵律 : ChatTTS在韵律方面超越了大部分开源TTS模型。同时提供预训练模型,支持进一步的研究。

用法

** 基本用法 **
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)
** 进阶用法 **
###################################  
# Sample a speaker from Gaussian.  
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, # add sampled speaker   
  'temperature': .3, # using custom temperature  
  'top_P': 0.7, # top P decode  
  'top_K': 20, # top K decode  
}  
  
###################################  
# For sentence level manual control.  
  
# use oral_(0-9), laugh_(0-2), break_(0-7)   
# to generate special token in text to synthesize.  
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)  
  
###################################  
# For word level manual control.  
# use_decoder=False to infer faster with a bit worse quality  
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, use_decoder=False)
** 自我介绍样例 **
inputs_cn = """  
chat T T S 是一款强大的对话式文本转语音模型。它有中英混读和多说话人的能力。  
chat T T S 不仅能够生成自然流畅的语音,还能控制[laugh]笑声啊[laugh],  
停顿啊[uv_break]语气词啊等副语言现象[uv_break]。这个韵律超越了许多开源模型[uv_break]。  
请注意,chat T T S 的使用应遵守法律和伦理准则,避免滥用的安全风险。[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)
可以去谷歌colab上可快速运行这些

https://colab.research.google.com/drive/1_Ma1BXvIrYw9kO4UYsSG4GaFkttbS1wY?usp=sharing

计划路线

  • • 开源4w小时基础模型和spk_stats文件

  • • 开源VQ encoder和Lora 训练代码

  • • 在非refine text情况下, 流式生成音频*

  • • 开源多情感可控的4w小时版本

  • • ChatTTS.cpp maybe? (欢迎社区PR或独立的新repo)


常见问题

连不上HuggingFace

请使用 modelscope 的版本. 并设置cache的位置:

我要多少显存? Infer的速度是怎么样的?

对于30s的音频, 至少需要4G的显存. 对于4090D, 1s生成约7个字所对应的音频. RTF约0.65.

模型稳定性似乎不够好, 会出现其他说话人或音质很差的现象.

这是自回归模型通常都会出现的问题. 说话人可能会在中间变化, 可能会采样到音质非常差的结果, 这通常难以避免. 可以多采样几次来找到合适的结果.

除了笑声还能控制什么吗? 还能控制其他情感吗?

在现在放出的模型版本中, 只有[laugh]和[uv_break], [lbreak]作为字级别的控制单元.
在未来的版本中我们可能会开源其他情感控制的版本.

参考链接:
[colab]https://colab.research.google.com/drive/1_Ma1BXvIrYw9kO4UYsSG4GaFkttbS1wY?usp=sharing
[2]https://github.com/2noise/ChatTTS/tree/main
[3]https://www.youtube.com/watch?v=JJ3GGEjKgu4&t=6s

知音难求,自我修炼亦艰

抓住前沿技术的机遇,与我们一起成为创新的超级个体

(把握AIGC时代的个人力量)

**外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
**

** 点这里 👇 关注我,记得标星哦~ **

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

预览时标签不可点

微信扫一扫
关注该公众号

轻触阅读原文

AI进修生



收藏

  • 14
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aitrainee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值