Closed5

「MegaTTS 3」を試す

kun432kun432

GitHubレポジトリ

https://github.com/bytedance/MegaTTS3

MegaTTS 3

公式 PyTorch 実装

主な特徴

  • 🚀軽量かつ高効率: TTS Diffusion Transformer のバックボーンはわずか 0.45 B パラメータです。
  • 🎧超高品質ボイスクローン: Huggingface Demo でモデルをお試しいただけます🎉。.wav.npy ファイルは link1 にあります。ローカルで使用できる.npy音声潜在表現を受け取るには、サンプル(.wav、24 秒未満、ファイル名に空白を含めない)を link2 にアップロードしてください。
  • 🌍バイリンガル対応: 中国語と英語、およびコードスイッチングをサポートします。
  • ✍️制御性: アクセント強度制御✅ と細粒度の発音/長さ調整(近日対応)をサポートします。

(訳注: デモ動画はGitHubを参照してください)


referred from https://github.com/bytedance/MegaTTS3

🎯ロードマップ

  • [2025-03-22] プロジェクトをリリースしました!

ライセンス

本プロジェクトは Apache-2.0 License の下で公開されています。

kun432kun432

Ubuntu-22.04(RTX4090)で試す。

インストールは

  • Python環境を作成してインストール
  • Docker

があるが、今回はPython環境を作成する

レポジトリクローン

git clone https://github.com/bytedance/MegaTTS3 && cd MegaTTS3

uvでPython仮想環境作成

uv venv -p 3.12.9

パッケージインストール

uv pip install -r requirements.txt

モデルを checkpointsディレクトリとしてダウンロード

git clone https://huggingface.co/ByteDance/MegaTTS3 checkpoints

では推論。PYTHONPATHの指定が必要。

中国語の場合。--input_wavがリファレンスとなる音声。

PYTHONPATH=. uv run tts/infer_cli.py \
    --input_wav 'assets/Chinese_prompt.wav' \
    --input_text "另一边的桌上,一位读书人嗤之以鼻道,'佛子三藏,神子燕小鱼是什么样的人物,李家的那个李子夜如何与他们相提并论?'" \
     --output_dir ./gen
出力
(snip)
| Saving results to ./gen/[P]另一边的桌上,一位读书人嗤之以鼻道,'佛.wav

--output_dirで指定したディレクトリに出力される

ls -lt gen/
出力
合計 464
-rw-rw-r-- 1 kun432 kun432 472364  5月 23 15:39 '[P]另一边的桌上,一位读书人嗤之以鼻道,'\''佛.wav'

めんどくさいファイル名になってるな・・・生成されたものは以下

https://audio.com/kun432/audio/megatts3-chinise-sample-1

以下のリファレンス音声と比較してみると良い。

https://github.com/bytedance/MegaTTS3/blob/main/assets/Chinese_prompt.wav

次に英語

PYTHONPATH=. uv run 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, particularly in the automotive sector, along with lawmakers who were sounding the alarm.' \
    --output_dir ./gen \
    --p_w 2.0 \
    --t_w 3.0

生成された音声

https://audio.com/kun432/audio/megatts3-english-sample-1

リファレンス音声
https://github.com/bytedance/MegaTTS3/blob/main/assets/English_prompt.wav

リファレンス冒頭のBGM的なものもクローンされているのがちょっとおもしろい。

推論中のVRAM消費は10GBぐらい。

出力
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.35.05              Driver Version: 560.35.05      CUDA Version: 12.6     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4090        Off |   00000000:01:00.0 Off |                  Off |
|  0%   49C    P0            155W /  450W |   10303MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
kun432kun432

で例えば自分の音声でクローンしたい、となった場合だけど、

IMPORTANT

セキュリティ上の理由により WaveVAE エンコーダのパラメータは公開していません。リンク1 にある事前抽出済み潜在表現のみで推論できます。話者 A の音声を生成するには、同一ディレクトリに A.wavA.npy を置いてください。質問や提案はメールでご連絡ください。
本プロジェクトは主に学術目的です。評価用の学術データセットは リンク2 の音声リクエストキューへアップロードしてください(各クリップ 24 秒以内)。安全性確認後、潜在ファイルをできるだけ早く リンク1 にアップロードします。
近日中に一般的な TTS ベンチマークの潜在表現も公開予定です。

リファレンスとして必要になるのは、音声を収録したWAVファイルと、そのWAVファイルをWaveVAEでエンコードしたnumpyファイルみたいなのだけど、このnumpyファイルを作成するためのパラメータが公開されていないので、自分で作成することができない。評価目的であれば上記のリンク(Googleドライブ)におけばどうやらエンコードしてくれる、という形になっているみたい。

まあ言わんとしていることはわからないではないよね。

kun432kun432

まとめ

軽く試しただけだけど、クローンの再現度は非常に高いのではないだろうか。ただ、それを自分で試す事ができないのは残念。

このスクラップは3ヶ月前にクローズされました