2023/04/21 おおきく改版
先週くらいに「RVC+VC Client」がTwitterで話題に上りました。
RVCは自分で好きな音声データから音声モデルを作成できる新しい方式。
VC Clientは自分の声を聞き取って、音声モデルが発音してくれるクライアント。
つまり組み合わせると「自分の会話をリアルタイムでVoiceroidoが喋ってくれる」みたいな事が出来ます。いつか出来るとは思っていたけどもう来たか。
バ美肉したい!
という願望はありませんが、頑なにVCしない自分への一筋の光となるか?
興味あるので試してみることにしたのですが・・・
VC Clientが動かない
今頃なんでこんな記事書いてるかというと、1週間やって全然動かなかったから。
RVCで音声モデルは作れたのにVC Clientがさっぱり動かない。
RVCはいいけど、VC Clientが全然うごかない。
おま環ぽいけどお手上げ。 pic.twitter.com/oQXCnRbl1I— ぶっちー (@guys_dolls) April 12, 2023
ESETを疑ってはアンインストールし、
CUDAを疑ってはDDUでグラボドライバも消しました。
しかしそれが今日解決しました!
笑っちゃうような原因で。
マイクつながないとエラーになる
「え、マイク繋いでないヤツとかおるん?(友人談)」
テレワークもあって異様にマイクを警戒している自分。
今回もVC Clientが動いてからヘッドセットを接続しようと思ってたんです。
しかし、入力デバイスが1個もないとこの問題が起きるらしい。
メッセージは全く読み取れないけど。
具体的にはVC Client起動後、どこか触ると「ちょっと問題が起きたみたいです。」という画面を繰り返します。
リセットしても変わらず、ググっても事例なし。
なんでみんなが普通に動いているのか全く理解出来ず。
思えば切り分けで試した2台目のPC,ROG Zephyrus G14もマイク内蔵してなかった。
というわけで、みなさんはアレコレ始めるまえにまずマイクを繋ぎましょう。
というわけで、VC Clientのセットアップについて3つ書きたいともいます。
A.とりあえずRVC体験したい人向け手順
一番はやくAIボイスチャット(?)を体験できるのは、公開の音声モデルを利用する方法です。
画像生成AIに続き、今後RVC形式の音声データ公開が増えると思われます。
1.無料のRVC音声モデルをダウンロードする
出自の大丈夫そうな音声モデルがBOOTHで公開されはじめています。
おそらくご自身の声をボイスチェンジャーに入れて、データ化→学習されてそう。
どちらもダウンロードすると.pthファイルが取り出せます。
日本語、スペースを含まないフォルダを作って保存しましょう。
2.VC Clientをインストールと起動
GitHub – w-okada/voice-changerから最新のクライアントをダウンロードします。
Winと書かれた下のほうです。
今日時点の最新版はv.1.5.2.3a
取り出したMMVCServerSIOのなかに、hubert_base.ptをダウンロードして保存します。
あとは”start_http.bat”をダブルクリックして起動。
(マイク挿してからね!)
初回だけWindows Defenderに引っかかりますが、許可して実行します。
3.VC Clientのセットアップ
起動したら中段にある”PyTorch(.pth)”の横のselectを押します。
そこで1.でダウンロードした.pthファイルを指定します。
~オプション~
高音質化の為にonnxファイルも作成し、適用します。
その右にある”export onnx”を押し、数分後保存出来る.onnxファイルを1.のファイルと同じ場所の保存します。
そして”Onnx(.onnx)”の列にあるselectを押し、同様に.onnxファイルを指定します。
~オプション終~
PyTorchの数段下にある”upload”を押します。
“Model Info:”にファイルが入った事を確認しましょう。
次に”Device Setting”を設定します。
AudioInputは物理マイクデバイス。AudioOutputは自分で聴くだけなら物理スピーカー。Discoardなどに流したい場合は後述の仮想オーディオデバイスを指定します。
最後に一番上の列の”Start”を押せば動作開始。
一呼吸遅れて自分の声が音声モデルの声になって出力されます。
音質のチューニングもあります。
ここは動かしながら変更可能。
- Tuning:音のピッチ(高低)。男性が女性モデルを使うなら+10で落ち着いた声、+18くらいで子供みたいな高い声に。
男性が男性モデル使うなら+2~+5くらいが良さそう。 - index ratio:低いと自分の滑舌に近く、上げるとそれを隠しますがモゴモゴした発音になります。
- Silent Threshold:無音と判断するしきい値の設定。キータッチ音も変換されてしまう時は上げる。
- F0:predict f0はチェックつけておくと良いらしい。
4′.Discordにつなぐ
VC Clientの出力をDiscordの入力につなげるには仮想オーディオツールを使います。
オススメにあったVB-Audio Virtual Appsを使いました。
なかなか古めかしいWebサイトですが、無事期待の動作をしています。
VC Clientの設定
入力は物理マイク、出力は仮想オーディオデバイスのインプット(CABLE Input)に。
Discordの設定
入力は仮想オーディオのアウトプット(CABLE Output)、C出力は物理スピーカー。
変換後の音声を相手に届けつつ、自分も聞くには仮想オーディオのアウトプットで「このデバイスを聞く」にチェックをつけます。
B.音声モデルを作成したい人向けの手順
公開されてるものではなく、自分で音声ファイルから音声モデルを作りたい。
それにはRVC WebUIを導入する必要があります。
やり方は先人が詳しく書かれているのでそちらを参照してください。。
音声モデルの作成はこの記事が詳しい。
VC Clientにはこちらも参照しています。
お二人の記事の通りやれば何も問題ありません。
なお注意するのは「学習元の音データの入手」。
両方記事が書かれている通り、「利用が認められているクリーンなデータのみ使用する事」です。
画像生成AIは先抜けやったもの勝ちみたいに世界中のデータがサンプリングされてしまいました。
音声はより「その人のアイデンティティ」を表すため、センシティブなデータとなるので注意しなくてはなりません。
C.さらに最新のRVC WebUIを使いたい人向け手順
最後にRVCの最新版を試す方法。
もともとはVC Clientが動かない時、「VC Clientの代わりになるツールを内包」という文字に釣られて試したものです。
やり方は前述にもあるこの方の記事をなぞりました(一部読み替え)。
Pythonの環境構築ができる人向けです。
1.RVC WebUIのインストール
RVC WebUIのページはこちら
右上の”Code”をクリック。
”Download Zip”ファイルをダウンロードして展開します。
自分は
C:\SD\RVC_WebUI
に配置しました。
以降のコマンドはこのディレクトリで行います。
2.Poetryのインストール
作業はWindows11の「ターミナル(管理者)」で行います。
初期設定のままなので、PowerShellが開きます。
Pythonがインストールされている事の確認と、基本的モジュールのインストール。
> python --version Python 3.10.7 > pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117 ....
Pythonの環境構築はStable Diffusionを使えるようにした時に済んでいました。
そしてPoetryをPowerShellのコマンドでインストール。
>(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
インストールが完了したら、表示されるPoetryのパスをOSに追加します。
コンピュータの詳細設定を起動(ファイル名を指定して実行で”sysdm.cpl”)>[詳細設定]タブ>”環境変数”をクリック。
”xxxxxユーザーの環境変数”から”Path”をダブルクリック。
”新規(N)”を押してPoetryのパス
C:\Users\xxxxx\AppData\Roaming\Python\Scripts
を追加します。xxxxxは自分のユーザ名を入れます。
終わったら一度ターミナルを閉じ、再度開きます。
3.必要ツールのインストール
Microsoft Visual C++ 14.0が求められるのでインストールします。
【python】pip installの際に「error: Microsoft Visual C++ 14.0 is required」が発生した場合の対応方法
”C++によるデスクトップ環境”と”MSVC v140”にチェック。
10GB弱あるのでほぼフルインストールですよ・・・
終わったら求められるままに再起動。
pythonのモジュールを入れていきます。
>pip isntall PySimpleGUI sounddevice noisereduce fairseq >pip install -r requirements.txt
ffmpegもインストール
コマンドラインで>ffmpegと入力して実行できるよう、Poetryと同じ手順でパスを通しておきます。
4.不足ファイルの配置
日本語READMEによると、Hugging Faceから不足ファイルを持ってきて入れろとありました。
自分はやり方がわからなかったのでまるごとCloneし、そこからコピー。
> cd c:/sd > git clone https://huggingface.co/lj1995/VoiceConversionWebUI > copy ./VoiceConversionWebUI/pretrained/* ./RVC_WebUI/pretrained/ > copy ./VoiceConversionWebUI/uvr5_weights/* ./RVC_WebUI/uvr5_weights/
※手で一つづつやっても問題ありません。
5.起動と学習手順
いよいよ起動。
> python infer-web.py
なにやらWarningぽい文字列も見えますが、とりあえずWebUIが起動。ヨシ。
UIがだいぶ日本語化されています。
[トレーニング]タブを開きます。
ステップ1~2a
”実験名”に作るモデルの名前を入れます。
その他はそのまま、”トレーニング用フォルダのパス”にサンプリングデータのパスを記入。
”データ処理”を押します。
ステップ2b
“抽出に使用するCPU..”は自動採取されるようです。
物理コア数ではなく、スレッド数で良さそう。
そのまま”特徴抽出”を押します。
ステップ3
最後に学習。
「エポックごとの保存頻度」は10にしましたが、総トレーニング回数と=でもいいと思います。
「総トレーニング回数」が学習回数(epoch)。50くらいにしてみます。
「xxxxbatch_size」は学習の並列度。メモリがあるので8まで増やしました。
あとは”モデルのトレーニング”を押す。
この3ステップを全て実行してもRTX3090Tiでは5分かかりませんでした。
こうして完成したファイルは
C:\sd\RVC_WebUI\weights
に格納されます。
あとはこれをVC Clientで読み出せば使えます。
5′.RVC GUI
新RVCについてくるVCクライアント(?)の使い方がわかりました。
”python gui.py”で起動したのち、4つのファイルを指定する必要があります。
- Hubert:Hugging Faceからダウンロードしたhubert_base.pt
- .pthファイル:ステップ3で作成される.pthモデルファイル
- .indexファイル:ステップ3で「特徴ファイルのトレーニング」or「ワンクリックトレーニング」を押すと作成されるRVC_WebUI/logs/Modelname/trained_IVF155_Flat_nprobe_4.indexみたいなの。
- .npyファイル:同上(RVC_WebUI/logs/Modelname/total_fea.npy)
これにデバイスを指定すると一応音は出ましたが、なんだがホラーみたいなたどたどしい音が。
しばらくはVC Clientのお世話になる必要がありそうです。