従来のso-vits-svcと比較して、 約50倍速で同等の品質の学習モデル作成ができるRVC!!
WindowsにRVC WebUI(ddPn08/rvc-webui)を導入し、好きな声のモデルを学習により作成し、音声変換するまでの一連の流れを画像付きで丁寧に解説します。
なお、中国の本家版でなくだだっこぱんだ氏が再構築された方のRVC WebUIを紹介しています。
(本家:yantaisa11/Retrieval-based-Voice-Conversion-WebUI)
追記:768次元の学習などの機能追加に伴い、本ページの解説もアップデートしました。
1. WebUIをインストール
前提条件
以下のものをインストールし、パスの通った状態にしてあることが前提です。
- Python (Python 3.10.7で私が動作確認済)
- Git
- Microsoft C++ Build Tools
WebUIをダウンロード
RVC用のフォルダを適当に作成してください。
なおフォルダパスに英数字以外が含まれるとエラーになります。
万全を期すならCドライブ直下などがおすすめです。
そして、そのフォルダ内で右クリック→ターミナルで開くを選択。
その後、以下のコマンドをコピペしてエンター。
git clone https://github.com/ddPn08/rvc-webui
WebUIリポジトリをダウンロードします。
お手軽環境構築
最早手動でvenv作成して色々インストールしなくて良くなりました!
batファイルを起動するだけで全てインストールされます。
webui-user.bat
を起動してください。
しばらく待てばインストールが終わっています。
Creating venv in directory C:\Users\loveanime\Desktop\RVC\rvc-webui\venv using python "C:\Users\loveanime\AppData\Local\Programs\Python\Python310\python.exe" venv "C:\Users\loveanime\Desktop\RVC\rvc-webui\venv\Scripts\Python.exe" Python 3.10.7 (tags/v3.10.7:6cc6b13, Sep 5 2022, 14:08:36) [MSC v.1933 64 bit (AMD64)] Commit hash: 353489204603e7b927d6829caf359b27f724c1b0 Installing torch and torchvision Installing requirements 2023-04-15 11:08:13 | INFO | faiss.loader | Loading faiss with AVX2 support. 2023-04-15 11:08:13 | INFO | faiss.loader | Could not load library with AVX2 support due to: ModuleNotFoundError("No module named 'faiss.swigfaiss_avx2'") 2023-04-15 11:08:13 | INFO | faiss.loader | Loading faiss. 2023-04-15 11:08:13 | INFO | faiss.loader | Successfully loaded faiss. Running on local URL: http://localhost:7860 To create a public link, set `share=True` in `launch()`.
URLが表示されたら完了です。
早速ブラウザでhttp://localhost:7860にアクセスしましょう。
2. 音声モデルを作成(トレーニングを行う)
1,学習設定
Trainingタブを開きます。
どんな設定で学習するか
Model Nameは何でもOK.
分かりやすさ重視で好きな名前にしましょう。
今回は「test」でいきます。
各種設定もデフォルトでいきます。
- Ignore cache(キャッシュを無視する):チェックなし
- Dataset glob:データセットのパス(後述)
- Speaker ID:0
- Target sampling rate(サンプリングレート):40k
- 多分48kのほうが奇麗そう(適当)
- f0 Model:Yes(Noだと音程が変になるっぽい)
- Using phone embedder:hubert_baseがデフォ。contentvecの方が高品質らしい
- Embedding channels:768(256次元より高品質)
- Model has pitch guidance(モデルにピッチガイドがついているか):Yes
学習元の音声フォルダ指定 Dataset glob
今回は「つくよみちゃんコーパス」を使用させていただきます。
「声質の学習」には、フリー素材キャラクター「つくよみちゃん」が無料公開している音声データを使用しています。
■つくよみちゃんコーパス(CV.夢前黎)
https://tyc.rei-yumesaki.net/material/corpus/#terms2
https://tyc.rei-yumesaki.net/material/corpus/
今回は「01 WAV(収録時の音量のまま)」フォルダ内の音声(5〜10秒x100件)を全て長さそのままで使用します。
なお、フォルダ名だけアルファベットに書き換えましたが、多分日本語でも問題ありません。
当方でフォーマットやノイズ除去その他変換など前処理は一切していません。
フォルダパスを入力します。
先程のModel Nameと別名でOK.
使用ハードウェア指定など
- GPU ID:0(グラボが複数なければ0にしておく)
- Number of CPU processes:10(各自のCPUスレッド数にする)
- Normalize audio volume when preprocess:Yes
- 学習元音声の前処理時に音量を正規化するか?
- Pitch extraction algorithm:harverst(デフォ)
バッチサイズとエポック数指定など
- Batch size:16(VRAMサイズと相談)
- 追記:VRAM24GB時にbatch size 50で学習成功しました
- 大きいほど正則化できる(過学習防止)
- Number of epochs:100(とりあえずデフォ)
- 2,30程度で良い説濃厚
- 多ければ良いというものではない。過剰だと不自然な機械っぽさが出やすい
- Save every epoch:10(デフォ値。何エポックごと保存するか)
- Cache batch:多分チェックで高速化。batch sizeの上限値が減る
- FP16:多分チェックで軽量&高速化。精度に伴い品質は低下する
その他設定
- Pre-trained bottom model G path
- Pre-trained bottom model D path
- Status:進捗表示
これらは通常触らなくて良いです。デフォルト設定のままにしておきます。
そして最下部の「Train」ボタンで学習開始!!
2,学習中のハードウェア負荷
とりあえず、学習元音声が数秒x100ファイル、Batch sizeが16だと、VRAM消費量は9.7GBでした。
VRAM24GB勢なら、Batch size:30くらいまでいけそうです。
追記:batch size 50で学習成功!!その際VRAM23.7GB消費しました。
batch sizeとVRAM消費量は単に比例するわけでは無さそうです。
所要時間は、100エポックで2分14秒でした。
300it [02:14, 2.91it/s, epoch=100]Training is done. The program is closed.
メモ:エラーになったら、どうする?
学習元音声の形式を変えてみる
当方はwav形式で動作確認を行いました。
mp3などの場合、とりあえずwav形式に変換してみて下さい。
※以下の変換にはffmpegのインストールが必要です。
- エクスプローラーで変換したいmp3ファイルがあるフォルダを開く
- Shiftキーを押しながら右クリックして、「PowerShellウィンドウをここで開く」を選択
- 開いたPowerShellウィンドウで、以下のコマンドを入力し、Enter.
for %i in (*.mp3) do ffmpeg -i "%i" "%~ni.wav"
これで、フォルダ内のすべてのmp3ファイルがwav形式に変換されます。
変換後ファイルは、元のmp3ファイルと同じフォルダに保存されているので、正常に変換できたことを確認してから、拡張子順に並べ替えてmp3の方は削除してください。
※パワーシェルでは失敗するという場合は、コマンドプロンプトでやってみてください
エクスプローラーのアドレスバーに「cmd
」と入力しエンターを押すと開けます
……動作確認済バージョンに戻そう
ダウングレード方法はこちらを参考にして下さい。
ざっくり言うと、さっきgit cloneのコマンド実行したように、フォルダ内でターミナルを開き、以下のコマンドを実行します。
git checkout 6d2751704b6cb3a6df7242895b68a193c7d4dbfa
なお、このバージョン(commit 6d2751704b6cb3a6df7242895b68a193c7d4dbfa)は当方動作確認済です。
追記:「9a3163a659f908a7b524575c84b29b222c47ccb3」も動作確認しました。このバージョンは768次元トレーニング対応済です。
最新版に戻す時はgit switch main
です。
最新版に戻した後に起動すると以下のようなエラーが出るかもしれません。
FileExistsError: [WinError 183] 既に存在するファイルを作成することはできません。: 'C:\\rvc-webui\\models\\pretrained\\f0G32k.pth' -> 'C:\\rvc-webui\\models\\pretrained\\f0G32k256.pth'
このようなエラーが出た場合、rvc-webui\\models
の、「pretrained」と「embeddings」フォルダの中身を全て削除してweb-user.batを再度実行してください。
あるいは、別のRVC WebUIを使用してみる
導入が最も容易なRVC-betaのインストール方法はこちらをご覧ください。
私の観測圏内では、こちらの方が「指定されたパスが見つかりません。」のエラーが出にくい印象です。
3, 完成したモデル保存場所
rvc-webui\models\training\models\checkpoints\
に保存されています。
Model Nameごとにpthファイル作られるので今回はtest.pthでした。
3. 学習済モデルを使用して音声合成・変換する
Interfaceタブを開きます。
まずリサイクルマークを押してモデルの再読み込みを行い、モデルを指定します。
そして、Source Audioに変換元音声ファイルをフルパスで指定して入力します。
Transposeは音程の調整です。女性では12がおすすめと言われますが、5〜7くらいが自然っぽい?!
Pitch Extraction Algorithmは学習時のものを指定します。つまり「Harvest」。
なお、ピッチ抽出のアルゴリズムは、歌声の場合は「pm」を使って高速化し、低音の場合は「harvest」を使うと良いそうです。
ただし、音声変換の質を向上させたい場合には、結局「harvest」が最適とのことで、こちらを選択。
Embedder Modelはautoか、モデル学習時のものを選択しましょう。
Auto Load IndexでFaiss Index FileとBig NPY Fileを自動読み込みしてくれます。
「Infer」ボタンで音声変換を開始します。
4. 音声変換実演例
変換前(声:音読さん):
変換後:
ちなみに学習元音声はこの動画の冒頭みたいなものなので、かなり再現出来ていますね!!
上記動画冒頭の「フリー素材キャラクターのつくよみちゃんと申します。」を言わせてみました。
かなり似てますね。
変換前の抑揚がアレなだけで声質自体は素晴らしい出来です☆
これが学習2分半に満たない時間でできる革命的です!!!!
かつてSO-VITS-SVCでこれを実現するには面倒な環境構築や音声事前処理が必要な上、学習には100分もかかったのに…
RVCはやばい。
ちなみに変換には3秒のファイルに2,3秒かかったので、およそ等倍~1.5倍速程度の処理ができそうです。
5. RVC WebUIのアップデート方法
アップデートを行うには、update.bat
を実行するだけです。
自動でアプデコマンドが実行されるので、「続行するには何かキーを押してください . . .
」が表示されたら閉じてください。
これだけでアプデ終了!!
まとめ RVC:超高速かつ高性能音声モデルを自宅で作成する
- Python,Git,Microsoft C++ Build Toolsをインストールしておく
- WebUIをgit clone
- batファイルでお任せセットアップ
- WebUIを起動
- Trainingタブで音声モデル作成
- モデル名など指定
- 学習元音声ファイルの入ったフォルダを指定
- バッチサイズはVRAM24GBなら50までいけた
- 「Train」で開始、2分ちょいで終わった
- Interfaceタブで音声変換!!
SO-VITS-SVCで100分かけて作った音声合成モデルと比べ、まるで遜色ないものが2分ちょいでできる!!50倍速!!!
なんて加速度的な進歩!
ワクワクが止まりませんね!!
学習に用いる音声を抽出したり、楽曲からボーカル除去しRVCで合成したものに差し替えたりする際は、ボーカル抽出&除去ができるUVR GUIがおすすめです。
ここで作成した音声モデルはリアルタイムボイスチェンジャー「VC Client」で使用可能です。
他にも色々と面白いAI関連の記事を書いています。合わせてご覧ください。
規制も倫理も無いFreedomGPTをグラボ不使用でWindowsにて動かす方法
実践的な使い方として、推しの子OP曲「アイドル」を物語シリーズのキャラ3人に歌ってもらいました。
(阿良々木月火,千石撫子,戦場ヶ原ひたぎ)
こちらで再生できます。