「MegaTTS 3」を試す
GitHubレポジトリ
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 の下で公開されています。
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'
めんどくさいファイル名になってるな・・・生成されたものは以下
以下のリファレンス音声と比較してみると良い。
次に英語
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
生成された音声
リファレンス音声
リファレンス冒頭の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 |
+-----------------------------------------+------------------------+----------------------+
で例えば自分の音声でクローンしたい、となった場合だけど、
IMPORTANT
セキュリティ上の理由により WaveVAE エンコーダのパラメータは公開していません。リンク1 にある事前抽出済み潜在表現のみで推論できます。話者 A の音声を生成するには、同一ディレクトリに
A.wav
とA.npy
を置いてください。質問や提案はメールでご連絡ください。
本プロジェクトは主に学術目的です。評価用の学術データセットは リンク2 の音声リクエストキューへアップロードしてください(各クリップ 24 秒以内)。安全性確認後、潜在ファイルをできるだけ早く リンク1 にアップロードします。
近日中に一般的な TTS ベンチマークの潜在表現も公開予定です。
リファレンスとして必要になるのは、音声を収録したWAVファイルと、そのWAVファイルをWaveVAEでエンコードしたnumpyファイルみたいなのだけど、このnumpyファイルを作成するためのパラメータが公開されていないので、自分で作成することができない。評価目的であれば上記のリンク(Googleドライブ)におけばどうやらエンコードしてくれる、という形になっているみたい。
まあ言わんとしていることはわからないではないよね。
まとめ
軽く試しただけだけど、クローンの再現度は非常に高いのではないだろうか。ただ、それを自分で試す事ができないのは残念。
WavVAEエンコーダをどうやら作って、音声クローンできるようにした人がいるみたい。