最近狂火的文字转语音(TTS)相关的免费开源项目

文摘   科技   2024-06-04 11:13   江苏  

2noise/ChatTTS 项目

最近,有个AI项目,从5月底开始,几乎天天上榜。它就是由国内的 2noise 团队发布的 ChatTTS 项目。因为突破了开源TTS的天花板,逼真度大幅提升,几乎听不出来是AI的声音,所以一发布就持续霸榜。

ChatTTS是一个专为对话场景设计的文本到语音模型,适用于像大型语言模型助手这样的应用。它支持英文中文两种语言,并经过了超过10万小时的中英文训练。

目前在HuggingFace上开源的版本是一个4万小时预训练的模型,没有进行二次微调。最大的模型使用了10万小时以上的中英文数据进行训练,但似乎还没有开源。

因为目前使用它只能通过Python代码,为了方便更多的人,jianchang512 把它做成了一个带 WebUI 的 ChatTTS-ui项目,这个开源项目,也跟着一起火了😂 不过目前本地使用,还是需要有GPU,最小显存4G。感兴趣的,可以在报脸书上试用。

2noise_ChatTTS_x_announce

ChatTTS Demo

先来听几段官方放出的音频:

男生版介绍:

女生版介绍:

它的惊艳主要来自如下3个特点:

  1. 对话式TTS:ChatTTS针对对话式任务进行了优化,实现了自然流畅的语音合成,同时支持多说话人。
  2. 精细控制:该模型能够预测和控制细粒度的韵律特征,包括笑声、停顿和插入词等。
  3. 更佳韵律:ChatTTS在韵律方面超越了大部分开源TTS模型。同时提供预训练模型,支持进一步的研究。

使用方法

在线体验:

最方便的方法:https://huggingface.co/spaces/Dzkaka/ChatTTS

不能访问的话,就只能本地部署了:

本地 基础用法示例:

import ChatTTS
from IPython.display import Audio

chat = ChatTTS.Chat()
chat.load_models(compile=False# 设置为True以获得更快速度

texts = ["在这里输入你的文本",]

wavs = chat.infer(texts, use_decoder=True)

torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)

本地 高级用法示例:

###################################
# Sample a speaker from Gaussian.

rand_spk = chat.sample_random_speaker()

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(texts, 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)

torchaudio.save("output2.wav", torch.from_numpy(wavs[0]), 24000)

常见问题

  • 连不上HuggingFace怎么办?

请使用modelscope的版本. 并设置cache的位置: chat.load_models(source='local', local_path='你的下载位置')

  • 需要多少显存?Infer的速度如何?对于30s的音频, 至少需要4G的显存. 对于4090, 1s生成约7个字所对应的音频. RTF约0.3. 模型稳定性似乎不够好, 会出现其他说话人或音质很差的现象.

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

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

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

注意事项

  • 仅供学术目的,用于教育和研究,不得用于商业或法律目的。
  • 作者不对信息的准确性、完整性或可靠性负责。
  • 请负责任和道德地使用ChatTTS技术,已在40,000小时模型训练中添加高频噪声,音频质量压缩至MP3格式,防止恶意使用。

商业咨询

如需就模型进行正式商业咨询,请发送邮件至 open-source@2noise.com。对于中文用户,可以加入他们的QQ群:808364215 (已满) 230696694 (二群) 进行讨论。同时欢迎在GitHub上提出问题。如果遇到无法使用 HuggingFace 的情况,可以在 modelscope 上进行下载。

jianchang512/ChatTTS-ui 项目

这个开源项目提供了一个网页界面,让用户可以通过Web UI操作 ChatTTS 来合成语音,并支持API调用。项目提供了Windows预打包版下载,以及Linux和MacOS的源码部署指南。用户可以根据需要配置环境,安装依赖,并启动服务。此外,还提供了修改默认http地址的说明,以及如何通过API请求进行语音合成的详细参数和示例代码。项目还提到了在pyVideoTrans软件中如何使用ChatTTS webUI进行语音合成的步骤。

jianchang512_ChatTTS-ui_screen1

看下输出结果:

该作者还做了一个叫pyVideoTrans的工具,可以一键实现语音识别->字幕翻译->配音 = 带字幕和配音的新视频,也可以跟 ChatTTS 结合起来使用。对于视频搬运工来说,应该是必备工具了🤣

感兴趣的,看作者Github上的项目官网:jianchang512/pyvideotrans

天马行空的大杂烩
“我不能选择那最好的,是那最好的选择我。”-泰戈尔 💖欢迎来到这里。我天马行空地写,您随心所欲地看。欢迎就我们感兴趣的内容交流学习😀🤝
 最新文章