【RVC v2モデル対応版】RVC WebUIの設定解説
【更新状況】
2024年12月24日(火)
記事ページを公開しました。
これからRVC WebUIを始めてみたい方向けのチュートリアルです。
【対応ノートブック】
ダウンロード:RVC v2モデル – オリジナル版RVC WebUIチュートリアル用のノートブック
このチュートリアルは、RunPodでRVC WebUI起動後のRVC WebUIの各種設定に焦点を当てています。
RunPodの仕組みや使い方がわからない方は、以下の移行ガイドのチュートリアル
:【RVC v2モデル対応版】移行ガイド:RunPodでRVC WebUIを使う方法(要点解説)
を事前に把握していただくと、RunPodでRVC WebUIを使う方法の理解が深まるのではないかと思います。
【動画で解説】RunPod編:RVC v2モデル – オリジナル版RVC WebUIの使い方(設定詳解)
動画でも解説予定です。
文字情報だけでは理解しにくい場合などにご活用ください。
一度動画を視聴いただき、手順の全体像のイメージを作ってから、記事を活用いただくと理解しやすいかもしれません。
【RVC v2モデル対応版】
RVC WebUIの使い方:ボーカルリムーバー&リバーブ除去
– Vocals/Accompaniment Separation & Reverberation Removal
* 画像をクリックすると拡大表示されます
「Vocals/Accompaniment Separation & Reverberation Removal」(ボーカル/伴奏の分離&残響除去:ボーカルリムーバー・リバーブ除去)の機能は、ボーカルリムーバー(音源から楽器音と人の声を分離する処理)と、リバーブ除去(残響音の除去)のことです。
データセットを作成する際や、音声変換したい楽曲からボーカルの音源を抽出したい場合に役に立つ機能です。
「Vocals/Accompaniment Separation & Reverberation Removal」(ボーカルリムーバー・リバーブ除去)に記載されている説明では
Batch processing for vocal accompaniment separation using the UVR5 model.
(UVR5モデルを使用したボーカル伴奏の分離バッチ処理)Example of a valid folder path format: D:\path\to\input\folder (copy it from the file manager address bar).
(有効なフォルダーパスフォーマットの例「D:\\path\\to\\input\\folder」エクスプローラーのアドレスバーから「フォルダ」へのパスをコピーします)The model is divided into three categories:
(モデルは3つのカテゴリに分かれています)
1. Preserve vocals: Choose this option for audio without harmonies. It preserves vocals better than HP5. It includes two built-in models: HP2 and HP3. HP3 may slightly leak accompaniment but preserves vocals slightly better than HP2.
(1. ボーカルを保持:「HP5」よりもボーカルをより良く保持するボーカルリムーバーのモデルとして「HP2」と「HP3」の2つがあります。具体的には、ハーモニーのないオーディオに対しては、「HP2」と「HP3」のどちらかを選択します。「HP3」は伴奏が若干残る可能性がありますが「HP2」よりもボーカルを保持する傾向があります)2. Preserve main vocals only: Choose this option for audio with harmonies. It may weaken the main vocals. It includes one built-in model: HP5.
(2. 主なボーカルのみを保持:「主なボーカルのみを保持」するボーカルリムーバーのモデルとして「HP5」があります。具体的には、ハーモニーのあるオーディオに対しては、「HP5」を選択します。ただし、主旋律のボーカルの音声を弱める可能性があります)3. De-reverb and de-delay models (by FoxJoy):
(3. ディリバーブとディレイモデル by FoxJoy)
(1) MDX-Net: The best choice for stereo reverb removal but cannot remove mono reverb;
(1 MDX-Net:ステレオリバーブの除去に最適な選択肢ではありますが、モノリバーブは除去できません)(234) DeEcho: Removes delay effects. Aggressive mode removes more thoroughly than Normal mode. DeReverb additionally removes reverb and can remove mono reverb, but not very effectively for heavily reverberated high-frequency content.
(234 DeEcho:ディレイ効果を除去します。「Aggressive」モードは「Normal」モードよりも徹底的にディレイ効果を除去します。「DeReverb」はさらにリバーブを除去し、モノリバーブを除去することができますが、高周波のリバーブが強い音源に対してはあまり効果的ではありません)De-reverb/de-delay notes:
(デリバーブ/ディレイに関する注意点)
1. The processing time for the DeEcho-DeReverb model is approximately twice as long as the other two DeEcho models.
(1.「DeEcho-DeReverb」モデルの処理時間は、他の2つのDeEchoモデルの約2倍です)2. The MDX-Net-Dereverb model is quite slow.
(2.「MDX-Net-Dereverb」モデルは非常に遅いです)3. The recommended cleanest configuration is to apply MDX-Net first and then DeEcho-Aggressive.
(3. 推奨される最もクリーンな設定は、最初に「MDX-Net」を適用し、その後に「DeEcho-Aggressive」を適用することです)
となっています。
日本語訳を読んでいただければ、大体の意味はわかったかと思います。
(説明を読んでいて「MDX-Net-Dereverb」モデルはどこにある?と思いましたが…「onnx_dereverb_By_FoxJoy」のことなのだと理解しました。)
主に、伴奏付きの楽曲の歌唱(ボーカル)の音声を抽出したい場合に使える機能です。
RVC v2モデル版の特徴は、ボーカル/伴奏の分離機能であるボーカルリムーバーのみならず、残響除去のできるリバーブ除去機能も使える点です。
この機能を使う際には、処理を行いたい音源を配置した「フォルダ」のパスを指定する必要があるので注意してください。
「Vocals/Accompaniment Separation & Reverberation Removal」(ボーカルリムーバー・リバーブ除去)のタブをクリックし、以下のように設定します。
(一例です)
Enter the path of the audio folder to be processed:
(処理する音声ファイルの入った「フォルダ」へのパスを入力します)
/workspace/Retrieval-based-Voice-Conversion-WebUI/music
*「music」フォルダ内に処理したい音源を配置した場合の例
* 直接音声ファイルをRVC WebUI上にアップロードする方法もあります。その際には、ここの欄を空欄にしておきます
サンプル音声ダウンロード
ここの設定で、ファイルへのパスを入力するとエラーになります。
ダメな設定例:
/workspace/Retrieval-based-Voice-Conversion-WebUI/music/vocalremovertest.wav
*「vocalremovertest.wav」という名前の音源を処理する場合の例
RVC WebUI上に以下のエラーが表示されます。
エラー出力例:
Traceback (most recent call last):
File "/workspace/Retrieval-based-Voice-Conversion-WebUI/infer/modules/uvr5/modules.py", line 41, in uvr
paths = [os.path.join(inp_root, name) for name in os.listdir(inp_root)]
NotADirectoryError: [Errno 20] Not a directory: '/workspace/Retrieval-based-Voice-Conversion-WebUI/music/vocalremovertest.wav'
(ディレクトリではないエラー:「/workspace/Retrieval-based-Voice-Conversion-WebUI/music/vocalremovertest.wav」はディレクトリではありません)
【エラー表示に関して】
「Vocals/Accompaniment Separation & Reverberation Removal」(ボーカルリムーバー・リバーブ除去)の機能を使う際に以下のエラー表示
RVC WebUI上の出力:
FileNotFoundError: [Errno 2] No such file or directory: '/workspace/Retrieval-based-Voice-Conversion-WebUI/TEMP/.ipynb_checkpoints.reformatted.wav'
ノートブック上の出力:
ffmpeg._run.Error: ffprobe error (see stderr output for detail)
が出ますが、最終的に処理が完了するので無視します。
また「onnx_dereverb_By_FoxJoy」を実行する際には「Processing: 〜% | | 〜/3」の表示から処理が完了するのに数分(例:3分)かかりますので、気長に待ちます。
Model
(ボーカルリムーバー・リバーブ除去のモデルを選択)
HP3_all_vocals
【ボーカルリムーバー】
・HP2_all_vocals
:ハーモニー(ハモリ)のない場合に利用。
・HP3_all_vocals
:ハーモニー(ハモリ)のない場合に利用。「HP2」よりもボーカルを保持する傾向があるが、伴奏が若干残る可能性もあり。
・HP5_only_main_vocal
:ハーモニー(ハモリ)のある場合に利用。
【リバーブ除去】
・MDX-Net:onnx_dereverb_By_FoxJoy
:RVC WebUI公式の推奨の手順としては、最初に「MDX-Net」を適用し、その後に「DeEcho-Aggressive」を適用すると良いようです。
ただし、「MDX-Net」は時間がかかります。
試した範囲では「34秒」(9MB)の音源をリバーブ除去するのに「3分」程時間がかかりました。
・VR-DeEchoNormal
ディレイ効果を除去します。
・VR-DeEchoAggressive
「Normal」モードよりも徹底的にディレイ効果を除去します。
・VR-DeEchoDeReverb
:「DeReverb」は「Aggressive」モードよりも、さらにリバーブを除去し、モノリバーブを除去することができますが、高周波のリバーブが強い音源に対してはあまり効果的ではないようです。
「VR-DeEcho-DeReverb」モデルの処理時間は、「VR-DeEchoNormal」「VR-DeEchoAggressive」のモデルに比べて約2倍となるようです。
Specify the output folder for vocals:
(ボーカルリムーバー後のボーカル音声の出力フォルダを指定)
opt
* 初期設定
初期設定では処理を実行すると「Retrieval-based-Voice-Conversion-WebUI」フォルダ内に「opt」フォルダが作成され、「opt」フォルダ内に処理後の音源が出力されます。
必要に応じて名前を変更(半角英数)してください。
Specify the output folder for accompaniment:
(ボーカルリムーバー後の伴奏の出力フォルダを指定)
opt
* 初期設定
初期設定では処理を実行すると「Retrieval-based-Voice-Conversion-WebUI/」フォルダ内に「opt」フォルダが作成され、「opt」フォルダ内に処理後の音源が出力されます。
必要に応じて名前を変更(半角英数)してください。
Export file format:
(出力するファイル形式を設定)
wav
出力するファイル形式を「wav」「flac」「mp3」「m4a」から選択できます。
設定が完了したら「Conversion/Convert」(変換:ボーカルリムーバーを実行)をクリックします。
何回か処理を施したい場合には、フォルダやファイルの配置などを工夫する必要はありそうですが、色々と試行錯誤してみてください。
【RVC v2モデル対応版】RVC WebUIの使い方:学習編
(データセットで学習モデル作成)- Train
* 画像をクリックすると拡大表示されます
「Train」(学習)のタブをクリックし、以下のように設定します。
(一例です)
【Step:1】
Fill in the experimental configuration. Experimental data is stored in the ‘logs’ folder, with each experiment having a separate folder. Manually enter the experiment name path, which contains the experimental configuration, logs, and trained model files.
(実験の設定をします。実験データは「logs」フォルダに保存され、各実験は別のフォルダを持つ。実験設定、ログ、学習済みモデルファイルを含む実験名パスを手動で入力します)
Enter the experiment name:
(出力される学習モデルの名前)
amitaro
チュートリアルでは分かりやすいように「amitaro」という名前にしています。
RunPodでは「Volume Disk」(ボリュームディスク領域:ポッド契約中の永続保存領域)にファイルが保存され続けます。RunPodの仕様を考慮すると「amitaro48kv2id0」などと後述する設定内容を忘れないようにしておくと、「Please specify the speaker/singer ID:」(識別IDの設定)にまつわる音質の低下を予防できるのではないかと思います。
また、学習モデル同士を融合させる場合に、違う「Target sample rate:」(サンプリングレート・サンプル周波数)ではエラーとなるようでしたので、作成した学習モデルを融合させる予定の方は、周波数も名前に記載しておくといいかもしれません。
Target sample rate:
(サンプリングレート・サンプル周波数)
48k
(48000Hz)
基本的には音声ファイルのサンプリングレートに近い数値に合わせますが、お好みに応じて「32k」(32000Hz)「40k」(40000Hz)「48k」(48000Hz)から選択してみてください。
Whether the model has pitch guidance (required for singing, optional for speech):
(ピッチガイダンスの設定 – ピッチガイダンスの有無:歌唱時は必須、話し声時は任意)
True
*注:リアルタイムボイスチェンジを試みる際の注意点
ここの設定を「false」に設定すると「ピッチレス」モデルとなり、リアルタイム音声変換をする際に、音声変換精度がやや劣るようです。音声変換精度を向上させたい場合には、「True」を選択してみてください。ただし、VC Clientを利用する際に、お使いのパソコンの負荷を減らしたい場合には、「ピッチレス」モデルが候補の1つとなるようです。お使いのパソコンのスペックに応じて調整してみてください。
尚、「ピッチレス」モデルへの対応は、VC Client v.1.5.2.5(2023年4月26日アップデート以降)からのようです。VC Clientでリアルタイム音声変換をしたい方は、リアルタイムボイスチェンジを試す時点の最新版のVC Clientをダウンロードするようにしてみてください。
Version:
(RVCのバージョン設定)
v2
Number of CPU processes used for pitch extraction and data processing:
(ピッチ抽出とデータセット処理に使用するCPUスレッド数)
22
(一例です)
初期設定は「22」です。
RunPod上で試した範囲では、数を増やしても減らしてもどちらでも大差はないかと思われました。
【Step:2a】
Automatically traverse all files in the training folder that can be decoded into audio and perform slice normalization. Generates 2 wav folders in the experiment directory. Currently, only single-singer/speaker training is supported.
(オーディオにデコードできるデータセットフォルダ内のすべてのファイルを自動的にスキャンし、スライスの正規化を実行します。実験ディレクトリに2つのwavフォルダを生成します。現在、単一の歌手/話者のトレーニングのみがサポートされています。)
Enter the path of the training folder:
(学習させるデータセットフォルダのパスを指定)
/workspace/Retrieval-based-Voice-Conversion-WebUI/datasets/dataset
*「Retrieval-based-Voice-Conversion-WebUI」フォルダ内にある「datasets」フォルダの中に「dataset」というデータセットフォルダを配置した場合の例
Please specify the speaker/singer ID:
(識別IDの設定)
0
*2回目に学習させる場合には、1回目とは違うIDに設定します。
(例:1回目の学習 – ID 0。2回目の学習 – ID 1)
識別IDの番号は「Model Inference」(モデル推論)の際の音質に影響しますので、「Enter the experiment name:」(出力される学習モデルの名前)の設定で「amitaro48kv2id0」などと識別ID番号を入れておくといいかもしれません。
識別IDは、RunPodで使う際の利便性を考慮し「0〜1000」の範囲で指定できるようにコードを改変しておきました。
【Step:2b】
Use CPU to extract pitch (if the model has pitch), use GPU to extract features (select GPU index)
(CPUでピッチを抽出 – ピッチあり学習モデルの場合・GPUで特徴を抽出 – GPUを選択します)
Enter the GPU index(es) separated by ‘-‘, e.g., 0-1-2 to use GPU 0, 1, and 2:
(GPUのインデックスを「-」で区切って入力します。例:「0-1-2」でカード「0、1、2」が選択)
0
ピッチ抽出アルゴリズムの処理の際のGPU数を指定できます。
GPUの数が「1つ」の場合には、RVC WebUI上の設定で
【Train】(学習 – ピッチ抽出アルゴリズムの処理)
Step2b:
Enter the card numbers used separated by -, for example 0-1-2 use card 0 and card 1 and card 2
(ピッチ抽出アルゴリズムの処理:ハイフン[-]で区切って使用するカード番号を入力してください 例:0-1-2はカード0、カード1とカード2を使用)
0
になっています。
GPUの数を「2つ」にした場合には、説明に書かれているように、RVC WebUI上の設定で
【Train】(学習 – ピッチ抽出アルゴリズムの処理)
Step2b:
Enter the card numbers used separated by -, for example 0-1-2 use card 0 and card 1 and card 2
(ピッチ抽出アルゴリズムの処理:ハイフン[-]で区切って使用するカード番号を入力してください 例:0-1-2はカード0、カード1とカード2を使用
0-1
と半角英数で「–」「1」を付け足します。
GPUの数を「3つ」にした場合には、同じように
【Train】(学習 – ピッチ抽出アルゴリズムの処理)
Step2b:
Enter the card numbers used separated by -, for example 0-1-2 use card 0 and card 1 and card 2
(ハイフン[-]で区切って使用するカード番号を入力してください 例:0-1-2はカード0、カード1とカード2を使用)
0-1-2
と半角英数で「–」「1」「–」「2」を付け足します。
GPU information:
(GPUの情報)
0 NVIDIA RTX A4000
RunPodで「RTX A4000」(16 GB VRAM)を設定した場合の例です。
Select the pitch extraction algorithm: when extracting singing, you can use ‘pm’ to speed up. For high-quality speech with fast performance, but worse CPU usage, you can use ‘dio’. ‘harvest’ results in better quality but is slower. ‘rmvpe’ has the best results and consumes less CPU/GPU
(ピッチ抽出アルゴリズムの設定:歌声の処理を高速化するには「pm」を使用します。入力した音声が高音質でCPUが貧弱な場合には「dio」で高速化できます。「harvest」の方が「pm」と「dio」に比べて品質は良いですが処理が完了するのに時間がかかります。ピッチ抽出アルゴリズムの中では「rmvpe」が最高の品質を得られ、CPU/GPU消費量も少ないです)
rmvpe_gpu
(一例です)
【参考情報】
・「rmvpe」(最新のRMVPEボーカルピッチ抽出アルゴリズム)
・「rmvpe_gpu」(最新のRMVPEボーカルピッチ抽出アルゴリズムのGPU指定版)
RMVPE:
RMVPE: A Robust Model for Vocal Pitch Estimation in Polyphonic Music – 2023年6月27日公開 | arxiv
(ポリフォニック音楽におけるボーカルピッチ推定のための堅牢なモデル)
【Train時にrmvpeを使う際の注意点】
これまでに試した範囲の情報では、「Train」(学習)で「rmvpe」を選択すると「Step2」の処理中に「Loading rmvpe model」が10回表示されてから5分程度(一例)経過してから、その後の処理が進むようでしたので、気長に待ってください。
Enter the GPU index(es) separated by ‘-‘, e.g., 0-0-1 to use 2 processes in GPU0 and 1 process in GPU1
(rmvpeのカード番号の設定:異なるプロセスに使用するカード番号を入力します。例えば、0-0-1でカード0に2つのプロセス、カード1に1つのプロセスを実行させます)
0-0
「rmvpe_gpu」に設定した場合にGPUのカード番号を指定するようです。
GPUメモリを1つだけ使う場合には、初期設定の「0-0」で使えるようでした。
2つのGPUメモリを使う場合には、一例として、説明に書かれているように
Enter the GPU index(es) separated by ‘-‘, e.g., 0-0-1 to use 2 processes in GPU0 and 1 process in GPU1
(rmvpeのカード番号の設定:異なるプロセスに使用するカード番号を入力します。例えば、0-0-1でカード0に2つのプロセス、カード1に1つのプロセスを実行させます)
0-0-1
と半角英数で「–」「1」を付け足します。
【Step:3】
Fill in the training settings and start training the model and index
(学習の設定をして、モデルの学習を開始し、学習モデルと特徴インデックスファイルを作成する)
Save frequency (save_every_epoch):
(学習の状況の保存頻度)
5
チェックポイントファイル(「D_〜.pth「G_〜.pth」)の保存頻度を設定します。
「Train」(学習)後に出力される「logs」フォルダ内の学習ログフォルダにあるチェックポイントファイルがディスク容量を圧迫す原因になります。
「Volume Disk」(ボリュームディスク領域:ポッド契約中の永続保存領域)の残りの容量に応じて保存頻度を調整してください。
試した範囲では、チェックポイントファイルを1回保存すると「1GB」程のディスク容量が必要です。
再学習させたい場合には一番数字の大きな「D_〜.pth「G_〜.pth」ファイルを残しておくだけで大丈夫ですので、必要に応じて不要なチェックポイントファイルを削除してください。
Total training epochs (total_epoch):
(学習回数 – エポック数)
10
2024年10月時点のRVC公式のQ&Aでは、推奨される学習回数としては
・低品質の音声ファイルによるデータセット
:20〜30回
* 低品質の音声ファイル:データセットの音声の品質が低く、ノイズフロアが高い場合
* ノイズフロア:音声ファイル全体に含まれるノイズ
とのことで、設定を高くしすぎると低品質の音声ファイルによるデータセットによる学習では、これ以上学習しても音質の改善は見込めないようです。
一方で
・高品質の音声ファイルによるデータセット
:200回(学習回数の許容範囲)
* 高品質の音声ファイル:データセットの音声の品質が高く、ノイズフロアが低い、十分な合計再生時間(5分〜10分)のある場合
とのことです。
また、データセットの合計再生時間の推奨時間は
・10分〜50分程度
とのことです。
音声変換の質を向上させたい場合には
・「5〜10分」の高品質のデータセットを用意
・学習回数の許容範囲「200回」
がとりあえずの目安かもしれません。
ただ、これまでに報告をいただいた情報では
・学習回数を減らすことで音声変換の質が向上
された事例の報告もいただいていますので、試行錯誤してみてください。
【再学習に関して】
再学習させる場合にはチェックポイントファイル(「D_〜.pth「G_〜.pth」)が保存されている必要があります。
チェックポイントファイル(「D_〜.pth「G_〜.pth」)が保存されている場合には
Enter the experiment name:
(出力される学習モデルの名前)
amitaro
Please specify the speaker/singer ID:
(識別IDの設定)
0
* 識別IDを合わせるのは必須ではありませんが、合わせるのが無難かと思います
を同じにした状態にします。
前回の学習回数が「10」回の場合には
Total training epochs (total_epoch):
(学習回数 – エポック数)
20
と設定すると追加の「10」回分の学習ができます。
Batch size per GPU:
(各グラフィックスカード・GPUに対してのバッチサイズ)
* 学習するデータセットをどの程度の一回あたりの処理量にするか
3
学習するデータセットをどの程度の1回あたりの処理量にするかを指定します。
GPUメモリが多い場合には、ここの数値を大きくすると、過学習が予防できるようです。
注意点としては、膨大な量のデータセットで学習させる際などに、あまり大きな数値にすると、メモリが足りなくなりエラーとなるリスクも考えられますので、RunPodの管理画面のGPUメモリ使用率の状況を見つつ、途中でエラーとなる方などはここの数値を試行錯誤してみてください。
参考情報として、1〜3秒の音声ファイル200個(25MB:16ビット・モノラル・44.1kHz)を使って100回学習(48k・ピッチガイダンスあり・rmvpe_gpu・Batch size:20)させた際に、ここの値を「20」にすると
Step2:Pitch extraction & feature extraction(ピッチ抽出の処理)
:GPU Utilization 0%
:GPU Memory Used 8%
Step 3a: Model training started(学習)
:GPU Utilization 0%〜100%推移
:GPU Memory Used 17%〜88%推移
の結果でした。
何回か試した範囲では「GPU Memory Used」の割合が100%以下であれば学習を完了できるようでした。
その後、さらにバッチサイズの値を上げてみました。
上述の200ファイルのデータセットを使いここの設定を「30」にすると、
・Step 3a: Model training started(学習)
の途中でJupyterLab上の出力で以下のエラー
エラー出力例:(メモリオーバー)
〜
torch.cuda.OutOfMemoryError: CUDA out of memory.
(メモリ容量超えのエラー)
Tried to allocate 26.00 MiB
(GPU 0; 15.72 GiB total capacity; 11.88 GiB already allocated; 17.06 MiB free; 13.86 GiB reserved in total by PyTorch)
(26.00MiBを割り当てようとしました。GPU 0; 総容量15.72GiB; 既に11.88GiBが割り当てられている; 17.06MiBが解放されている; PyTorchによって合計13.86GiBが予約されています。)
If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
(もしも「予約メモリ」が「割り当てメモリ」を大きく超えてしまう場合には、断片化を避けるために「max_split_size_mb」を設定してみてください。
詳しくは、「メモリ管理とPYTORCH_CUDA_ALLOC_CONF」のドキュメントを参照してください。)
が出力され、学習が完了しませんでした。
RVC WebUI上の学習の「Output Information」(出力情報)の表示では「All processes have been completed!」(全ての処理が完了しました!)と出力されていました。
最終的に学習モデルが出力されなかったり、RVC WebUI上で「Error」(エラー表示)などがある場合には、JupyterLab上の出力結果で、エラーの原因を確認してみてください。
Save only the latest ‘.ckpt’ file to save disk space:
(ディスク容量を節約するために、最新のckptファイルのみを保存する)
No
ここの機能を使うためには
Save frequency (save_every_epoch):
(学習の状況の保存頻度)
5
* チュートリアルでは「5」回ごとにチェックポイントファイルを保存。全「10」回の学習では「2」回チェックポイントファイルが保存されます
などと、1回以上、チェックポイントファイルを保存する設定にする必要があります。
ここの設定を「Yes」にした場合には、最終のチェックポイントファイル(「D_〜.pth「G_〜.pth」)がのみ保存されます。
ディスク容量節約のために、ここの設定を「0」にできないか?プログラムを改変して試してみたところ、オリジナル版のRVC WebUIでは「0」にすると学習ができないようでしたので1回以上に設定する必要がありそうでした。
Cache all training sets to GPU memory. Caching small datasets (less than 10 minutes) can speed up training, but caching large datasets will consume a lot of GPU memory and may not provide much speed improvement:
(すべてのデータセットをGPUメモリにキャッシュします。小さなデータセット(10分未満)はキャッシュすると学習を高速化できますが、大規模なデータセットをキャッシュするとGPUメモリが消費され、速度があまり向上しない可能性があります)
No
Save a small final model to the ‘weights’ folder at each save point:
(指定した「Save frequency (save_every_epoch)」- 学習の状況の保存頻度に一致する学習ポイントごとに「weights」フォルダにも完成系の学習モデルを保存する)
No
Load pre-trained base model G path.:
(事前学習モデルGのファイルのパスを指定)
assets/pretrained_v2/f0G48k.pth
* RVC v2モデル(48kHz)を指定した場合の設定例
設定に応じて、自動的にファイルが反映されます。
Load pre-trained base model D path.:
(事前学習モデルDのファイルのパスをパス)
assets/pretrained_v2/f0D40k.pth
* RVC v2モデル(48kHz)を指定した場合の設定例
設定に応じて、自動的にファイルが反映されます。
Enter the GPU index(es) separated by ‘-‘, e.g., 0-1-2 to use GPU 0, 1, and 2:
(GPUのインデックスを「-」で区切って入力します。例:「0-1-2」でカード「0、1、2」が選択されます)
0
学習の処理の際のGPU数を指定できます。
GPUの数が「1つ」の場合には、RVC WebUI上の設定で
【Train】(学習 – 学習の処理)
Step3:
Enter the card numbers used separated by -, for example 0-1-2 use card 0 and card 1 and card 2
(ハイフン[-]で区切って使用するカード番号を入力してください 例:0-1-2はカード0、カード1とカード2を使用)
0
になっています。
GPUの数を「2つ」にした場合には、説明に書かれているように、RVC WebUI上の設定で
【Train】(学習 – 学習の処理)
Step3:
Enter the card numbers used separated by -, for example 0-1-2 use card 0 and card 1 and card 2
(ハイフン[-]で区切って使用するカード番号を入力してください 例:0-1-2はカード0、カード1とカード2を使用
0-1
と半角英数で「–」「1」を付け足します。
GPUの数を「3つ」にした場合には、同じように
【Train】(学習 – 学習の処理)
Step3:
Enter the card numbers used separated by -, for example 0-1-2 use card 0 and card 1 and card 2
(ハイフン[-]で区切って使用するカード番号を入力してください 例:0-1-2はカード0、カード1とカード2を使用)
0-1-2
と半角英数で「–」「1」「–」「2」を付け足します。
設定ができたら
・One-click training.
(ワンクリックでトレーニング開始)
のボタンをクリックします。
しばらくすると以下のような表示になります。
RCV WebUI上の出力結果
*「Train」内の「Output message」(出力メッセージ)の出力
Step 1: Processing data
start preprocess
〜
end preprocess
step2:Pitch extraction & feature extraction
infer/modules/train/extract/extract_f0_rmvpe.py 2 0 0 /workspace/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro True
todo-f0-5
f0ing,now-0,all-5,-/workspace/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro/1_16k_wavs/0_1.wav
infer/modules/train/extract/extract_f0_rmvpe.py 2 1 0 /workspace/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro True
todo-f0-5
f0ing,now-0,all-5,-/workspace/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro/1_16k_wavs/1_1.wav
〜
all-feature-done
Step 3a: Model training started
Training complete. You can check the training logs in the console or the 'train.log' file under the experiment folder.
(1072, 768),27
(1072, 768),27
training
(1072, 768),27
training
adding
(1072, 768),27
training
adding
成功构建索引 added_IVF27_Flat_nprobe_1_amitaro_v2.index
链接索引到外部-assets/indices
all processes have been completed!
(すべての処理が完了しました!)
RunPod-v2-RVC-WebUI-Historical-Legacy-for-Japanese-AI-beginners.ipynb上の出力結果
*【手順6:RVC WebUIの起動】の出力
INFO:torch.nn.parallel.distributed:Reducer buckets have been rebuilt in this iteration.
INFO:amitaro:====> Epoch: 1 [2024-11-26 11:39:41] | (0:00:13.565192)
/workspace/Retrieval-based-Voice-Conversion-WebUI/venv/lib/python3.10/site-packages/torch/optim/lr_scheduler.py:139: UserWarning: Detected call of `lr_scheduler.step()` before `optimizer.step()`. In PyTorch 1.1.0 and later, you should call them in the opposite order: `optimizer.step()` before `lr_scheduler.step()`. Failure to do this will result in PyTorch skipping the first value of the learning rate schedule. See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate
warnings.warn("Detected call of `lr_scheduler.step()` before `optimizer.step()`. "
INFO:amitaro:====> Epoch: 2 [2024-11-26 11:39:44] | (0:00:03.148669)
INFO:amitaro:====> Epoch: 3 [2024-11-26 11:39:47] | (0:00:03.117282)
INFO:amitaro:====> Epoch: 4 [2024-11-26 11:39:50] | (0:00:03.121313)
INFO:root:Saving model and optimizer state at epoch 5 to ./logs/amitaro/G_25.pth
INFO:root:Saving model and optimizer state at epoch 5 to ./logs/amitaro/D_25.pth
INFO:amitaro:====> Epoch: 5 [2024-11-26 11:39:56] | (0:00:05.588824)
INFO:amitaro:====> Epoch: 6 [2024-11-26 11:39:59] | (0:00:03.223396)
INFO:amitaro:====> Epoch: 7 [2024-11-26 11:40:02] | (0:00:03.224268)
INFO:amitaro:====> Epoch: 8 [2024-11-26 11:40:06] | (0:00:03.226619)
INFO:amitaro:====> Epoch: 9 [2024-11-26 11:40:09] | (0:00:03.231087)
INFO:root:Saving model and optimizer state at epoch 10 to ./logs/amitaro/G_50.pth
INFO:root:Saving model and optimizer state at epoch 10 to ./logs/amitaro/D_50.pth
INFO:amitaro:====> Epoch: 10 [2024-11-26 11:40:14] | (0:00:05.695500)
INFO:amitaro:Training is done. The program is closed.
(学習が実行されました。プログラムを終了します)
INFO:amitaro:saving final ckpt:Success.
/usr/lib/python3.10/multiprocessing/resource_tracker.py:224: UserWarning: resource_tracker: There appear to be 20 leaked semaphore objects to clean up at shutdown
warnings.warn('resource_tracker: There appear to be %d '
出力された学習モデルは、RunPodのJupyterLab上でダウンロードできます。
「weights」フォルダ内に
・「amitaro.pth」
*「Enter the experiment name:」(出力される学習モデルの名前)で「amitaro」という名前に設定した場合の例
*「weights」フォルダは”「Retrieval-based-Voice-Conversion-WebUI」フォルダの「assets」フォルダ内に「weights」フォルダ“が配置されています
という学習モデルが出力されています。
また、indexファイル・npyファイルなどは「logs」フォルダ内に出力される該当フォルダ内にあります。
その他にも、indexファイルは「assets」フォルダ内の「indices」フォルダ内にも、作成した学習モデルに対応するindexファイルが出力されます。
JupyterLabの画面上で該当ファイルを右クリック後に表示される「ダウンロード」をクリックするとファイルをダウンロードできます。
必要に応じてローカル環境(自分のパソコン)にダウンロードして、リアルタイムボイスチェンジなどに挑戦してみてください。
AIを利用したリアルタイムボイスチェンジャーのクライアントソフトウェアVC Client:
w-okada/voice-changer(The MIT License)| GitHub
【RVC v2モデル対応版】
RVC WebUIの使い方:モデル推論編(音声変換)- Model Inference
* 画像をクリックすると拡大表示されます
「Model Inference」(モデルの推論)のタブをクリックし、以下のように設定します。
(一例です)
「Refresh voice list and index path」(学習モデルとインデックスファイルのリストを更新する)のボタンをクリック後に
Inferencing voice:
(音声の推論)
amitaro.pth
* 学習の際に「Enter the experiment name:」(出力される学習モデルの名前)を「amitaro」にした場合の例
が設定できるようになります。
Select Singer/Speaker ID:
(識別ID)
0
* 学習の際に「Please specify the speaker/singer ID:」(識別IDの設定)を「0」にした場合の例
【Single Inference】(1つの音声ファイルのモデル推論の場合)
Transpose (integer, number of semitones, raise by an octave: 12, lower by an octave: -12):
(ピッチ・音階の設定 – 整数の値を変更すると半音変化します。設定例 1オクターブ上げる場合: 12 ・ 1オクターブ下げる場合: -12)
+12
男性から女性への変換は+12key、女性から男性への変換は-12keyを推奨。音域が行き過ぎて声が歪んでしまう場合は、適切な音域に調整してみてください。
チュートリアルでは男性の声→女性の声に変換のため+12にしています。
Enter the path of the audio file to be processed (default is the correct format example):
(処理するオーディオファイルのパスを入力します – デフォルトは正しいフォーマットの例です)
/workspace/Retrieval-based-Voice-Conversion-WebUI/voice/originalvoice.wav
*「Retrieval-based-Voice-Conversion-WebUI」内の「voice」フォルダの中に「originalvoice.wav」という音声ファイルを配置した場合の例
Path to the Feature index file. Leave blank to use the selected result from the dropdown:
(特徴インデックスファイルへのパス – ドロップダウンから選択された結果を使用する場合は、空白のままにします)
未記入
(一例です)
Auto-detect index path and select from the dropdown:
(特徴インデックスファイルへのパスを自動検出:ドロップダウンで選択)
logs/amitaro/added_IVF27_Flat_nprobe_1_amitaro_v2.index
(一例です)
* 学習の際に「Enter the experiment name:」(出力される学習モデルの名前)を「amitaro」にした場合の例
*「Retrieval-based-Voice-Conversion-WebUI」のフォルダの「logs」内の学習モデル名の該当フォルダにある「added〜.index」のファイルのパスが自動的に反映されます
* 2回目の学習で「Enter the experiment name:」(出力される学習モデルの名前)を「amitaro2」にした場合には、
logs/amitaro2/added_〜_amitaro2_v2.index
のファイルを選ぶようにします。
Select the pitch extraction algorithm (‘pm’: faster extraction but lower-quality speech; ‘harvest’: better bass but extremely slow; ‘crepe’: better quality but GPU intensive), ‘rmvpe” best quality. and little GPU requirement:
(ピッチ抽出のアルゴリズムを選択する -「pm」: 抽出が最速だが音声の品質は低い。「harvest」: 品質は向上するが、抽出が最も遅い。「crepe」:品質は最高だが、GPUに負荷がかかります。「rmvpe」:GPU消費も少なく最高品質)
rmvpe
Resample the output audio in post-processing to the final sample rate. Set to 0 for no resampling:
(後処理で音声を異なるサンプルレートにリサンプリング – 再標本化する。設定を「0」にした場合にはリサンプリングは実行しません)
0
(一例です)
リサンプリングしない場合の例です。
チュートリアルでは「Train」(学習)の際に「Target sample rate:」(サンプリングレート・サンプル周波数)を「48k」にしていますので、「48k」が反映されます。
変換後の音声を「40kHz」にしたい場合には、ここの設定を「40000」にします。
Adjust the volume envelope scaling. Closer to 0, the more it mimicks the volume of the original vocals. Can help mask noise and make volume sound more natural when set relatively low. Closer to 1 will be more of a consistently loud volume:
(ボリューム・エンベロープのスケーリングを調整します。「0」に近いほど、オリジナルのボーカルの音声を模倣します。比較的小さい値に設定すれば、ノイズをマスキングし、音量をより自然にすることができます。また、「1」に近いほど音量が安定します)
0.25
(一例です)
初期設定は「0.25」に設定されているようです。
おそらく、ここの設定を「1未満」にするとボリュームエンベロープ(時間に対する音声ボリュームの設定)を元の音声寄りにできるようにする設定ではないかと思います。
数値を変えて音声がどうなるか?色々と試してみてください。
Protect voiceless consonants and breath sounds to prevent artifacts such as tearing in electronic music. Set to 0.5 to disable. Decrease the value to increase protection, but it may reduce indexing accuracy:
(無声子音と呼吸音を保護し、電子音の途切れなどのアーティファクトを防止します。「0.5」に設定した場合には保護機能を無効化します。ここの値を小さくすると保護機能が強化されますが、特徴インデックスファイルの効果が低下する可能性があります)
0.33
(一例です)
注:無声子音(むせいしいん)
:声帯振動を伴わない子音のこと。声門が開いた状態で呼吸が通過する
初期設定は「0.33」に設定されているようです。
数値を変えて音声がどうなるか?色々と試してみてください。
If >=3: apply median filtering to the harvested pitch results. The value represents the filter radius and can reduce breathiness.
(3以上の場合:ピッチの結果にf0にメディアンフィルターを適用します。ここの数値はフィルターの半径を表し、息苦しさを軽減することができます)
3
*f0:基本周波数
*メディアンフィルター:おそらくノイズ除去
メディアンフィルターという、息苦しい感じの音声を軽減させるフィルターを適用するか設定できるようです。
「0〜7」の範囲で設定できます。
Search feature ratio (controls accent strength, too high has artifacting)
(検索特徴率:サーチ・検索機能の割合:アクセントの強さをコントロールします。高すぎるとアーチファクトが発生します)
0.5
* アーチファクト:ノイズ(雑音)
初期設定は「0.75」に設定されているようです。
数値を変えて音声がどうなるか?色々と試してみてください。
チュートリアルの音声で試した範囲では、ここの設定を「1」にすると、途中で雑音が入ることもあるようでした…
「0.5」あたりまで下げると、軽減してくるようでした。さらに下げると気にならないレベルになりました。
検索特徴率を「1」に近づけるほど、今回学習させた「学習モデル」の特徴に偏らせるようです。
参考情報として、1〜3秒の音声ファイル200個(25MB:16ビット・モノラル・44.1kHz)を使って100回学習(48k・ピッチガイダンスあり・rmvpe_gpu・Batch size:20)させた学習モデルを使うと、ここの値を「1」に近づけてもアーチファクトが気にならなくなりました。音声ファイルを増やし、学習回数を増やすと音質が向上するようでした。
学習の際にJupyterLab上に出力された学習の指標の1つである損失関数の値の経過を見てみると
・「epoch=1 loss_disc=4.171 loss_gen=2.992」
(学習1回目・dの損失関数=4.171・gの損失関数=2.992)
* d:discriminator(弁別器・識別器)
* g:generator(生成器)
* 損失関数:0に近づくほど性能が良い
↓
・「epoch=80 loss_disc=3.619 loss_gen=3.703」
(学習80回目・dの損失関数=3.619・gの損失関数=3.703)
* 20回ごとに損失関数の値が記録されるようでしたが、100回目は記録されていないようでしたので最終結果は不明です…,
ということで「dの損失関数」の値が良くなっているようでした。
追加で学習回数を増やした際には、損失関数の値がどうなっているのかをチェックするといいかもしれません。
損失関数の値が頭打ちになった際には、それ以上学習しても性能が上がらない可能性が考えられます。
設定が完了したら
・Convert
(変換)
のボタンをクリックします。
数秒〜10秒ほどで推論完了。
1〜3秒ほどのファイル10個で学習させただけでしたが、聞いてみると女性っぽい声に変換されていました。
今回のチュートリアルの設定では、あみたろさんっぽい声に近づけるには、さらにキーを上げる必要はありそうでした。
今回の使い方を参考にしつつ、試行錯誤しながらオリジナルのボイスチェンジャーを作成してみてください。
尚、出力された音声ファイルは
「Export audio (Click on the three dots in the bottom right corner to download)」
(出力オーディオ – 右下隅の3つのドット、クリックしてダウンロード)
のところでダウンロードできます。
ブラウザの種類によってはRVC WebUI上にダウンロードできる機能が反映されないようでしたので
のブラウザを使うようにしてください。
上記以外のプラウザでRVC WebUIを起動後も、一度割り当てられた以下のようなRVC WebUIのURL
・https://〜-7860.proxy.runpod.net/
* 現在のポッドと契約中は、同じURLが割り当てられます。
* 現在のポッドを削除すると、新規作成したポッドのURLは変更されます。
を、他のブラウザで閲覧すると、【手順6:RVC WebUIの起動】のコードを実行中の状態であれば、起動中のRVC WebUIを操作できます。
必要に応じて、上記のブラウザに切り替えて「Model Inference」(モデル推論)を実行してみてください。
* 注:オリジナル版のRVC WebUIの場合にはFireFoxでも、表示がわかりにくいですがダウンロードできるようになっていました。
【Batch Inference】(複数の音声ファイルのモデル推論の場合)
* 画像をクリックすると拡大表示されます
Specify output folder:
(音声変換した音声ファイルの出力フォルダを指定)
opt
* 初期設定
初期設定では処理を実行すると「Retrieval-based-Voice-Conversion-WebUI」フォルダ内に「opt」フォルダが作成され、「opt」フォルダ内に処理後の音源が出力されます。
必要に応じて名前を変更(半角英数)してください。
Path to the Feature index file. Leave blank to use the selected result from the dropdown:
(特徴インデックスファイルへのパス – ドロップダウンから選択された結果を使用する場合は、空白のままにします)
未記入
(一例です)
Auto-detect index path and select from the dropdown:
(特徴インデックスファイルへのパスを自動検出:ドロップダウンで選択)
logs/amitaro/added_IVF27_Flat_nprobe_1_amitaro_v2.index
(一例です)
* 学習の際に「Enter the experiment name:」(出力される学習モデルの名前)を「amitaro」にした場合の例
*「Retrieval-based-Voice-Conversion-WebUI」のフォルダの「logs」内の学習モデル名の該当フォルダにある「added〜.index」のファイルのパスが自動的に反映されます
* 2回目の学習で「Enter the experiment name:」(出力される学習モデルの名前)を「amitaro2」にした場合には、
logs/amitaro2/added_〜_amitaro2_v2.index
のファイルを選ぶようにします。
Select the pitch extraction algorithm (‘pm’: faster extraction but lower-quality speech; ‘harvest’: better bass but extremely slow; ‘crepe’: better quality but GPU intensive), ‘rmvpe” best quality. and little GPU requirement:
(ピッチ抽出のアルゴリズムを選択する -「pm」: 抽出が最速だが音声の品質は低い。「harvest」: 品質は向上するが、抽出が最も遅い。「crepe」:品質は最高だが、GPUに負荷がかかります。「rmvpe」:GPU消費も少なく最高品質)
rmvpe
Export file format:
(出力するファイル形式を設定)
wav
出力するファイル形式を「wav」「flac」「mp3」「m4a」から選択できます。
Enter the path of the audio folder to be processed(copy it from the address bar of the file manager):
(処理するオーディオが入ったフォルダのパスを入力します – ファイル・マネージャーのアドレス・バーからコピーしてください)
/workspace/Retrieval-based-Voice-Conversion-WebUI/voice
*「Retrieval-based-Voice-Conversion-WebUI」内の「voice」フォルダの中に「originalvoice.wav」などの音声ファイルを配置した場合の例
Resample the output audio in post-processing to the final sample rate. Set to 0 for no resampling:
(後処理で音声を異なるサンプルレートにリサンプリング – 再標本化する。設定を「0」にした場合にはリサンプリングは実行しません)
0
(一例です)
リサンプリングしない場合の例です。
チュートリアルでは「Train」(学習)の際に「Target sample rate:」(サンプリングレート・サンプル周波数)を「48k」にしていますので、「48k」が反映されます。
変換後の音声を「40kHz」にしたい場合には、ここの設定を「40000」にします。
Adjust the volume envelope scaling. Closer to 0, the more it mimicks the volume of the original vocals. Can help mask noise and make volume sound more natural when set relatively low. Closer to 1 will be more of a consistently loud volume:
(ボリューム・エンベロープのスケーリングを調整します。「0」に近いほど、オリジナルのボーカルの音声を模倣します。比較的小さい値に設定すれば、ノイズをマスキングし、音量をより自然にすることができます。また、「1」に近いほど音量が安定します)
0.25
(一例です)
「Batch Inference」(複数の音声ファイルのモデル推論の場合)の画面では、初期設定は「1」に設定されているようでしたが、「Single Inference」(1つの音声ファイルのモデル推論の場合)と同じにするために、初期設定を「0.25」に修正しておきました。
おそらく、ここの設定を「1未満」にするとボリュームエンベロープ(時間に対する音声ボリュームの設定)を元の音声寄りにできるようにする設定ではないかと思います。
数値を変えて音声がどうなるか?色々と試してみてください。
Protect voiceless consonants and breath sounds to prevent artifacts such as tearing in electronic music. Set to 0.5 to disable. Decrease the value to increase protection, but it may reduce indexing accuracy:
(無声子音と呼吸音を保護し、電子音の途切れなどのアーティファクトを防止します。「0.5」に設定した場合には保護機能を無効化します。ここの値を小さくすると保護機能が強化されますが、特徴インデックスファイルの効果が低下する可能性があります)
0.33
(一例です)
注:無声子音(むせいしいん)
:声帯振動を伴わない子音のこと。声門が開いた状態で呼吸が通過する
初期設定は「0.33」に設定されているようです。
数値を変えて音声がどうなるか?色々と試してみてください。
If >=3: apply median filtering to the harvested pitch results. The value represents the filter radius and can reduce breathiness.
(3以上の場合:ピッチの結果にf0にメディアンフィルターを適用します。ここの数値はフィルターの半径を表し、息苦しさを軽減することができます)
3
*f0:基本周波数
*メディアンフィルター:おそらくノイズ除去
メディアンフィルターという、息苦しい感じの音声を軽減させるフィルターを適用するか設定できるようです。
「0〜7」の範囲で設定できます。
Search feature ratio (controls accent strength, too high has artifacting)
(検索特徴率:サーチ・検索機能の割合:アクセントの強さをコントロールします。高すぎるとアーチファクトが発生します)
0.5
* アーチファクト:ノイズ(雑音)
「Batch Inference」(複数の音声ファイルのモデル推論の場合)の画面では、初期設定は「1」に設定されているようでしたが、「Single Inference」(1つの音声ファイルのモデル推論の場合)と同じにするために、初期設定を「0.76」に修正しておきました。
数値を変えて音声がどうなるか?色々と試してみてください。
ただ、チュートリアルの設定(データセットの音声ファイル10個・学習10回)で試した範囲では、「Retrieval Feature Ratio:」(検索特徴率)を「1」にすると、途中で雑音が入ることもあるようでした…
ここの設定を「0.5」あたりまで下げると、気になりませんでした。
検索特徴率を「1」に近づけるほど、今回学習させた「学習モデル」の特徴に偏らせるようです。
参考情報として、1〜3秒の音声ファイル200個(25MB:16ビット・モノラル・44.1kHz)を使って100回学習(48k・ピッチガイダンスあり・rmvpe_gpu・Batch size:20)させた学習モデルを使うと、ここの値を「1」に近づけてもアーチファクトが気にならなくなりました。音声ファイルを増やし、学習回数を増やすと音質が向上するようでした。
学習の際にJupyterLab上に出力された学習の指標の1つである損失関数の値の経過を見てみると
・「epoch=1 loss_disc=4.171 loss_gen=2.992」
(学習1回目・dの損失関数=4.171・gの損失関数=2.992)
* d:discriminator(弁別器・識別器)
* g:generator(生成器)
* 損失関数:0に近づくほど性能が良い
↓
・「epoch=80 loss_disc=3.619 loss_gen=3.703」
(学習80回目・dの損失関数=3.619・gの損失関数=3.703)
* 20回ごとに損失関数の値が記録されるようでしたが、100回目は記録されていないようでしたので最終結果は不明です…,
ということで「dの損失関数」の値が良くなっているようでした。
追加で学習回数を増やした際には、損失関数の値がどうなっているのかをチェックするといいかもしれません。
損失関数の値が頭打ちになった際には、それ以上学習しても性能が上がらない可能性が考えられます。
設定が完了したら
・Convert
(変換)
のボタンをクリックします。
チュートリアルの設定の場合には「opt」フォルダ内に変換後の音声ファイルが出力されます。
(変換前の音声ファイルが入っている「voice」フォルダ内に「originalvoice.wav」を入れていた場合、「opt」フォルダ内に音声変換後の「originalvoice.wav」の音声ファイルが出力されます)
【RVC v2モデル対応版】
RVC WebUIの使い方:学習モデルの融合 – ckpt Processing
* 画像をクリックすると拡大表示されます
「ckpt Processing」(チェックポイント処理)では、RVC WebUIで作成したPyTorchの学習モデルであるpth形式ファイル同士を融合することができます。
「ckpt Processing」(チェックポイント処理)のタブをクリックし、以下のように設定します。
(一例です)
【Model fusion, can be used to test timbre fusion】
(学習モデルの融合、音源のマージテストに使用できます)
Model fusion, can be used to test timbre fusion
Path to Model A:
(RVC WebUIで作成したpth形式の学習モデルのファイルのパスA)
/workspace/Retrieval-based-Voice-Conversion-WebUI/assets/weights/amitaroA.pth
融合したい学習モデルを指定します。
Path to Model B:
(RVC WebUIで作成したpth形式の学習モデルのファイルのパスB)
/workspace/Retrieval-based-Voice-Conversion-WebUI/assets/weights/amitaroB.pth
「A model path:(RVC WebUIで作成したpth形式の学習モデルのファイルのパスA)で指定した学習モデルと同じサンプリングレートの学習モデルを指定します。
融合する学習モデルは「Train」(学習)の際に設定した「Target sample rate:」(サンプリングレート・サンプル周波数)が同じものにしないとエラーとなりますので注意してください。
その他にもDoes the model have pitch guidance (singing must, voice can not.):(ピッチガイダンスの設定 – ピッチガイダンスの有無:歌唱時は必須、話し声時は任意)も同じでないとエラーとなるようでした。
RVC WebUI上のエラー表示
Fail to merge the models. The model architectures are not the same.
(学習モデルの融合に失敗しました。2つのモデルのアーキテクチャに違いがあります)
Weight (w) for Model A:
(Aモデルの占める割合)
0.5
融合後の学習モデルにおける「学習モデルA」の比率を設定します。
Target sample rate:
(サンプリングレート・サンプル周波数)
48k
基本的に「Train」(学習)の際に設定した「Target sample rate:」(サンプリングレート・サンプル周波数)が同じにしますが、お好みに応じて「40k」(40000Hz)「48k」(48000Hz)から選択してみてください。
Whether the model has pitch guidance:
(ピッチガイダンスの設定 – ピッチガイダンスの有無:歌唱時は必須、話し声時は任意)
yes
融合後の学習モデルにピッチガイダンス(音高ガイド)を付けるかどうかどうかを設定します。
Model information to be placed:
(挿入するモデル情報)
未入力
モデル情報を追加したい場合に設定します。
試した感じでは、例として以下の学習モデル情報の
出力例:
模型信息:
采样率:〜k
模型是否输入音高引导:〜
版本:〜
* 日本語訳は後述
「模型信息」(モデル情報)のところの情報を書き換えられるようでした。
Saved model name(without extension):
(融合後の学習モデル名 – 拡張子「.pth」なしの名前)
fusion-amitaro
半角英数で名前を入力します。ここで設定した名前に「.pth」(拡張子)が付いた学習モデル(例:「fusion-amitaro.pth」)が作成されます。
Model architecture version:
(RVCのバージョン設定)
v2
学習モデルを融合したい場合には、RVCのバージョンが同じ学習モデルを使う必要があります。
基本的には「Train」(学習)の際に「Version:」(RVCのバージョン設定)の項目で設定したバージョンに合わせます。
同じRVCモデルのバージョンの学習モデルであれば、「RVC v2モデル」だったものを「RVC v1モデル」に変えたりすることもできるようでした。また、その逆も可能でした。
設定ができたら「Fusion」ボタンをクリックします。
処理が完了後に「weight」フォルダ内に融合された学習モデル「fusion-amitaro.pth」が出力されます。
【Modify model information(only supported for small model files extracted from the ‘weights’ folder)】
(モデル情報の修正 -「weights」フォルダに出力される小さな学習モデルのファイルのみ対応)
Path to Model:
(RVC WebUIで作成したpth形式の学習モデルのファイルのパス)
/workspace/Retrieval-based-Voice-Conversion-WebUI/assets/weights/amitaro.pth
学習モデルの情報を修正したい学習モデルのファイルのパスを設定します。
Model information to be modified:
(変更するモデル情報)
10data-10epoch-batch3-rmvpegpu
モデル情報を追加したい場合に設定します。
試した感じでは、例として以下の学習モデル情報の
出力例:
模型信息:
采样率:〜k
模型是否输入音高引导:〜
版本:〜
「模型信息」(モデル情報)のところの情報を書き換えられるようでした。
保存すると以下のようになる予定です。
出力例:
模型信息:10data-10epoch-batch3-harvest
采样率:48k
模型是否输入音高引导:1
版本:v2
Save file name(default: same as the source file):
(保存するファイル名 – 拡張子「.pth」ありの名前:空欄にすると元のファイル名と同じ名前になります)
amitarotest.pth
学習モデル名を変更したい場合に、学習モデル名を半角英数で入力します。
名前を変更したい場合には「amitarotest.pth」などと拡張子「.pth」ありの名前を指定します。
設定ができたら「Modify」(変更)ボタンをクリックします。
処理が完了後に、指定した学習モデルのモデル情報が変更されます。
【View model information(only supported for small model files extracted from the ‘weights’ folder)】
(モデル情報を表示する:「weights」フォルダにある小さい学習モデルファイルのみ対応)
Path to Model:
(RVC WebUIで作成したpth形式の学習モデルのファイルのパス)
/workspace/Retrieval-based-Voice-Conversion-WebUI/assets/weights/amitaro.pth
* チュートリアルで作成した学習モデル「amitaro.pth」の例
学習モデルの情報を表示させたい学習モデルのファイルのパスを設定します。
設定ができたら「View」(表示)ボタンをクリックします。
指定した学習モデルのモデル情報が「Export message」(メッセージの出力)に表示されます。
出力例:
模型信息:10epoch
采样率:48k
模型是否输入音高引导:1
版本:v2
日本語訳すると
出力例(日本語訳):
学習回数:10回
サンプリングレート:48k
ピッチガイダンス:1(あり)
RVCモデルのバージョン:v2
注:「ピッチガイダンス(音高ガイド):0」はピッチガイダンスなしの設定
ということで、学習回数・サンプル周波数・ピッチガイダンスの有無・RVCモデルのバージョンなどの情報が記録されているようです。
【Model extraction(enter the path of the large file model under the logs folder), which is suitable for half of the training and does not want to train the model without automatically extracting and saving the small file model, or if you want to test the intermediate model】
(モデル抽出:「logs」フォルダ内に出力される大きなファイル「D_〜.pth「G_〜.pth」のモデルパスを入力します。モデルを半分までトレーニングし、自動的に小さいファイルモデルを保存しなかったり、中間モデルをテストしたい場合に適用)
Model path:
(RVC WebUIで作成したpth形式の学習モデルのファイルのパス)
/workspace/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro/G_50.pth
「logs」フォルダ内に出力される該当学習モデルフォルダに出力されるチェックポイントファイル(中間モデル)のパスを設定します。
チュートリアルの設定は「Input experiment name:」(出力される学習モデルの名前)を「amitaro」にし、学習の10回目で出力されたチェックポイントファイル「G_50.pth」を指定する場合の例です。
「Train」(学習)の際に
Save frequency (save_every_epoch):(学習の状況の保存頻度)
0
にした場合には、「D_〜.pth「G_〜.pth」などのチェックポイントファイルは保存されませんので、ここの機能を使う予定の方は注意してください。
Save name:
(保存するファイル名を設定 – 拡張子「.pth」なしの名前)
f0G48k-amitaro
保存するファイルのファイル名を半角英数で設定します。
今回の設定では「f0G48k-amitaro.pth」というファイルが出力されます。
* f0:ピッチガイダンス(音高ガイド)ありの意味
* 48k:サンプリングレート48000Hzの意味
Target sample rate:
(サンプリングレート・サンプル周波数)
48k
基本的には学習した際のサンプリングレートに合わせますが、お好みに応じて「32k」(32000Hz)「40k」(40000Hz)「48k」(48000Hz)から選択してみてください。
Whether the model has pitch guidance(1: yes, 0: no):
(ピッチガイダンスの設定 – ピッチガイダンスの有無:歌唱時は必須、話し声時は任意 – 「1:有効化」「0:ピッチガイダンスを付けない」)
0
保存するファイルにピッチガイダンス(音高ガイド)を付けるかどうかどうかを設定します。
ピッチガイダンスを有効化する場合には「1」(yes)を設定します。ピッチガイダンスを付けない場合には「0」(no)にします。
ここの機能は、モデル情報の「模型是否输入音高引导:」(ピッチガイダンス)の設定に反映されるようでした。
Model architecture version:
(RVCのバージョン設定)
v2
基本的には「Train」(学習)の際に「Version:」(RVCのバージョン設定)の項目で設定したバージョンに合わせます。
試した感じでは「RVC v2モデル」を「RVC v1モデル」に変えることもできるようでした。また、その逆も可能でした。
Model information to be placed:
(挿入するモデル情報)
未入力
モデル情報を追加したい場合に設定します。
ここを空欄にすると「Extracted model.」(出力されたモデル)とモデル情報が追加されます。
設定ができたら「Extract」(出力)ボタンをクリックします。
指定したファイル名で「assets」フォルダ内にある「weights」フォルダの中にファイルが出力されます。
ただ、「Model Inference」(モデル推論)で推論をしようとすると「Please specify the speaker/singer ID:」(識別IDの設定)などがエラー表示となり、RVC WebUI上でモデル推論はできないようでした。
おそらくですが、「Train」(学習)の際に、自動的に反映されている
Load pre-trained base model G path.:
(事前学習モデルGのファイルのパスを指定)
assets/pretrained_v2/f0G48k.pth
* RVC v2モデル(48kHz)を指定した場合の設定例
Load pre-trained base model D path.:
(事前学習モデルDのファイルのパスをパス)
assets/pretrained_v2/f0D40k.pth
* RVC v2モデル(48kHz)を指定した場合の設定例
などの事前学習モデルを、ここの手順で作れるのだと思われます。
【RVC v2モデル対応版】
RVC WebUIの使い方:学習モデルのONNX化 – Export Onnx
「Export Onnx」(ONNX形式ファイルを出力)では、RVC WebUIで作成したPyTorchの学習モデルであるpth形式ファイルを、ONNX(Open Neural Network eXchange:オニキス)形式の学習モデルに変換できます。
「Export Onnx」(ONNX形式ファイルを出力)のタブをクリックし、以下のように設定します。
(一例です)
・RVC Model Path:
(RVC WebUIで作成したpth形式の学習モデルのファイルのパス)
/workspace/Retrieval-based-Voice-Conversion-WebUI/assets/weights/amitaro.pth
*「Enter the experiment name:」(出力される学習モデルの名前)で「amitaro」という名前に設定した場合の例
・Onnx Export Path:
(ONNX形式に変換後の学習モデルのファイルのパス:ONNX形式にしたファイル名まで入力)
/workspace/Retrieval-based-Voice-Conversion-WebUI/assets/weights/amitaro.onnx
*「amitaro.onnx」という名前でONNX形式のファイルを「weights」フォルダに出力する設定した場合の例
設定ができたら「Export Onnx Model」(ONNX形式の学習モデルのファイルを出力)をクリックすると「Onnx Export Path:」(ONNX形式に変換後の学習モデルのファイルのパス)で指定した場所にファイルが出力されます。
【オリジナル版RVC v2モデル】RunPod編:RVC WebUIの設定の解説動画へのコメントと対応例など
視聴者の方から動画へのコメントをいただけるようでしたら、回答などを、ここにまとめていく予定です。
by 子供プログラマー
:【RunPod編】RVC WebUIをはじめよう – AIボイスチェンジャー(一覧)