MegaTTS3 项目详细介绍
项目概述
MegaTTS3是由字节跳动(ByteDance)开发的高质量零样本语音合成系统,基于稀疏对齐增强的潜在扩散变换器(Sparse Alignment Enhanced Latent Diffusion Transformer)技术。该项目主要用于学术研究目的,提供了强大的文本转语音(TTS)和声音克隆功能。
核心特性
🚀 轻量化高效
- 参数规模:TTS扩散变换器的主干网络仅有0.45B参数
- 高效推理:优化的架构设计,实现快速语音生成
🎧 超高质量声音克隆
- 零样本合成:无需训练即可克隆新的说话人声音
- 高保真度:生成的语音质量接近原始录音
- 在线体验:可在Huggingface Demo上体验
🌍 双语支持
- 多语言:同时支持中文和英文语音合成
- 代码切换:支持中英文混合语音生成
- 跨语言:英文声音可以合成中文语音(带口音控制)
✍️ 可控性强
- 口音强度控制:可调节生成语音的口音程度
- 发音精细调节:支持细粒度的发音和时长调整(即将推出)
- 智能度权重:通过p_w参数控制语音清晰度
- 相似度权重:通过t_w参数控制与原声音的相似度
技术架构
主要组件
- TTS主模型
- 基于稀疏对齐增强的潜在扩散变换器
- 支持零样本语音合成
- 高质量声音克隆能力
- 语音-文本对齐器(Speech-Text Aligner)
- 使用大量MFA专家模型生成的伪标签训练
- 用途:数据集准备、噪声过滤、音素识别、语音分割
- 字素到音素转换器(G2P)
- 基于Qwen2.5-0.5B模型微调
- 提供鲁棒的字素到音素转换
- WaveVAE
- 强大的波形变分自编码器
- 将24kHz语音压缩为25Hz声学潜在表示
- 几乎无损重建原始波形
安装与使用
系统要求
- Python 3.10
- Linux/Windows/Docker支持
- 可选GPU加速(推荐)
快速开始
- 克隆仓库
git clone https://github.com/bytedance/MegaTTS3
cd MegaTTS3
- 环境配置
conda create -n megatts3-env python=3.10
conda activate megatts3-env
pip install -r requirements.txt
export PYTHONPATH="/path/to/MegaTTS3:$PYTHONPATH"
- 模型下载
- 从Google Drive或Huggingface下载预训练模型
- 将模型文件放置到
./checkpoints/xxx目录
使用方法
命令行推理(标准)
# 中文语音合成
python tts/infer_cli.py --input_wav 'assets/Chinese_prompt.wav' --input_text "另一边的桌上,一位读书人嗤之以鼻道,'佛子三藏,神子燕小鱼是什么样的人物,李家的那个李子夜如何与他们相提并论?'" --output_dir ./gen
# 英文语音合成(高表现力)
python tts/infer_cli.py --input_wav 'assets/English_prompt.wav' --input_text 'As his long promised tariff threat turned into reality this week, top human advisers began fielding a wave of calls from business leaders.' --output_dir ./gen --p_w 2.0 --t_w 3.0
口音控制合成
# 保持原始口音(p_w ≈ 1.0)
python tts/infer_cli.py --input_wav 'assets/English_prompt.wav' --input_text '这是一条有口音的音频。' --output_dir ./gen --p_w 1.0 --t_w 3.0
# 标准发音(p_w > 2.0)
python tts/infer_cli.py --input_wav 'assets/English_prompt.wav' --input_text '这条音频的发音标准一些了吗?' --output_dir ./gen --p_w 2.5 --t_w 2.5
Web界面
python tts/gradio_api.py
参数说明
核心参数
- p_w(智能度权重):控制语音清晰度,噪声较多的提示音频需要更高的p_w值
- t_w(相似度权重):控制与原声音的相似度,通常比p_w高0-3个点
- 推理步数:默认10步,CPU推理约需30秒
口音控制
- p_w ≈ 1.0:保持说话人原始口音
- p_w增加:向标准发音靠拢
- t_w范围:通常在2.0-5.0之间,合理增加可提高表现力
安全与限制
安全考虑
- WaveVAE编码器:出于安全考虑,未公开编码器参数
- 预提取潜在表示:只能使用预提取的.npy潜在文件进行推理
- 学术用途:项目主要面向学术研究
使用流程
- 准备音频文件(.wav格式,<24秒,文件名不含空格)
- 上传到语音请求队列
- 通过安全验证后,获得对应的.npy潜在文件
- 使用.wav和.npy文件进行推理
许可证与引用
- 许可证:Apache-2.0 License
- 发布时间:2025年3月22日
- 维护者:字节跳动公司
应用场景
主要用途
- 语音合成研究:为研究人员提供高质量的TTS基线
- 声音克隆:实现个性化语音助手
- 多语言应用:支持中英双语内容创作
- 口音研究:研究和控制语音中的口音特征
扩展应用
- 数据集准备:使用对齐器为模型训练准备数据
- 语音质量过滤:筛选大规模语音数据集
- 音素识别:进行语音的音素级分析
- 语音转换:实现不同说话人之间的声音转换
注意事项
- 模型下载:需要手动下载预训练模型文件
- 依赖管理:注意pydantic和gradio版本匹配
- 环境变量:正确设置PYTHONPATH和CUDA_VISIBLE_DEVICES
- 文件格式:输入音频必须为.wav格式,时长小于24秒
- 安全审核:上传的语音文件需通过安全审核