注意!今のところ、macOS での学習は CPU 専用です。
高性能日本語 text-t-speech である Style-Bert-VITS2 ですが、作者様が公開されているバージョンで学習するには NVIDA GPU が必要です。悔しいのでなんとかならないものかとコードをいじっていたら、mac でも学習ができるようになりました。公開時点では、まだ CPU のほんの少しの力しか使えないので非常に遅く、6秒の音声の学習に M2 Max 12 コア CPU で 7分 20秒 5分 11秒かかる状態です。とは言えこれまで macOS では既存モデルを使った音声合成しかできなかったわけですから、個人的には大きな前進だと思っています (試してないですが、他の OS でも動くかもしれません。NVIDIA GPU を持っていない、Windows や Linux の方はお試しの上、結果を教えてください)。
というわけで、とりあえず公開します。
コードと詳細は GitHub へどうぞ
インストール方法と固有の使い方は GitHub でご確認ください。
GitHub: https://github.com/tokyohandsome/Style-Bert-VITS2-Mac/tree/master
PyTorch を知らぬ男がどうやったのか
基本は気合い、そして諦めない気持ち。計算するデバイスをcuda
からmps
にする程度でしょ、と思っていたら全然うまくいかず、まずはcpu
でとにかく動かそう、と方針転換。エラーが出ては PyTorch 2.3 の公式ドキュメントを読み、Deepseek Coder V2 の力も借りながら一つ一つ潰していく作業。時に自分のひらめきに助けられ、二晩後。無事にトレーニングが終わり、モデル一覧に追加された音声で聞いた「こんにちは、初めまして。あなたの名前はなんていうの?」の美しさたるや。プログレスバーが動き出してから完了するまでに数分待たされたのも、今思えば粋な演出でしたね。ま、ともあれ話を戻すと、コードで実行される処理自体は複雑では無く基本的に上から下へ、なので、一つ一つ CPU で処理するようにしていっただけ、ということになります。
これからどうするか
MPS で動かすのはまだいくつもハードルがありそうなので、CPU をバンバン使って高速化できないのかな、と考えています → 使用できるコア数の半分を使用するようにし、少し高速化しました (v1.0.1)。Whisper を macOS で動かすのは多分 MLX 版が良い (しかない?) と思うのでそこをどうにかしたり、複数の音声ファイルがあればesd.list
を自動生成するくらいはできそうですよね。スタイルまで手を出すかどうかはまだわかりません。とりあえずもっと学習を高速化して、モデルの品質を高める作業時間を減らしたいです。
おや?いつの間にか Whisper は pip で入れられる時代なんですね: mlx-whisper
Image by Stable Diffusion
Web UI にいる女子キャラや日本語が得意ということから、日本人の女の子をいくつか描かせたのですが全くイメージと違い、manga 調で競争している女子を描かせても顔が破綻していて多方面から怒られそうだったので、アプローチを全く変えました。深い森からやっと抜け出せた喜びと今の季節感を盛り込んだ、情緒的なトップ絵です。
Date:
2024年10月4日 23:12:07
Model:
realisticVision-v51VAE_original_768x512_cn
Size:
768 x 512
Include in Image:
photo realistic beautiful nature in the late summer. fresh air and sunshine
Exclude from Image:
Seed:
3212833797
Steps:
23
Guidance Scale:
20.0
Scheduler:
DPM-Solver++
ML Compute Unit:
CPU & GPU
Intel Mac (MacBook Pro2018)でも少し修正したら学習できて感動です!!
train_ms_jp_extra_cpu.py
-from torch.amp import GradScaler, autocast
+from torch.cuda.amp import GradScaler, autocast
それとあと
with autocast(‘cpu’, enabled=hps.train.bf16_run, dtype=torch.bfloat16):
を全部
with autocast(‘cpu’, dtype=torch.bfloat16):
に変更したら学習できました!
ありがとうございます!
おお、すごい!おめでとうございます!
Intel Mac ですか、がんばってますね!同士の皆様、有力情報いただきましたよ!