11 KiB
11 KiB
ComfyUI-MegaTTS
(English / 中文)
基于字节跳动MegaTTS3的ComfyUI自定义节点,支持中英双语的高质量文本转语音合成及声音克隆功能。
更新日志
版本 1.0.2
- 重构了代码和自定义节点,以优化性能和更好的GPU资源管理。
- 增强了内存管理功能,以防止低显存用户内存不足。
- 国际化i18n, 支持中文英文
版本 1.0.1
- 修复了bug
功能特点
- 高质量语音合成:从文本输入生成自然流畅的语音
- 声音克隆:只需一个短样本即可克隆任何声音(需要WAV和NPY文件)
- 双语支持:支持中文和英文文本,具有代码切换能力
- 高级参数控制:精细调节生成质量、发音准确度和声音相似度
- 内存管理:内置功能优化GPU资源使用
- 自动模型下载:需要时自动下载模型
安装
前提条件
- 已安装并正常运行的ComfyUI
- 推荐Python 3.10+
- 支持CUDA的GPU,至少4GB显存(推荐8GB+以获得更高质量)
安装步骤
-
将此仓库克隆到ComfyUI的
custom_nodes目录:cd ComfyUI/custom_nodes git clone https://github.com/1038lab/ComfyUI-MegaTTS.git -
安装所需依赖:
cd ComfyUI-MegaTTS pip install -r requirements.txt -
节点将在首次使用时自动下载所需模型,或者您可以手动下载它们:
模型与手动下载
此扩展使用经过修改的字节跳动MegaTTS3模型。虽然模型会在首次使用时自动下载,但您也可以从Hugging Face手动下载它们:
模型结构
模型按以下结构组织:
model_path/TTS/MegaTTS3/
├── diffusion_transformer/
│ ├── config.yaml
│ └── model_only_last.ckpt
├── wavvae/
│ ├── config.yaml
│ └── decoder.ckpt
├── duration_lm/
│ ├── config.yaml
│ └── model_only_last.ckpt
├── aligner_lm/
│ ├── config.yaml
│ └── model_only_last.ckpt
└── g2p/
├── config.json
├── model.safetensors
├── generation_config.json
├── tokenizer_config.json
├── special_tokens_map.json
├── tokenizer.json
├── vocab.json
└── merges.txt
手动下载选项
-
从Hugging Face直接下载:
- 访问ByteDance/MegaTTS3仓库
- 从仓库下载每个子文件夹:
- 将下载的文件放在
comfyui/models/TTS/MegaTTS3/下的相应目录中
-
使用Hugging Face CLI:
# 如果您还没有huggingface_hub,请先安装 pip install huggingface_hub # 下载所有模型 python -c "from huggingface_hub import snapshot_download; snapshot_download(repo_id='ByteDance/MegaTTS3', local_dir='comfyui/models/TTS/MegaTTS3/')"
声音文件夹与声音制作器
[!重要]
WaveVAE编码器目前不可用。出于安全考虑,字节跳动未上传WaveVAE编码器。
您只能使用预先提取的潜在变量(.npy文件)进行推理。
要为特定说话者合成语音,请确保相应的WAV和NPY文件位于同一目录中。
有关获取必要文件或提交语音样本的详细信息,请参阅字节跳动MegaTTS3仓库。
声音文件夹结构
扩展需要一个Voices文件夹来存储参考声音样本及其提取的特征:
Voices/
├── sample1.wav # 参考音频文件
├── sample1.npy # 从音频文件提取的特征
├── sample2.wav # 另一个参考音频
└── sample2.npy # 对应的特征
获取声音样本和NPY文件
-
下载预提取样本:
- 样本声音WAV和NPY文件可在此Google Drive文件夹中找到:声音样本和NPY文件
- 此文件夹包含按子文件夹组织的预提取NPY文件及其对应的WAV样本
-
提交您自己的声音样本:
- 如果您想使用自己的声音,可以将样本提交到此Google Drive文件夹:声音提交队列
- 您的样本应该是清晰的音频,背景噪音最小,时长在24秒以内
- 经过安全验证后,字节跳动团队将提取并提供您样本的NPY文件
-
使用声音制作器生成NPY文件:
- 使用声音制作器节点自动处理您的音频并生成NPY文件
- 虽然此方法方便,但质量可能不如官方提取的NPY文件
- 最适合使用您自己的声音样本进行快速测试和实验
声音制作器节点
此扩展包含一个声音制作器自定义节点,帮助您准备声音样本:
- 声音制作器节点功能:
- 将任何音频文件转换为所需的24kHz WAV格式
- 从WAV样本中提取NPY特征文件
- 处理和优化声音样本以获得更好的质量
- 自动将处理后的文件保存到Voices文件夹
如何使用声音制作器:
- 从🧪AILab/🔊Audio类别添加"Voice Maker"节点
- 连接音频输入或从您的计算机选择文件
- 配置处理选项(标准化、修剪等)
- 运行节点以生成带NPY文件的即用声音样本
关于WAV和NPY文件
- WAV文件:这些是您想要克隆的实际声音样本(推荐24kHz)
- NPY文件:这些包含声音克隆所必需的提取特征
声音格式要求
为获得最佳效果:
- 采样率:24kHz(如果不同会自动转换)
- 音频格式:推荐WAV,但也支持MP3、M4A和其他格式
- 时长:5-24秒的清晰语音
- 质量:干净的录音,背景噪音最小
参数调整
控制声音口音
该模型提供对口音和发音的出色控制:
-
保留说话者口音:
- 将发音强度(p_w)设置为较低值(1.0-1.5)
- 这对于想要保留口音的跨语言TTS很有用
-
标准发音:
- 将发音强度(p_w)设置为较高值(2.5-4.0)
- 这有助于产生更标准的发音,无论源口音如何
-
情感或表现力丰富的语音:
- 增加声音相似度(t_w)参数(2.0-5.0)
- 保持发音强度(p_w)在中等水平(1.5-2.5)
推荐参数组合
| 用例 | p_w (发音强度) | t_w (声音相似度) |
|---|---|---|
| 标准TTS | 2.0 | 3.0 |
| 保留口音 | 1.0-1.5 | 3.0-5.0 |
| 跨语言(标准) | 3.0-4.0 | 3.0-5.0 |
| 情感语音 | 1.5-2.5 | 3.0-5.0 |
| 噪音参考音频 | 3.0-5.0 | 3.0-5.0 |
节点
此扩展提供三个主要节点:
1. Mega TTS (高级)
具有完整参数控制的全功能TTS节点。
输入:
input_text- 要转换为语音的文本language- 语言选择(en:英语,zh:中文)generation_quality- 控制扩散步数(越高=质量越好但速度越慢)pronunciation_strength(p_w) - 控制发音准确度(值越高产生更标准的发音)voice_similarity(t_w) - 控制与参考声音的相似度(值越高产生更接近参考的语音)reference_voice- Voices文件夹中的参考声音文件
输出:
AUDIO- WAV格式的生成音频LATENT- 用于进一步处理的音频潜在表示
2. Mega TTS (简单)
带默认参数的简化TTS节点,便于快速使用。
输入:
input_text- 要转换为语音的文本language- 语言选择(en:英语,zh:中文)reference_voice- Voices文件夹中的参考声音文件
输出:
AUDIO- WAV格式的生成音频
3. Mega TTS (清理内存)
TTS处理后释放GPU内存的实用节点。
参数说明
| 参数 | 说明 | 推荐值 |
|---|---|---|
| generation_quality | 控制扩散步数。值越高,质量越好,但生成时间越长。 | 默认:10。范围:1-50。快速测试:1-5,最终输出:15-30。 |
| pronunciation_strength (p_w) | 控制输出如何紧密遵循标准发音。 | 默认:2.0。范围:1.0-5.0。保留口音:1.0-1.5,标准发音:2.5-4.0。 |
| voice_similarity (t_w) | 控制输出与参考声音的相似度。 | 默认:3.0。范围:1.0-5.0。更具表现力且保留声音特征的输出:3.0-5.0。 |
声音克隆
添加参考声音
- 将您的声音WAV文件放在
Voices文件夹中 - 每个声音需要两个文件:
voice_name.wav- 声音样本文件(推荐24kHz采样率,5-10秒清晰语音)voice_name.npy- 对应的声音特征文件(如果启用声音提取,将自动生成)
如何克隆声音
- 将您的样本WAV文件添加到
Voices文件夹 - 首次选择声音时,系统将提取特征文件并保存
- 在节点的"reference_voice"下拉菜单中选择您的声音
- 调整"voice_similarity"参数控制声音克隆的强度:
- 较低值(1.0-2.0):更自然但与参考声音相似度较低
- 较高值(3.0-5.0):与参考声音更相似但可能不太自然
高级用法
跨语言声音克隆
对于跨语言克隆声音(例如,让英语说话者说中文):
- 使用原始语言的干净声音样本
- 将语言设置为目标语言(例如,中文为"zh")
- 增加发音强度(p_w)参数(3.0-4.0)以获得更标准的发音
- 设置较高的声音相似度(t_w)参数(3.0-5.0)以保持声音特征
处理口音
- 保留口音:较低的发音强度(p_w)值(1.0-1.5)
- 标准发音:较高的发音强度(p_w)值(2.5-4.0)
致谢
- 原始MegaTTS3模型由字节跳动开发
- MegaTTS3 Hugging Face模型:ByteDance/MegaTTS3
许可证
GPL-3.0 许可证