Home
Login

MegaTTS3:基于字节跳动开发的高质量零样本语音合成模型,支持中英双语声音克隆

Apache-2.0Python 5.5kbytedance Last Updated: 2025-05-11

MegaTTS3 项目详细介绍

项目概述

MegaTTS3是由字节跳动(ByteDance)开发的高质量零样本语音合成系统,基于稀疏对齐增强的潜在扩散变换器(Sparse Alignment Enhanced Latent Diffusion Transformer)技术。该项目主要用于学术研究目的,提供了强大的文本转语音(TTS)和声音克隆功能。

核心特性

🚀 轻量化高效

  • 参数规模:TTS扩散变换器的主干网络仅有0.45B参数
  • 高效推理:优化的架构设计,实现快速语音生成

🎧 超高质量声音克隆

  • 零样本合成:无需训练即可克隆新的说话人声音
  • 高保真度:生成的语音质量接近原始录音
  • 在线体验:可在Huggingface Demo上体验

🌍 双语支持

  • 多语言:同时支持中文和英文语音合成
  • 代码切换:支持中英文混合语音生成
  • 跨语言:英文声音可以合成中文语音(带口音控制)

✍️ 可控性强

  • 口音强度控制:可调节生成语音的口音程度
  • 发音精细调节:支持细粒度的发音和时长调整(即将推出)
  • 智能度权重:通过p_w参数控制语音清晰度
  • 相似度权重:通过t_w参数控制与原声音的相似度

技术架构

主要组件

  1. TTS主模型
  • 基于稀疏对齐增强的潜在扩散变换器
  • 支持零样本语音合成
  • 高质量声音克隆能力
  1. 语音-文本对齐器(Speech-Text Aligner)
  • 使用大量MFA专家模型生成的伪标签训练
  • 用途:数据集准备、噪声过滤、音素识别、语音分割
  1. 字素到音素转换器(G2P)
  • 基于Qwen2.5-0.5B模型微调
  • 提供鲁棒的字素到音素转换
  1. WaveVAE
  • 强大的波形变分自编码器
  • 将24kHz语音压缩为25Hz声学潜在表示
  • 几乎无损重建原始波形

安装与使用

系统要求

  • Python 3.10
  • Linux/Windows/Docker支持
  • 可选GPU加速(推荐)

快速开始

  1. 克隆仓库
git clone https://github.com/bytedance/MegaTTS3
cd MegaTTS3
  1. 环境配置
conda create -n megatts3-env python=3.10
conda activate megatts3-env
pip install -r requirements.txt
export PYTHONPATH="/path/to/MegaTTS3:$PYTHONPATH"
  1. 模型下载

使用方法

命令行推理(标准)

# 中文语音合成
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潜在文件进行推理
  • 学术用途:项目主要面向学术研究

使用流程

  1. 准备音频文件(.wav格式,<24秒,文件名不含空格)
  2. 上传到语音请求队列
  3. 通过安全验证后,获得对应的.npy潜在文件
  4. 使用.wav和.npy文件进行推理

许可证与引用

  • 许可证:Apache-2.0 License
  • 发布时间:2025年3月22日
  • 维护者:字节跳动公司

应用场景

主要用途

  1. 语音合成研究:为研究人员提供高质量的TTS基线
  2. 声音克隆:实现个性化语音助手
  3. 多语言应用:支持中英双语内容创作
  4. 口音研究:研究和控制语音中的口音特征

扩展应用

  • 数据集准备:使用对齐器为模型训练准备数据
  • 语音质量过滤:筛选大规模语音数据集
  • 音素识别:进行语音的音素级分析
  • 语音转换:实现不同说话人之间的声音转换

注意事项

  1. 模型下载:需要手动下载预训练模型文件
  2. 依赖管理:注意pydantic和gradio版本匹配
  3. 环境变量:正确设置PYTHONPATH和CUDA_VISIBLE_DEVICES
  4. 文件格式:输入音频必须为.wav格式,时长小于24秒
  5. 安全审核:上传的语音文件需通过安全审核