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. 安全審核:上傳的語音文件需通過安全審核