项目概述
这个语音专文本TTS模型 应该是目前对中文支持最好的了
该模型经过超过10万小时的训练,公开版本在 HuggingFace 上提供了一个4万小时预训练的模型。
专为对话任务优化,能够支持多种说话人语音,中英文混合等。
模型还能够预测和控制细粒度的韵律特征,如笑声、停顿和插话等,还能进行更细粒度的调整,如语速、音调和情感等。
背景:ChatTTS是一款专为对话场景设计的文本转语音模型,支持英文和中文语言。该模型经过训练,具有超过100,000小时的中英文语料。HuggingFace上的开源版本是一个经过预训练的40,000小时模型,不包含SFT(Spectral Feature Transformation)。
目标:优化对话型任务的TTS,实现自然流畅的语音合成。支持多种说话者,促进交互式对话。
主要功能:
对话式TTS:ChatTTS针对对话型任务进行了优化,支持自然流畅的语音合成,适用于多种场景。
细粒度控制:模型能够预测和控制细粒度的韵律特征,包括笑声、停顿和插入词语。
更好的韵律:在韵律方面,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许可证,详细信息请参阅完整许可证文本。
https://github.com/2noise/ChatTTS 注:本文内容仅供参考,具体项目特性请参照官方 GitHub 页面的最新说明。
Webui: https://github.com/2noise/ChatTTS/pull/38
本文链接:https://aipeiyin.cc/peiyin/10.html
ai配音登录微软ai配音怎么做的乐秀有ai智能配音吗甄子丹ai配音原生ai配音ai双人配音ai代替配音老头ai 配音ai福建配音ai科技配音
网友评论