Ai配音|配音网|chattts

超强的文本转语音模型ChatTTS:效果自然流畅、支持笑声、停顿和插入词

AI配音网2024-06-03 09:24:4181

ChatTTS 是专为对话场景设计的语音生成模型,特别适用于大型语言模型(LLM)助手的对话任务,以及诸如对话式音频和视频介绍等应用。它支持中文和英文,通过使用大约 100,000 小时的中文和英文数据进行训练,ChatTTS 在语音合成中表现出高质量和自然度

近期热文

  • 当 AI 遇上爬虫:让数据提取变得前所未有的简单!
  • 超强 OCR 新秀:支持 90 多种语言,性能超越云服务!
  • 7.8K Star RAG 引擎:基于深度文档理解,最大程度降低幻觉、无限上下文快速完成 “大海捞针” 测试!

ChatTTS 主要特点

  • 多语言支持:ChatTTS 支持英语和中文。这使其能够为广泛用户群提供服务,并克服语言障碍。
  • 大规模数据训练:ChatTTS 使用了大约 10 万小时的中文和英文数据。这样的大规模训练使其声音合成质量高,听起来自然。
  • 对话任务兼容性:ChatTTS 很适合处理对话任务。它可以为对话生成响应,并在集成到各种应用和服务时提供更自然流畅的互动体验。
  • 开源计划:项目团队计划开源一个经过训练的基础模型。这将使学术研究人员和社区开发人员能够进一步研究和发展这项技术。
  • 可控性和安全性:团队致力于提高模型的可控性,添加水印,并将其与 LLMs 集成。
  • 易用性:ChatTTS 为用户提供了易于使用的体验。它只需要文本信息作为输入,就可以生成相应的语音文件。

ChatTTS 快速上手

1.克隆项目

git clone https://github.com/2noise/ChatTTS

2.安装依赖项

使用 pip 安装 torch 和 ChatTTS

pip install torch ChatTTS

3.导入所需库

import torch
import ChatTTS
from IPython.display import Audio

4.初始化 ChatTTS

创建 ChatTTS 类的实例并加载预训练模型。

chat = ChatTTS.Chat()
chat.load_models()

5.准备文本

texts = ["你好,欢迎使用ChatTTS!"]

6.生成语音

使用 infer 方法从文本生成语音。设置 use_decoder=True 以启用解码器。

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

7.播放音频

使用 IPython.display 中的 Audio 类播放生成的音频。将采样率设置为 24,000 Hz并启用自动播放。

Audio(wavs[0], rate=24_000, autoplay=True)

8.完整代码

import torch
import ChatTTS
from IPython.display import Audio
# 初始化ChatTTS
chat = ChatTTS.Chat()
chat.load_models()
# 定义要转换为语音的文本
texts = ["你好,欢迎使用ChatTTS!"]
# 生成语音
wavs = chat.infer(texts, use_decoder=True)
# 播放生成的音频
Audio(wavs[0], rate=24_000, autoplay=True)

ChatTTS 用法

1.基本用法

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)

2.进阶用法

###################################
# 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)

3.自我介绍示例

pip install torch ChatTTS0

ChatTTS 常见问题

1.链接不上 HuggingFace

对于这种情况,您可以使用 modelscope[2] 版本,并设置 cache 的位置:

pip install torch ChatTTS1

2.要多少显存? 推理的速度是怎么样?

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

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

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

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

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

https://github.com/2noise/ChatTTS

本文链接:https://aipeiyin.cc/peiyin/17.html

宣传ai配音奶声奶气ai配音ai大妈配音元首ai配音ai配音浑厚AI配音得分ai原配音ai双人配音爱莲说ai配音配音试听ai

相关文章

网友评论