Ai配音|配音网|chattts

ChatTTS:专门为对话场景设计的文本到语音TTS模型

AI配音网2024-05-29 21:50:46156

项目概述

这个语音专文本TTS模型 应该是目前对中文支持最好的了
该模型经过超过10万小时的训练,公开版本在 HuggingFace 上提供了一个4万小时预训练的模型。
专为对话任务优化,能够支持多种说话人语音,中英文混合等。
模型还能够预测和控制细粒度的韵律特征,如笑声、停顿和插话等,还能进行更细粒度的调整,如语速、音调和情感等。

  • 背景:ChatTTS是一款专为对话场景设计的文本转语音模型,支持英文和中文语言。该模型经过训练,具有超过100,000小时的中英文语料。HuggingFace上的开源版本是一个经过预训练的40,000小时模型,不包含SFT(Spectral Feature Transformation)。

  • 目标:优化对话型任务的TTS,实现自然流畅的语音合成。支持多种说话者,促进交互式对话。

  • 主要功能

    1. 对话式TTS:ChatTTS针对对话型任务进行了优化,支持自然流畅的语音合成,适用于多种场景。

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

    3. 更好的韵律:在韵律方面,ChatTTS超越了大多数开源TTS模型。我们提供预训练模型以支持进一步的研究和开发。

安装与配置

前提条件

  • Python 3.7或更高版本

  • PyTorch

  • 其他项目特定的依赖项,如HuggingFace Transformers等

安装步骤

  • 克隆仓库git clone https://github.com/username/ChatTTS.git

  • 安装依赖pip install -r requirements.txt

  • 运行项目:详细说明如何启动项目,可能包括模型加载和任何必要的预处理步骤。

配置说明

  • 根据需要修改配置文件,包括模型参数、数据路径等。

使用指南

基本使用

import ChatTTS
from IPython.display import Audio
# 初始化ChatTTS对象并加载模型
chat = ChatTTS.Chat()
chat.load_models()
# 定义要转换为语音的文本
texts = ["",]
# 进行推理,生成音频
wavs = chat.infer(texts, use_decoder=True)
# 播放生成的音频
Audio(wavs[0], rate=24_000, autoplay=True)

进阶用法

# 从高斯分布中随机采样一个说话者
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,  # 添加采样的说话者
 'temperature': .3,    # 使用自定义温度
 'top_P': 0.7,         # 使用Top P解码
 'top_K': 20,          # 使用Top K解码
}
# 在句子级别进行手动控制
params_refine_text = {
 'prompt': '[oral_2][laugh_0][break_6]'  # 在文本中插入特殊标记进行合成
}
# 生成语音
wav = chat.infer("", 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_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)

请根据您的需求和场景选择合适的用法,并根据需要进行参数调整和自定义。

常见问题

  • 我需要多少显存?推理速度如何?对于30秒的音频片段,至少需要4GB的GPU内存。对于4090D GPU,它可以生成大约每秒7个语义标记对应的音频。实时因子(RTF)约为0.65。

  • 模型稳定性不够好,存在多说话者或音频质量差的问题。这通常是自回归模型(如bark和valle)所面临的问题,一般很难避免。可以尝试多次采样以找到合适的结果。

  • 除了笑声,我们还能控制其他内容吗?可以控制其他情感吗?在当前发布的模型中,仅支持[laugh]、[uv_break]和[lbreak]等令牌级别的控制单元。在未来的版本中,我们可能会开源具有其他情感控制功能的模型。

文档与资源

API文档

  • [API文档链接] : https://chatTTS/docs/api

参考资源

  • [Bilibili上的视频介绍] : https://www.bilibili.com/ChatTTS

授权协议

  • 本项目采用MIT许可证,详细信息请参阅完整许可证文本

注:本文内容仅供参考,具体项目特性请参照官方 GitHub 页面的最新说明。

https://github.com/2noise/ChatTTS
Webui: https://github.com/2noise/ChatTTS/pull/38

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

ai配音登录微软ai配音怎么做的乐秀有ai智能配音吗甄子丹ai配音原生ai配音ai双人配音ai代替配音老头ai 配音ai福建配音ai科技配音

相关文章

网友评论