综合介绍
MegaTTS3 是字节跳动与浙江大学合作开发的一款开源语音合成工具,专注于生成高质量的中英文语音。它的核心模型只有 0.45B 参数,轻量高效,支持中英文混合语音生成和语音克隆。项目托管在 GitHub 上,提供代码和预训练模型供免费下载。MegaTTS3 能通过几秒钟的音频样本模仿目标声音,还支持调整口音强度。它适用于学术研究、内容创作和开发语音应用,未来会新增发音和时长控制功能。
功能列表
- 生成中英文及混合语音,输出自然且流畅。
- 通过少量音频实现高质量语音克隆,模仿特定音色。
- 支持口音强度调整,可生成带口音或标准发音的语音。
- 使用 acoustic latents 技术,提升模型训练效率。
- 内置高品质 WaveVAE 声码器,增强语音清晰度和真实感。
- 提供对齐器(Aligner)和字音转换(Graphme-to-Phoneme)子模块,支持语音分析。
- 开源代码和预训练模型,方便用户自定义开发。
使用帮助
MegaTTS3 需要一定的编程基础,尤其是 Python 和深度学习环境的操作经验。以下是详细的安装和使用指南。
安装流程
- 搭建环境
MegaTTS3 推荐使用Python 3.9
。可以用Conda
创建虚拟环境:conda create -n megatts3-env python=3.9 conda activate megatts3-env
激活后,所有操作都在此环境进行。
- 下载代码
在终端运行以下命令,克隆GitHub
仓库:git clone https://github.com/bytedance/MegaTTS3.git cd MegaTTS3
- 安装依赖
项目提供requirements.txt
,运行以下命令安装所需库:pip install -r requirements.txt
安装时间因网络和设备而异,通常几分钟完成。
- 获取模型
预训练模型可在 Google Drive 或 Hugging Face 下载(链接见官方README
)。下载后解压到./checkpoints/
文件夹。例如:- 将
model.pth
放入./checkpoints/model.pth
。 - 预提取的
latents
文件需从指定链接下载,放入同一目录。
- 将
- 测试安装
运行简单测试命令验证环境:python tts/infer_cli.py --input_wav 'assets/Chinese_prompt.wav' --input_text "测试" --output_dir ./gen
若无报错,安装成功。
主要功能操作
语音合成
生成语音是 MegaTTS3 的核心功能。需要输入文本和参考音频:
- 准备文件
在assets/
文件夹放入参考音频(如Chinese_prompt.wav
)和latents
文件(如Chinese_prompt.npy
)。若无latents
,需用官方预提取文件。 - 运行命令
输入:CUDA_VISIBLE_DEVICES=0 python tts/infer_cli.py --input_wav 'assets/Chinese_prompt.wav' --input_text "你好,这是一段测试语音" --output_dir ./gen
--input_wav
是参考音频路径。--input_text
是要合成的文本。--output_dir
是输出文件夹。
- 查看结果
生成的语音保存在./gen/output.wav
,可直接播放。
语音克隆
模仿特定声音只需几秒音频样本:
- 准备清晰的参考音频(建议 5-10 秒)。
- 使用上述合成命令,指定
--input_wav
。 - 输出语音会尽量接近参考音色。
口音控制
调整口音强度通过参数 p_w
和 t_w
:
- 输入带口音的英文音频:
CUDA_VISIBLE_DEVICES=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
接近1.0
时保留原口音,增大则趋向标准发音。t_w
控制音色相似度,通常比p_w
高0-3
。- 生成标准发音:
CUDA_VISIBLE_DEVICES=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 UI 操作
支持通过网页界面操作:
- 运行:
CUDA_VISIBLE_DEVICES=0 python tts/gradio_api.py
- 打开浏览器,输入地址(默认
localhost:7860
),上传音频和文本即可生成语音。CPU
环境下约需 30 秒。
子模块使用
Aligner(对齐器)
- 功能:将语音和文本对齐。
- 用法:运行
tts/frontend_function.py
中的示例代码,用于语音分割或音素识别。
Graphme-to-Phoneme
- 功能:将文字转为音素。
- 用法:参考
tts/infer_cli.py
,可用于发音分析。
WaveVAE
- 功能:压缩音频为
latents
并重建。 - 限制:编码器参数未公开,仅能用预提取
latents
。
注意事项
- WaveVAE 编码器参数因安全原因未提供,只能用官方
latents
文件。 - 项目于 2025 年 3 月 22 日发布,仍在开发中,计划新增发音和时长调整。
GPU
加速推荐,CPU
可运行但较慢。
应用场景
- 学术研究
研究人员可以用 MegaTTS3 测试语音合成技术,分析latents
的效果。 - 教育辅助
将教材转为语音,生成有声读物,提升学习体验。 - 内容制作
为视频或播客生成旁白,节省人工录音成本。 - 语音交互
开发者可集成到设备中,实现中英文语音对话。
QA
- 支持哪些语言?
支持中文、英文及混合语音,未来可能扩展其他语言。 - 必须用
GPU
吗?
不必须,CPU
可运行,但速度较慢,建议用GPU
。 - 如何处理安装失败?
更新pip
(pip install --upgrade pip
),检查网络,或在GitHub
提交 issue。 - 为什么缺少 WaveVAE 编码器?
出于安全考虑未公开,需用官方预提取latents
。