本アプリケーションは、各種音声変換 AI(VC, Voice Conversion)を用いてリアルタイム音声変換を行うためのクライアントソフトウェアです。RVC, MMVCv13, MMVCv15, So-vits-svcv40 などのモデルに対応していますが本ドキュメントではRVC(Retrieval-based-Voice-Conversion)を題材に音声変換のためのチュートリアルを行います。基本的な操作は大きく変わりません。
以下、本家のRetrieval-based-Voice-Conversion-WebUIを本家 RVC と表記し、ddPn08 氏の作成したRVC-WebUIを ddPn08RVC と記載します。
- 学習については別途行う必要があります。
- 自身で学習を行う場合は本家 RVCまたはddPn08RVCで行ってください。
- ブラウザ上で学習用の音声を用意するには録音アプリ on Github Pagesが便利です。
- training の TIPSが公開されているので参照してください。
ダウンロードした zip ファイルを解凍して、start_http.bat
を実行してください。
ダウンロードファイルを解凍したのちに、startHttp.command
を実行してください。開発元を検証できない旨が示される場合は、再度コントロールキーを押してクリックして実行してください(or 右クリックから実行してください)。
リモートから接続する場合は、.bat
ファイル(win)、.command
ファイル(mac)の http が https に置き換わっているものを使用してください。
.bat
ファイル(win)や.command
ファイル(mac)を実行すると、次のような画面が表示され、初回起動時には各種データをインターネットからダウンロードします。
お使いの環境によりますが、多くの場合1~2分かかります。
起動に必要なデータのダウンロードが完了すると下記のような ダイアログが表示されます。よろしければ黄色いアイコンを押して開発者にコーヒーをご馳走してあげてください。スタートボタンを押すとダイアログが消えます。
下記のような画面が出れば成功です。
起動時にダウンロードしたデータを用いて、すぐに音声変換を行うことができます。
(1) モデル選択エリアから使いたいモデルをクリックします。モデルがロードされるとモデルに設定されているキャラクタの画像が画面に表示されます。
(2) 使用するマイク(input)とスピーカー(output)を選択します。慣れていない方は、client を選択して、マイクとスピーカーを選択することを推奨します。(server との違いは後述します。)
(3) スタートボタンを押すと、数秒のデータロードの後に音声変換が開始されます。マイクに何かしゃべってみてください。スピーカーから変換後の音声が聞こえてくると思います。
Q1. 音がとぎれとぎれになってしまう。
A1. PC の性能が十分ではない可能性があります。CHUNK の値を大きくしてみてください(下図(A))。(1024 など)。また F0 Det を dio にしてみてください(下図(B))。
Q2. 音声が変換されない。
A2. こちらを参照して問題点の場所を明らかにして、対応を検討してください。
Q3. 音程がおかしい
A3. クイックスタートでは説明しませんでしたが、Pitch 変更可能なモデルであれば TUNE で変更できます。後述の詳細説明をご確認ください。
タイトル下のアイコンはリンクになっています。
アイコン | リンク |
---|---|
Octocat | github のリポジトリへのリンク |
クエスションマーク | マニュアル へのリンク |
スパナ | 各種便利ツールへのリンク |
コーヒー | 開発者へ寄付するためのリンク |
設定を初期化します。
使用するモデルを選択します。
編集ボタンを押すと、モデル一覧(モデルスロット)を編集することができます。詳細はモデルスロット編集画面をご確認ください。
左側にロードされたモデルのキャラクタ画像が表示されます。キャラクタ画像の左上にリアルタイム変換の状況がオーバレイ表示されます。
右側のボタンやスライダーで各種コントロールを行います。
声を出してから変換までのラグはbuf + res秒
です。調整の際は buf の時間が res よりも長くなるように調整してください。
なお、デバイスを server device モードで使用している場合は buf の表示は行われません。CHUNK に表示されている値を目安に調整してください。
音声変換後の音量です。
音声を切り取る一回の区間の長さ(ms)です。CHUNK を短くするとこの数値が減ります。
CHUNK と EXTRA を足したデータを変換にかかる時間です。CHUNK と EXTRA のいずれでも短くすると数値が減ります。
start で音声変換を開始、stop で音声変換を停止します
-
in: モデルへの入力音声の音量の大きさを変化させます。
-
out: 変換後の音声の音量の大きさを変化させます。
声のピッチをどれくらい変換するかの値を入れます。推論中に変換もできます。以下は設定の目安です。
- 男声 → 女声 の変換では+12
- 女声 → 男声 の変換では-12
学習で使用した特徴量に寄せる比率を指定します。index ファイルが登録されているモデルのみ有効です。 0 で HuBERT の出力をそのまま使う、1 で元の特徴量にすべて寄せます。 index ratio が 0 より大きいと検索に時間がかかる場合があります。
音声変換先の話者を設定します。
設定した内容を保存します。モデルを再度呼び出したときに設定内容が反映されます。(一部のぞく)
PyTorch のモデルを ONNX に変換して出力します。ロードされているモデルが RVC の PyTorch モデルである場合のみ有効です。
使用する音声変換 AI モデルにより設定可能な内容が増減します。モデル開発元のサイトなどで機能等をご確認ください。
動作設定や変換処理の内容を確認することができます。
ノイズ除去機能の ON/OFF を切り替えられます。Client Device モードでのみ有効です。
- Echo: エコーキャンセル機能
- Sup1, Sup2: ノイズ抑制機能です
ピッチを抽出するためのアルゴリズムを選びます。次の中から選べます。
- 軽量な
dio
- 高精度な
harvest
- GPU を使用する
crepe
音声変換を行う音量の閾地です。この値より小さい rms の時は音声変換をせず無音を返します。 (この場合、変換処理がスキップされるので、あまり負荷がかかりません。)
一度の変換でどれくらいの長さを切り取って変換するかを決めます。これが大きいほど効率的に変換できますが、buf の値が大きくなり変換が開始されるまでの最大の時間が伸びます。 buff: におよその時間が表示されます。
音声を変換する際、入力にどれくらいの長さの過去の音声を入れるかを決めます。過去の音声が長く入っているほど変換の精度はよくなりますが、その分計算に時間がかかるため res が長くなります。 (おそらく Transformer がネックなので、これの長さの 2 乗で計算時間は増えます)
詳細はこちらの資料をご覧ください。
onnxgpu 版では使用する GPU を選択することができます。
onnxdirectML 版では GPU の ON/OFF を切り替えることができます。
使用するオーディオデバイスのタイプを選びます。詳細はこちらの文書をご確認ください。
- client: ノイズ抑制機能など GUI(chrome)の機能を活用してマイク入力、スピーカー出力を行うことができます。
- server: VCClient が直接マイクとスピーカーを操作します。遅延を抑えることができます。
マイク入力など音声入力デバイスを選択できます。音声ファイルからのインプットも可能です(サイズ上限あり)。
スピーカー出力など音声出力デバイスを選択できます。
モニター用にスピーカー出力など音声出力デバイスを選択できます。server device モードの場合のみ有効です。
詳細はこちらの文書をご確認ください。
変換後の音声をファイル出力します。
音声変換 AI に入力される音声と音声変換 AI から出力される音声を録音し、確認することができます。
大まかな考え方はこちらの文書を確認ください。
音声変換 AI に入力される音声と音声変換 AI から出力される音声を録音を開始/停止します。
録音した音声を再生するスピーカーを設定します。
音声変換 AI に入力される音声を再生します。
音声変換 AI から出力された音声を再生します。
より高度な操作を行うことができます。
モデルの合成を行うことができます。
より高度な設定を行うことができます。
現在のサーバの設定を確認することができます。