AI个人学习
和实操指南
讯飞绘镜

MegaTTS3:合成中英文语音的轻量模型

综合介绍

MegaTTS3 是字节跳动与浙江大学合作开发的一款开源语音合成工具,专注于生成高质量的中英文语音。它的核心模型只有 0.45B 参数,轻量高效,支持中英文混合语音生成和语音克隆。项目托管在 GitHub 上,提供代码和预训练模型供免费下载。MegaTTS3 能通过几秒钟的音频样本模仿目标声音,还支持调整口音强度。它适用于学术研究、内容创作和开发语音应用,未来会新增发音和时长控制功能。

MegaTTS3:合成中英文语音的轻量模型-1


 

功能列表

  • 生成中英文及混合语音,输出自然且流畅。
  • 通过少量音频实现高质量语音克隆,模仿特定音色。
  • 支持口音强度调整,可生成带口音或标准发音的语音。
  • 使用 acoustic latents 技术,提升模型训练效率。
  • 内置高品质 WaveVAE 声码器,增强语音清晰度和真实感。
  • 提供对齐器(Aligner)和字音转换(Graphme-to-Phoneme)子模块,支持语音分析。
  • 开源代码和预训练模型,方便用户自定义开发。

 

使用帮助

MegaTTS3 需要一定的编程基础,尤其是 Python 和深度学习环境的操作经验。以下是详细的安装和使用指南。

安装流程

  1. 搭建环境
    MegaTTS3 推荐使用 Python 3.9。可以用 Conda 创建虚拟环境:

    conda create -n megatts3-env python=3.9
    conda activate megatts3-env
    

    激活后,所有操作都在此环境进行。

  2. 下载代码
    在终端运行以下命令,克隆 GitHub 仓库:

    git clone https://github.com/bytedance/MegaTTS3.git
    cd MegaTTS3
    
  3. 安装依赖
    项目提供 requirements.txt,运行以下命令安装所需库:

    pip install -r requirements.txt
    

    安装时间因网络和设备而异,通常几分钟完成。

  4. 获取模型
    预训练模型可在 Google Drive 或 Hugging Face 下载(链接见官方 README)。下载后解压到 ./checkpoints/ 文件夹。例如:

    • 将 model.pth 放入 ./checkpoints/model.pth
    • 预提取的 latents 文件需从指定链接下载,放入同一目录。
  5. 测试安装
    运行简单测试命令验证环境:

    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 可运行但较慢。

 

 

应用场景

  1. 学术研究
    研究人员可以用 MegaTTS3 测试语音合成技术,分析 latents 的效果。
  2. 教育辅助
    将教材转为语音,生成有声读物,提升学习体验。
  3. 内容制作
    为视频或播客生成旁白,节省人工录音成本。
  4. 语音交互
    开发者可集成到设备中,实现中英文语音对话。

 

QA

  1. 支持哪些语言?
    支持中文、英文及混合语音,未来可能扩展其他语言。
  2. 必须用 GPU 吗?
    不必须,CPU 可运行,但速度较慢,建议用 GPU
  3. 如何处理安装失败?
    更新 pippip install --upgrade pip),检查网络,或在 GitHub 提交 issue。
  4. 为什么缺少 WaveVAE 编码器?
    出于安全考虑未公开,需用官方预提取 latents
未经允许不得转载:首席AI分享圈 » MegaTTS3:合成中英文语音的轻量模型
zh_CN简体中文