「RVC」+「VC Client」で自分の声を任意の声にリアルタイム変換しよう!

【導入】

・この記事の最終目標は「リアルタイム変換でずんだもんボイスになってDiscordで通話する」です。

 

・大まかな記事の流れは「RVCで学習モデルを作る」→「学習モデルをVC Clientに入れる」→「リアルタイムボイチェン完成!」です。

 

・「RVC」という超凄い非リアルタイム音声変換ソフトが話題になったと思ったら、翌日に「VC Client」という超凄いソフトがリアルタイム音声変換に対応したのを聞いたので、急いで記事を書きました。

 

・この記事ではずんだもんボイスになることを目標としていますが、学習先の音声さえあればどんな音声にもなれます。

 

 

 

【手順】

 

 

①~RVCのダウンロード~

 

・以下のURLを開いて、「RVC-beta.7z」をDLします。(要Hugging Faceアカウント)(Hugging Faceアカウントを持ってない人は無料なので作りましょう)

https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/RVC-beta.7z

 

DLした「RVC-beta.7z」を解凍して、「RVC-beta」フォルダ直下の「go-web.bat」を開きます。

しばらくすると機械学習のブラウザタブが立ち上がります。

 

 

②~RVCでの作業~

 

・まず、「训练」タブを開きます。

 

step1の、左上の「实验名」(モデルの出力ファイル名)を任意の名前にします。

チュートリアル:ここでは「ZundaModel」という名前にしてみる

 

step2aの、「训练文件夹路径」に「学習したい音声データがある場所のパス名」を入力します。(例:C:\ZundamonVoice など)

→ずんだもんボイスになりたい場合は、ずんだもんのボイスを100個用意しましょう。

 

チュートリアル:ずんだもんのボイスを100個用意する場合、機械学習で使える音声データセットを無料でDLできる「研究者向けマルチモーダルデータベース」がオススメです。

下記サイトにtwitterでログインしてから「ITAコーパスマルチモーダルデータベース→ずんだもんボイスデータ」ボタンを押すと、ずんだもんの音声をDLできます。感謝の極み…

https://zunko.jp/multimodal_dev/login.php

→ダウンロードしたら、「zundamon_voice_data\emotion\normal」に通常のずんだもんのボイスデータが大量に入っています。この工程ではそのフォルダの場所のパスを指定すると良いでしょう。

 

step2bの、真ん中の「提取音高使用的CPU程数」を見る。

この数値を自分のCPUスレッド数と同じになるように設定する。

(自分のCPUスレッド数は、Ctrl+Shift+Escキーを押してタスクマネージャーを開く→パフォーマンスの欄を開く→論理プロセッサ数:〇〇で確認することができます)

(もしイマイチ分からなければ12に変更しましょう)

 

step3の数値を調整する。

保存 save_every_epoch→学習データの途中経過を保存する間隔。5のままでいい。お好みで変えていい。

总训练轮 total_epoch→総学習量。初めての学習なら10で良い。個人的には30ぐらいにするとガッツリ学習できて使える音質になると思う。

batch_size→4でいい。大きいと学習が早くなるけど、大きすぎるとメモリが足りなくなって止まる。

(数字が見えないときは、サイトの拡大率を下げると治ることがあります)

 

・最後に、右下にある大きなオレンジのボタン「一鍵训练」を押す。これでモデルの学習が開始される。

→途中で「Pythonにこれらのネットワーク上での通信を許可する」ポップアップが出てくることがあるけど、別にキャンセルボタンを押してもいい。キャンセルしてもちゃんと学習されます。

 

・学習モデルは「RVC-beta\weights」フォルダ直下に出力される。

このときの学習モデルのファイルの場所を覚えておいてください。後ほど使います。

チュートリアル:「ZundaModel.pth」というファイルが出力されている。

 

 

③~VC Clientをダウンロードしよう~

 

RVC対応のVC Clientをダウンロードします。以下のURLを開いてください。

https://github.com/w-okada/voice-changer

スクロール(またはCtrl+Fで検索)して、以下のダウンロードリンクをクリックしてください。



今回使うのはサポートVCの欄に「RVC」が含まれているバージョンです。

 

link「通常」ボタンを押すと「MMVCServerSIO_win_~~」というファイルがDLされるので、解凍します。

「MMVCServerSIO_win_~~」というファイルの下に、「MMVCServerSIO」というフォルダがあります。

以下、このフォルダをメインに進めていきます。

 

・以下のURLから「hubert_base.pt」をダウンロードします。

https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/hubert_base.pt

その後、「hubert_base.pt」を「MMVCServerSIO」フォルダ直下に入れます。

 

・「MMVCServerSIO」フォルダ直下にある「start_http_RVC.bat」を開きます。

→このとき、「mmvcserversio.exeにこれらのネットワーク上での通信を許可する」:というポップアップが出てくるので、アクセスを許可しましょう。

→何度か「start_http_RVC.bat」を開くと、クライアントが起動するはずです。(もし起動しなければブラウザで「http://localhost:18888/?modelType=RVC」を開いてください)

以下、このとき開いたクライアントをメインにして進めていきます。

 

・クライアントには「VC Client for RVC」「License」「Server Control」などの文字が出ていると思います。

 

・上から二番目の「Model Setting」の欄を見て、右側にある「select」ボタンを押します。

その後、RVCで作った学習モデル(pthファイル)を選択します。(「RVC-beta\weights」に学習モデル.pthが置いてあります。)

チュートリアル:上記で作った学習モデル「ZundaModel.pth」を選択します。

 

・そして、「select」ボタンの下にある「upload」ボタンを押して、学習モデルを登録します。(忘れがち)

uploadすると、一番上のServer Controlの欄の「Model Info:」の部分に「モデル名.pth」が表示されます。)

 

Device Settingの欄を見て、

AudioInput」「AudioOutput」の欄を埋めます。

 

Discordで初めてボイチェンを使う場合、仮想オーディオをインストールしよう。(VB-CABLE Virtual Audio Deviceがオススメ)

→参考URLhttps://xrcloud.jp/blog/articles/business/4709/ これを参考にインストールを済ませる。

→クライアントに戻ってきて、Device Settingの「AudioInput」に実機マイク、「AudioOutput」に「CABLE 〇〇」を指定する。

Discordの入力デバイスに「CABLE 〇〇」を指定する。これでDiscordボイチェンボイスが乘るようになります。

 

Speaker Settingの欄を見て、

Tuningの値を調整することでピッチを変更することができる。

チュートリアル:男性の声からずんだもんの声にする場合、Tuning1415にして、predict f0をオンにすると丁度良くなった。(個人差)

 

・以上で設定は完了です。

あとは一番上に戻ってServer Controlの欄を見て、

Startボタンを押してリアルタイムボイチェンを開始しましょう。

 

お疲れ様でした。

 

 

 

 

 

【参考元】

yasyune様の、RVCの使い方の解説記事(めちゃめちゃ分かりやすいです!)

https://twitter.com/yasyune1023/status/1643525933733924864

https://rentry.co/cxuc3

 

各方面に多大なる感謝を…。