およそ5分で導入完了します。
Windows環境に「VC Client」をインストールして、RVC,SO-VITS-SVC,MMVC,DDSP-SVCなどのモデルを用いて、自分の声を好きな声にリアルタイムで変換する方法を備忘録として残しました。
これで好きな声でボイチャ・掲示板SSをアテレコしてキャラ声に変換など色々遊べそうです。
1. VC Clientのインストール
本体のダウンロード
上記リンク先のWindows用かつONNX(cpu,cuda)とあるものをダウンロードします。

青字の「normal」をクリックしてダウンロード画面に行き、「このままダウンロード」を選択。

その後zipファイル右クリック→すべて展開して下さい。

初回起動する
MMVCServerSIO_win_onnxgpu-cuda_v.1.5.2.8\MMVCServerSIO
にあるstart_http.bat
を実行します。
(バージョン表記部分は時期により異なります)

※start_https.batではないのでご注意下さい。
初回起動時はこのような警告が出ると思うので、「詳細情報」を押し「実行」ボタンを押してください。

また、ファイヤーウォールの警告も出るので「アクセスを許可する」をクリックします。

これで、ランチャーのGUIが自動的に立ち上がります。
GUIが自動で表示されない場合は、以下のURLのどちらかをChromeなどのブラウザで開いてみてください。
- http://localhost:18888/
- http://127.0.0.1:18888/

動かしたいクライアント名(今回はRVC)をクリックすると、それ専用のRealtime Voice Changer Clientが起動します。

2. Realtime Voice Changer Clientの各項目解説
よく使う項目だけ解説しています。
詳細な全項目の解説についてはこちらのリポジトリを参照してください。
server control

startでボイチェンサーバーを起動し、stopで停止します。
monitorでは、リアルタイム変換の状況をモニターできます。
声を出してから変換までのラグは
https://github.com/w-okada/voice-changer/blob/master/tutorials/tutorial_rvc_ja_latest.mdbuf + res秒
です。調整の際はbufの時間がresよりも長くなるように調整してください。
Switch Modelを押すと、アップロードしたモデルを一覧表示&選択できます。
- f0(=pitch)を考慮するモデルか
- f0: 考慮する
- nof0: 考慮しない
https://github.com/w-okada/voice-changer/blob/master/tutorials/tutorial_rvc_ja_latest.md
- モデルの学習に用いられたサンプリングレート
- モデルが用いる特徴量のチャンネル数(大きいほど情報を持っていて重い)
- 学習に用いられたクライアント
EXPORT ONNXで、PyTorch形式(.pth)のモデルをONNX形式(.onnx)形式に変換できます。
これにより、推論が高速化される場合があります。
Model Setting

Model SlotごとにPyTorch形式かONNX形式か、どちらか一方を選べます。セットしたモデルはServer ControlのSwitch Modelで選択できます。
Model(.onnx or .pth)で学習済みモデルを指定します。
feature(.npy)とindex(.index)はペアで使用します。この2つは無くても動きます。
どちらもHuBERTで抽出した特徴を訓練データに近づけるために使用しています。
3つのファイル(最低でもModel(.onnx or .pth)だけは)Selectした後、Uploadを押します。

これで下の画像のように、モデル選択肢に追加されました。

なお、Default Tuneは声のピッチ調整です。推論中に変更可能もできて、目安は次の通りです。
- 男声→女声 : +12
- 女声→男声 : -12
Device Setting

Quality Control

Speaker Setting

Destination Speaker Id
複数話者に対応した時の設定かと思われますが、本家RVCが対応していないので現状は使わない項目です。
Tuning
声のピッチを調整します。以下は設定の目安です。
- 男声→女声 の変換では+12
- 女声→男声 の変換では-12
index ratio
学習で使用した特徴量に寄せる比率を指定します。
Model Settingでfeatureとindexを両方設定した時に有効です。
0でHuBERTの出力をそのまま使う、1で元の特徴量にすべて寄せます。
index ratioが0より大きいと検索に時間がかかる場合があります。Silent Threshold
音声変換を行う音量の閾地です。
この値より小さいrmsの時は音声変換をせず無音を返します。
https://github.com/w-okada/voice-changer/blob/master/tutorials/tutorial_rvc_ja_latest.md
(この場合、変換処理がスキップされるので、あまり負荷がかかりません。)
太字化・改行を行いました。
Converter Setting

InputChunk Num(128sample / chunk)
一度の変換でどれくらいの長さを切り取って変換するかを決めます。
これが大きいほど効率的に変換できますが、bufの値が大きくなり変換が開始されるまでの最大の時間が伸びます。
buff: におよその時間が表示されます。
Extra Data Length
音声を変換する際、入力にどれくらいの長さの過去の音声を入れるかを決めます。
過去の音声が長く入っているほど変換の精度はよくなりますが、その分計算に時間がかかるためresが長くなります。
(おそらくTransformerがネックなので、これの長さの2乗で計算時間は増えます)GPU
GPUを2枚以上持っている場合、ここでGPUを選べます。
https://github.com/w-okada/voice-changer/blob/master/tutorials/tutorial_rvc_ja_latest.md
太字・改行・赤字化を行いました。
3. VC Clientでリアルタイム音声変換をする
ボイチェンサーバー起動
各種設定を終えたら、サーバーを起動します。

これでおおむね遅延1秒未満のリアルタイムボイスチェンジャーを有効化できました。
お疲れ様でした。
変換中のハードウェア負荷
変換時の設定は以下のようにデフォルトにして、アルゴリズムはharvestです。

また、Advanced settingのRVC Qualityはrowのままです。

GPUはVRAM2.1GB、CUDA使用率も2割程度と大変低負荷です。(※rtx3090視点の評価)

CPUも使用率1~2割程度でした。
リアルタイムボイスチェンジャーにハードウェアを占有されないので、ゲームしながら使用も余裕です!
ありがたい!!!
ボーカルを楽曲から抽出・除去して、歌ってみたを作ったり、好きな声でボイチャしたり夢が広がりますね☆
他にも色々と面白いAI関連の記事を書いています。合わせてご覧ください。
規制も倫理も無いFreedomGPTをグラボ不使用でWindowsにて動かす方法
画像生成AI「Stable Diffusion」を動かす方法
無料のCopilot「Amazon CodeWhisperer」を登録&VSCodeで使用する方法まとめ