【RVC v2モデル対応版】日本人のためのRVC WebUIの使い方:AIボイスチェンジャー

【RVC v2モデル対応版】日本人のためのRVC WebUIの使い方:AIボイスチェンジャー

 

Contents - 目次(もくじ)

【動画で解説】RVC v2モデル対応版:オリジナル版RVC WebUIの使い方
– AIボイスチェンジャー
RVC v2 model Edition RVC WebUI – AI Voice Changer Tutorial

 

 

【現代の魔法】RVC v2モデル対応版 – RVC WebUIの使い方
RVC v2 model supported RVC WebUI – AI Voice Changer Tutorial


視聴時間:39分26秒

文字情報だけではわかりにくい場合に、RVC v2モデル対応版のRVC WebUIを導入前に解説動画をご活用いただけますと幸いです。
【手順2:依存関係のインストール】のコードを修正しておきましたので、2024年9月3日以降の最終更新版のチュートリアルコードをGoogle「ドライブにコピーを保存」を実行しRVC WebUIを起動してみてください。
【2024年9月12日時点の状況】学習の際には、「One-click Training」ではなく

・各処理ボタンで個別に処理を進める
*手順:Process data → Feature extraction → Train Model

と学習ができるとのことでした。
また、「Train model」でエラーになっても、そのまま無視して「Train feature index」を押すと「学習モデル」(pthファイル)が作成され、推論の際に「Model Inference」で使用することもできたといった報告もいただいています。
その他にも、推論の際には

・1分程度の音声ファイルを使う

とボイスチェンジできたという報告もいただいています。

 




 

【RVC v2モデル対応版:RVC WebUIの初学者(初心者)のためのチュートリアル動画の内容】

0:00 はじめに
1:06 RVC WebUI起動編
2:22 コードの実行と注意点
5:15 データセットなどの準備
10:56 【対処例】Google Colaboratoryにファイルが反映されない
11:37 RVC WebUIの起動
11:53 【補足】Gradioのリンクについて
12:50 【補足】RVC WebUIの日本語化について
15:02 RVC WebUIの使い方編
15:48 データセットの学習
27:00 推論(AIボイスチェンジ)
36:33 【補足】以前作成した学習モデルを使う方法
38:15 RVC WebUI公式のQ&Aについて
38:46 おわりに

 

【確認事象:2023年5月30日】

オリジナル版のRVC WebUIの2023年5月30日のアップデートでは

1.ボーカルリムーバーの表記が中国語化(英語版にした際に翻訳が未実施のため)
→2023年6月2日時点では、英語に翻訳化済み。

2.推論で「crepe」「Protect voiceless consonant and breath, less artifact. 無声子音と息を保護し、アーティファクトを軽減」の追加

が行われていました。

確認時点では、

1.学習(Train)を実行中にデータセットのファイルを読み込む際に「RuntimeError: Failed to load audio: ffmpeg error (see stderr output for detail)」が表示されるようでしたが、学習は可能でした。

2.推論(Model Inference)の「Select pitch extraction algorithm」(ピッチ抽出アルゴリズムの選択)で「crepe」にするとエラーになるようでした。
→「crepe」が使えるように2023年5月31日更新版のGoogle Colaboratoryのコードを修正しておきました。

3.「Export Onnx」の機能では、RVC v2モデルを変換しようとするとエラーになるようでした。
→ 2023年6月16日のアップデートでバグが修正されていました。

経過を見ていきます。
(アップデートに伴いエラーが出て起動ができなかったため、Google Coalaboratoryのコードを改変しています。以前のコードをお使いの方は、最新版のGoogle Coalaboratoryのコードをご活用ください。)

 

【2023年6月7日時点】 → 既に開発者の方により解決済みです。

記事の手順通り実行すると以下のエラー

エラー表示:
File “/content/Retrieval-based-Voice-Conversion-WebUI/train/process_ckpt.py”, line 20, in savee
hpt.data.filter_length // 2 + 1,
NameError: name ‘hpt’ is not defined

が出るようでした。
理由としては、

・process_ckpt.py

というファイルがアップデート直後であり、

「hpt」

を間違えて

「hps」

と定義されているからのようでした。
開発者の方が、タイプミスに気が付かれるまでの暫定的な対応例としては、Google Colaboatory上で

・process_ckpt.py
場所:「Retrieval-based-Voice-Conversion-WebUI」ファイルダの「train」内の「process_ckpt.py

のファイルをダブルクリックし編集画面を起動します。
11行目のコード

def savee(ckpt, sr, if_f0, name, epoch, version, hps):

「hps」

「hpt」

に修正し、保存すると正常に動作するようでした。
この説明では難しい方は、以下のGitHubのRVC WebUIのオリジナルコードの

process_ckpt.py – RVC-Project/Retrieval-based-Voice-Conversion-WebUI | GitHub

修正状況をチェックし、上述のタイプミスが修正されたのを確認後にプログラムを実行してみてください。

 

【追記:エラー対応のチュートリアル動画を公開】

動画で、対応例の手順を解説しておきました。文字情報ではわかりにくい場合などにお役立てください。

【エラー対応例】RVC WebUIの「NameError: name ‘hpt’ is not defined」- v2 Model Errors and Examples of Solutions by RehabC – デジタルで、遊ぶ。(YouTube動画)
視聴時間:1分34秒

→ 結局は「hpt」と記述されたいたところが「hps」に修正されたようでした。

 

【確認事象:2023年6月16日】

RVC WebUIを起動する際のエラー

AttributeError: module ‘gradio.components’ has no attribute ‘FormComponent’. Did you mean: ‘IOComponent’?

が出ないように修正しておきました。

 

【確認事象:2023年7月18日】

依存関係をインストールする際のエラー

ERROR: Could not build wheels for pyworld, which is required to install pyproject.toml-based projects

や、RVC WebUIを起動する際のエラー

ModuleNotFoundError: No module named ‘faiss’

が出ないように修正しておきました。

 

【確認事象:2023年12月26日】

【手順2:依存関係のインストール】のコードを修正しておきました。
RVC WebUIを起動できるかどうかは、検証できていませんので、該当のチュートリアル動画にフィードバックいただけますと幸いです。

→ コメントでフィードバックくださった方によると、2023年12月26日時点では、ランタイムの種類によっては「Train」はできたようでした。

追記 – 2023年12月27日時点:
Train」の際に、学習が成功した出力

・INFO:モデル名:Training is done. The program is closed.
・INFO:モデル名: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 ‘

になるようでしたが、pth・index・npyファイルが作成されないとのことでした。

*無料版では、使えません。現時点(2023年12月時点)では課金が必要です。

 

【確認事象:2024年1月28日】

【手順5】【手順6】のコードを修正(ダウンロード先の修正)しておきました。

*無料版では、使えません。現時点(2024年1月時点)では課金が必要です。

 

【確認事象:2024年2月7日】

【手順2】のコードを修正(gradio_clientのダウングレード)しておきました。
コメントくださった方によると現時点では、学習・推論とも可能とのことでした。

*無料版では、使えません。現時点(2024年2月時点)では課金が必要です。

 

【確認事象:2024年3月9日】

【手順2】のコードで

ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
chex 0.1.85 requires numpy>=1.24.1, but you have numpy 1.23.5 which is incompatible.

という、「chex」と「numpy」のバージョンによる競合エラーが出ていましたので、コードを追記・修正しておきました。
コメントくださった方は、詳しい問題報告ありがとうございました。

*無料版では、使えません。現時点(2024年3月時点)では課金が必要です。

 

【確認事象:2024年3月18日】

【手順2】のコードで「PyTorch」のバージョンによる競合エラーが出ていましたので、コードを追記・修正しておきました。
コメントくださった方は、問題報告ありがとうございました。

*無料版では、使えません。現時点(2024年3月時点)では課金が必要です。

 

【確認事象:2024年4月4日】

【手順2】のコードで「optax」「pandas-stubs」関連の競合エラーが出ていましたので、コードを追記・修正しておきました。
コメントで教えてくださった方は、問題報告ありがとうございました。

*無料版では、使えません。現時点(2024年4月時点)では課金が必要です。

 

【確認事象:2024年6月13日】

【手順2】のコードで「numba」関連の競合エラーが出ていましたので、コードを追記・修正しておきました。
コメントで教えてくださった方は、問題報告ありがとうございました。

*無料版では、使えません。現時点(2024年6月時点)では課金が必要です。

 

【確認事象:2024年7月27日】

omegaconf」関連の依存関係のエラー。「ERROR: Cannot install fairseq and fairseq==0.12.2」などを修正しておきました。
(【手順2:依存関係のインストール】のコードを修正)

*無料版では、使えません。現時点(2024年7月時点)では課金が必要です。

 

【確認事象:2024年8月30日・31日】

typing-extensions=4.6.0」関連の依存関係のエラー対策としてコードの位置を修正しておきました。
また、本家のコード変更に伴い「aria2」「torchfcpe」を追加しておきました。
(【手順2:依存関係のインストール】のコードを修正)

*無料版では、使えません。現時点(2024年8月時点)では課金が必要です。

 

【確認事象:2024年9月1日】

numpy」のバージョンが1ヶ月前に比べアップデートされていたので「numpy==1.23.5」のバージョンにダウングレードできるようにコードを修正しました。
また、本家のコードの依存関係のライブラリのバージョンと同じになるように指定しておきました。

*無料版では、使えません。現時点(2024年9月時点)では課金が必要です。

 

【確認事象:2024年9月3日】

numpy==1.23.5」では、依存関係の競合エラーが回避できないので「numpy==1.24.4」にダウングレードできるようにコードを修正しました。
また、1ヶ月前に比べ「tensorflow」のバージョンも「tensorflow==2.17.0」にアップデートされていたため「tensorflow==2.15.0」のバージョンにダウングレードできるようにコードを修正しました。
(【手順2:依存関係のインストール】のコードを修正)

*無料版では、使えません。現時点(2024年9月時点)では課金が必要です。

2024年9月9日時点:
学習の際には、「One-click Training」ではなく

・各処理ボタンで個別に処理を進める
*手順:Process data → Feature extraction → Train Model

と学習ができるとのことでした。
その他にも、推論の際には

・1分程度の音声ファイルを使う

とボイスチェンジできたという報告もいただいています。

 

2024年10月2日時点:
推論の際に「Model Inference」でエラーとなっても、「VC Client」では作成した学習モデルは使えたという報告もいただいています。

 

2024年10月3日時点:
推論の際に「Model Inference」でエラーとなっても、何度か「Convert」を押し続けているとボイスチェンジ後の音声を出力することもあるという報告もいただいています。

 

 

変化のスピードが凄い…
RVC WebUI – AIボイスチェンジャーのチュートリアル

 

 

2023年4月に公開されたAIボイスチェンジャーこと

RVC WebUI:
RVC-Project(旧liujing04)/Retrieval-based-Voice-Conversion-WebUI(The MIT License)| GitHub

を使いたくても、

一体どうやって使ったらいいのかわからない・・・

などと、悲しい思いをされている方も多いのではないかと思いましたので、RVC WebUIをGoogle Colaboratory上で動かしてボイスチェンジを楽しむ方法を以下の記事

RVC v1モデル対応編のチュートリアル記事
日本人のためのRVC WebUIの使い方:簡単オリジナルAIボイスチェンジャー作成

にまとめさせていただきました。
公開後、2ヶ月も経たないうちに、RVC WebUIで使える機能が

追加されたり….

消えたり….

と、目まぐるしい変化が起こっており、日本人の方をはじめとする開発者の皆さんの創意工夫や関心の高さが垣間見られます。

自分自身も、音声AIの敷居を下げるべく、チュートリアル記事や動画を公開させていただいていますが、

どこまで、変化についていけるか・・・

日々、葛藤しながら、記事や動画などのコンテンツを考えています。

RVC v1モデルでは、英語のデータセットで学習させた事前学習モデルを使用していることもあり、どうしても英語の訛りが出てしまいやすいようでしたが、RVC v2モデルでは、高解像度の音声を判別できるように工夫されたことにより、英語のデータセットで学習させた事前学習モデルを使っても、日本語の発音がRVC v1モデルの時に比べて明瞭になってきているとのことです。

RVC v1モデルよりも高性能なRVC v2モデルも公開され、

RVC v2モデルに対応したRVC WebUIのチュートリアルプログラムや記事・動画もあった方がいいのだろうなあ・・・」

と思いながら日々を過ごしていましたが、ようやく作業にとりかかる気力が湧いてきました。
そこで今回は、2023年5月中旬にリリースされた

✔︎ RVC公式の事前学習済みモデルのバージョン2(RVC v2モデル)

を搭載したRVC WebUIに関心のある日本人の方が、高性能のAIボイスチェンジャーを気軽に楽しめるようにするために、Windows・Macなどのパソコンの種類を問わずに使えるGoogle Colaboratoryを使ってRVC WebUIを起動し、オリジナルのAIボイスチェンジャーを作る方法(やり方)をまとめておこうと思います。

一連の情報が、AIボイスチェンジャーに触れるきっかけになることがありましたら幸いです。

 

【RVC v2 model supported Original Edition】
How to Use RVC WebUI App.
Free AI Voice Changer Tutorial for Machine Learning Python-PyTorch Programming: Male & Female(Girl)

 

 

サンプルコードリンク・プログラムのライセンス

 

 

RVC WebUIを日本人の方が気軽に試せるように、2023年5月中旬にリリースされたRVC公式の事前学習済みモデルのバージョン2(RVC v2モデル)に対応させた使い方の解説などを入れたサンプルコードを公開しておきました。
オリジナルのRVC WebUIを使って、RVC v2モデルも試してみたい日本人のAI初学者の方の参考になることがありましたら幸いです。

RVC v2モデル対応のGoogle Colaboratoryのサンプルコード:
v2-RVC-WebUI-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

 

サンプルコード「v2-RVC-WebUI-for-Japanese-AI-beginners.ipynb」のライセンス:

The MIT License

Copyright 2023 child programmer

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

 

 

チュートリアルで使う音声素材ダウンロード

 

 

【チュートリアルで使わせていただいている音声素材について】

自分好みのオリジナルのAIボイスチェンジャーを作る前に、まずは、試しに一連の操作手順を学びたいと思っている方も多いのではないかと思います。
情報を探してみたところボイスチェンジャーの利用の許可をくださっている方もいるようでしたので、チュートリアルでは、以下の音声を学習に活用させていただきました。

 

AIボイスチェンジャー学習用の声(女性の声)の音声素材ダウンロード:
あみたろの声素材(セリフ素材)一括ダウンロード | あみたろの声素材工房
(PCM44,100Hz/16ビット/モノラルのWAV形式)
クレジット:あみたろの声素材工房 https://amitaro.net/

また、「あみたろ」さんの声に変換する前の音声素材は、こちらからダウンロードできるようにしておきましたので、必要に応じてご活用ください。

推論(AIボイスチェンジ)を試す声(男性の声)の音声素材ダウンロード:


(サンプルレート48,000Hz/24ビット/ステレオのWAV形式)

尚、変換する前の音声素材は、こちらの音声から一部抜粋させていただきました。

推論(ボイスチェンジ)を試す用の声素材元:
Kyubyong/css10(Apache-2.0 license)| GitHub

 

 

【RVC v2モデル対応版】
RVC WebUIの起動方法・導入方法 – 最終更新:2024年9月3日

 

 

【手順1:GPUの確認】

 

 

以下のコマンドでGPUの確認ができない場合には、Google Colaboratoryのメニューから

ランタイム – ランタイムの変更 – ハードウェア アクセラレータ

で「GPU」を選択後に、保存し、再度コードを実行してみてください。

実行コード

!nvidia-smi
!nvcc -V
!free -h

 

出力結果

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12    Driver Version: 525.85.12    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |
| N/A   51C    P8    10W /  70W |      0MiB / 15360MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
              total        used        free      shared  buff/cache   available
Mem:           12Gi       636Mi       9.0Gi       1.0Mi       3.1Gi        11Gi
Swap:            0B          0B          0B

 

 

【手順2:依存関係のインストール】

 

 

2024年9月1日時点で、オリジナル版のRVC WebUIの「requirements.txt」の情報を参考に依存関係のインストールのコードを改変し、依存関係のインストールの際にエラーが出ないように修正しておきました。

2024年9月3日時点:
numpy==1.23.5」では依存関係の競合エラーが回避できないので「numpy==1.24.4」にダウングレードする仕様にコードを修正しました。

実行コード

# 2024年9月3日:「tensorflow==2.15.0」を指定(「tensorflow==2.17.0」からダウングレード)し依存関係の調整
!pip3 install tensorflow==2.15.0 tf-keras==2.15.1 tensorstore==0.1.45 orbax-checkpoint==0.4.4

# 2024年7月27日時点:「fairseq 0.12.2 depends on omegaconf<2.1」などのエラー対策としてGoogle Colaboratoryのpipバージョンpip==24.1.2をダウングレード
!python3 -m pip install --upgrade pip==22.3
# 2024年7月27日時点:omegaconfのバージョン指定
!pip3 install omegaconf==2.0.6

!pip3 install jedi==0.19.1
!apt-get -y install build-essential python3-dev ffmpeg
!pip3 install torch==2.1.0 torchtext==0.16.0 torchvision==0.16.0 torchaudio==2.1.0 # PyTorchのバージョンを2.1.0にダウングレード+依存関係の調整
!pip3 install optax==0.2.1 # chex==0.1.7が使えるoptaxのバージョンを指定
!pip3 install chex==0.1.7 # numpy==1.23.5(1.25.2)(1.24.4)が使えるchsxのバージョンを指定
!pip3 install pandas-stubs==2.0.1.230501 # numpy==1.23.5(1.25.2)(1.24.4)が使えるpandas-stubsのバージョンを指定

# 2024年9月1日:以下のコードを無効化
# 2024年7月27日:typeguard関連のエラー・「Cannot install fairseq and fairseq==0.12.2」対策
# 2024年8月30日:「typing-extensions=4.6.0」関連のエラー対策でコードの位置を変更
# !pip3 install typeguard==3.0.2 inflect==6.0.5 albumentations==1.3.1 albucore==0.0.5

# 2024年9月3日:依存関係の競合エラー回避のため「numpy==1.24.4」「numba>=0.57.0」「llvmlite==0.43.0」を指定
!pip3 install numpy==1.24.4 numba>=0.57.0 llvmlite==0.43.0

# 2024年9月1日:「numpy==1.23.5」の競合エラーのためalbucoreを削除 
# → 2023年9月3日:「numpy==1.24.4」の変更に伴いalbucoreを復旧
!pip3 install typeguard==3.0.2 inflect==6.0.5 albumentations==1.3.1 albucore==0.0.5

# # 2024年9月1日:以下の対策
# # rmm-cu12 24.4.0 requires numba>=0.57, but you have numba 0.56.4 which is incompatible.
# # cudf-cu12 24.4.1 requires numba>=0.57, but you have numba 0.56.4 which is incompatible.
# # albucore 0.0.5 requires numpy>=1.24.4, but you have numpy 1.23.5 which is incompatible.
# # rmm-cu12・cudf-cu12・albucoreをアンインストール(それともrmm-cu12 cudf-cu12は対応バージョンを探す必要あるか?経過観察中・・・)
# 2024年9月3日:アンインストールするとRVC WebUI起動時に以下の表示になるとのこと
# Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
# Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
# Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
# そのため以下のコードを無効化しアンインストールをやめる
# # !pip3 uninstall rmm-cu12 cudf-cu12 albucore -y

!pip3 install kaleido==0.2.1 fastapi==0.88 cohere==4.39 tiktoken==0.5.2 tensorflow-probability==0.20.1 typing-extensions==4.6.0 openai==1.5.0 python-multipart==0.0.6 uvicorn==0.25.0 # 追加「lida 0.0.10 requires」などの対策

# 2024年9月1日:以下のコードを無効化
# # numbaの競合エラー回避目的で「numba==0.56.4」を「numba」(2024年7月〜9月1日時点:numba==0.60.0)へ変更。numpyのバージョンを未指定へ変更(2024年6月13日実行時点 1.25.2 → 2024年9月1日時点:numpy==1.26.4)
# !pip3 install faiss-cpu==1.7.3 fairseq gradio==3.34.0 ffmpy==0.3.1 ffmpeg-python>=0.2.0 praat-parselmouth>=0.4.2 pyworld==0.3.2 numpy==1.23.5 numba==0.56.4 librosa==0.9.1 tensorboardX tensorboard onnxruntime-gpu==1.16.3

# # 2024年9月1日:2024年8月末からnumpyのバージョンがアップグレードされているので「numpy==1.23.5」「numba==0.56.4」のバージョン指定(ダウングレード)とする
# !pip3 install faiss-cpu==1.7.3 fairseq gradio==3.34.0 ffmpy==0.3.1 ffmpeg-python>=0.2.0 praat-parselmouth>=0.4.2 pyworld==0.3.2 numpy==1.23.5 numba==0.56.4 librosa==0.9.1 tensorboardX tensorboard onnxruntime-gpu==1.16.3

# 2024年9月3日:以下の競合エラーが出るので
# rmm-cu12 24.4.0 requires numba>=0.57
# cudf-cu12 24.4.1 requires numba>=0.57
# albucore 0.0.5 requires numpy>=1.24.4
# numpy・numbaの記述をここから削除し、ここのコードから移動
!pip3 install faiss-cpu==1.7.3 fairseq gradio==3.34.0 ffmpy==0.3.1 ffmpeg-python>=0.2.0 praat-parselmouth>=0.4.2 pyworld==0.3.2 librosa==0.9.1 tensorboardX tensorboard onnxruntime-gpu==1.16.3

!pip3 install onnx==1.15.0 torchcrepe==0.0.20 python-dotenv>=1.0.0 av
!pip3 install gradio_client==0.8.1 # gradio_client==0.9.0をダウングレード
# 【無効化】numbaの競合エラー回避目的で「llvmlite==0.39.0」を削除(2024年8月31日時点では0.43.0がGoogle Colaboratoryの初期設定でインストール済み)

# # →【無効化:2024年9月3日】2024年9月1日:「numba==0.56.4」に指定したので「llvmlite==0.39.0」を採用
# !pip3 install llvmlite==0.39.0

!pip3 install joblib>=1.1.0 scipy fairseq==0.12.2 Cython pydub>=0.25.1 soundfile>=0.12.1 Jinja2>=3.1.2 json5 Markdown matplotlib>=3.7.0 matplotlib-inline>=0.1.3 Pillow>=9.1.1 resampy>=0.4.2 scikit-learn
!pip3 install tqdm>=4.63.1 tornado>=6.1 Werkzeug>=2.2.3 uc-micro-py>=1.0.1 sympy>=1.11.1 tabulate>=0.8.10 PyYAML>=6.0 pyasn1>=0.4.8 pyasn1-modules>=0.2.8 fsspec>=2022.11.0 absl-py>=1.2.0 audioread uvicorn>=0.21.1
!pip3 install colorama>=0.4.5 httpx
# 2024年8月30日・31日:本家のコード変更に伴い「aria2」を追加・「torchfcpe」も追加
!pip3 install aria2 torchfcpe


print('(実行時点のバージョンです)')
import platform
print('python ' + platform.python_version())

【手順を実行後のバージョン】(2024年9月3日実行時点のバージョンです)
python 3.10.12
PyTorch 2.1.0
torchvision 0.16.0
torchaudio 2.1.0
torchcrepe==0.0.20

 

 

【手順3:RVC WebUIのリポジトリをクローン】

 

 

GitHubから「Retrieval-based-Voice-Conversion-WebUI」のプログラムをGoogle Colaboratoryにコピーします。
日々、開発が進行中のオリジナル版の「Retrieval-based-Voice-Conversion-WebUI」を使います。

実行コード

!git clone https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI
%cd /content/Retrieval-based-Voice-Conversion-WebUI

 

 

【手順4:最新の状態に更新】

 

 

実行コード

!git pull

 

 

【手順5:事前学習モデルなどの準備】

 

 

RVC v2モデル(pretrained_v2)の事前学習モデルの準備では、2023年5〜6月時点では、「40kHz」のみ対応しています。
新たなサンプル周波数のモデルがリリースされれば、適宜、該当コードを有効化予定です。

実行コード

!apt -y install -qq aria2

#pretrained__v1の事前学習モデル
# 2024年1月28日:ダウンロードファイルの配置箇所を修正しておきました。
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/D32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o D32k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/D40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o D40k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/D48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o D48k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/G32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o G32k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/G40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o G40k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/G48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o G48k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0D32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o f0D32k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0D40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o f0D40k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0D48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o f0D48k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o f0G32k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o f0G40k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained -o f0G48k.pth

#pretrained_v2の事前学習モデル:2023年5〜6月時点では、40kHzのみ対応。新たなサンプル周波数のモデルがリリースされれば、適宜、該当コードを有効化予定
#→2023年6月18日にその他のサンプル周波数のモデルもリリースされたようでしたので有効化しておきました。
# 2024年1月28日:ダウンロードファイルの配置箇所を修正しておきました。
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/D32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o D32k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/D40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o D40k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/D48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o D48k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/G32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o G32k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/G40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o G40k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/G48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o G48k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/f0D32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o f0D32k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/f0D40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o f0D40k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/f0D48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o f0D48k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/f0G32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o f0G32k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/f0G40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o f0G40k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained_v2/f0G48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/pretrained_v2 -o f0G48k.pth


#音源分離の学習モデル
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP2-人声vocals+非人声instrumentals.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/uvr5_weights -o HP2-人声vocals+非人声instrumentals.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP5-主旋律人声vocals+其他instrumentals.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/uvr5_weights -o HP5-主旋律人声vocals+其他instrumentals.pth

 

 

【手順6:「hubert_base.pt」・「rmvpe.pt」のダウンロード】

 

 

*注:2023年7月11日確認時点の公開開始時点では「Model Inference:Select the pitch extraction algorithm」で「rmvpe」(最新のRMVPEボーカルピッチ抽出アルゴリズム)を選択するとエラーになります。経過を見ていきます。
*注:2023年7月30日確認時点では、「Train:Select the pitch extraction algorithm」では、「rmvpe」「rmvpe_gpu」を使えることを確認できました。

実行コード

# 2024年1月28日:ダウンロードファイルの配置箇所を修正
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/hubert/ -o hubert_base.pt
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/rmvpe.pt -d /content/Retrieval-based-Voice-Conversion-WebUI/assets/rmvpe/ -o rmvpe.pt

 

 

【手順7:Google Driveのマウント】

 

 

Google Drive上のフォルダ・ファイルを使えるようにします。
以下のコードを実行後に、許可を求められるのでGoogle DriveのGoogleアカウントで「許可」をします。

実行コード

from google.colab import drive
drive.mount('/content/drive')

 

 

【手順8:Google Drive内にデータセットと音声変換させたい音声ファイルを準備】

 

 

Google Drive の「MyDrive」内に

・「dataset

というボイスチェンジしたい音声ファイルが入っている学習予定のデータセットフォルダを用意します。
また、推論(音声変換)を試してみたい音声ファイル(WAV形式 or MP3形式)もアップロードしておきます。

 

【フォルダ構造】

RVC WebUの学習データのデータセットのファイル・フォルダ

dataset
 |— 〜1.wav
 |— 〜2.wav
 |— 〜3.wav
 |— 〜4.wav
 ・
 ・
 ・
 |— 〜10.wav

 

*一例として、「dataset」フォルダ内には短文(句点。までの文章)で区切ったWAV形式(またはMP3形式)の音声ファイルをいくつか入れておきます。
*チュートリアルでは「1〜3秒」の「10個」の音声ファイルで学習していますが、本格的に音声変換したい方は、音声ファイル数や音声再生時間を増やして学習させてみてください。
*RVC公式のQ&Aでは、

データセットの音声の時間は、
・10〜50分程度が推奨のようです。
・高品質のデータセットの場合には、5〜10分程度が推奨のようです。

学習回数は、
・低品質でノイズの入った音声の場合には、20〜30エポック(学習回数)が推奨のようです。
(低品質の音声で学習回数を増やしても音声の品質は向上しないとのことです。)
・高品質の音声では、学習回数の許容範囲としては200エポックとのことです。

 

学習させる音声ファイルを作るには、

・Audacity

などの音声編集アプリを使う方法を散見しました。
各データセットの音声ファイルの長さを、どの程度にしようか?と迷うところですが、製作者の説明では

“Use less than 10 minutes vocal to fast train a voice conversion model!”
(10分未満の音声を使用して、音声変換モデルを高速トレーニングします。 )

とのことでした。
インターネット上で関連情報を調べてみたり、現在配布されている音声コーパスなどをみてみると

・1ファイルあたり、数秒程度の音声

のようでしたので、RVC WebUIの使い方をある程度覚えてから、色々と試行錯誤してみてください。

 

 

【手順9:重複ファイル名の変換】

 

 

データセット(「dataset」フォルダ)内の重複ファイル名を変更します。

実行コード

!ls -a /content/drive/MyDrive/dataset
!rename 's/(\w+)\.(\w+)~(\d*)/$1_$3.$2/' /content/drive/MyDrive/dataset/*.*~*

 

 

【手順10:RVC WebUIの起動】

 

 

ウェブインターフェース上で、学習や推論(音声変換)を実施します。
以下のコードを実行後に表示される

Running on public URL: https://〜.gradio.live

のURLをクリックするとRVC WebUIが使えます。

RVC WebUIの表示を「日本語化」させたい場合には、以下のリンク先の情報を参照ください。
【RVC v2モデル対応版】RVC WebUIの日本語化 – コピー&ペースト用コード

実行コード

%cd /content/Retrieval-based-Voice-Conversion-WebUI
# %load_ext tensorboard
# %tensorboard --logdir /content/Retrieval-based-Voice-Conversion-WebUI/logs
!python3 infer-web.py --colab --pycmd python3

 

 

【RVC v2モデル対応版】RVC WebUIの使い方:学習編
(データセットで学習モデル作成)- Train

 

【RVC v2モデル対応版】RVC WebUIの使い方:学習編(Train)2023年6月6日版 - AIボイスチェンジャー by 子供プログラマー
*画像をクリックすると拡大されます。以下の説明で例示している設定になっています。必要に応じて参考にしてみてください。

 

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:(出力される学習モデルの名前)2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Enter the experiment name:
(出力される学習モデルの名前)
amitaro

 

Target sample rate:(サンプリングレート・サンプル周波数)-【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Target sample rate:
(サンプリングレート・サンプル周波数)
40k
*RVC v2モデルを利用するには「40k」を選択します。
(2023年5月時点)

 

Whether the model has pitch guidance:required for singing, optional for speech(ピッチガイダンスの設定)2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

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(currently only v2 is supported for 40k sample rate)事前学習モデルのバージョン設定 2023年6月版 - 現在、RVC v2は、40kHzのサンプル周波数のみ対応)-【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Version (currently only v2 is supported for 40k sample rate):
(RVCの事前学習モデルのバージョン設定 – 現在、RVC v2は、40kHzのサンプル周波数のみ対応)
v2
*RVC v2モデルを利用するには「Target sample rate:」(サンプリングレート・サンプル周波数)の設定で「40k」を選択した場合のみ使えます。
(2023年5月時点)

 

Number of CPU processes used for pitch extraction and data processing(ピッチ抽出とデータセット処理に使用するCPUスレッド数)2023年6月版-【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Number of CPU processes used for pitch extraction and data processing:
(ピッチ抽出とデータセット処理に使用するCPUスレッド数)
2
*一例

 

【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:(学習させるデータセットフォルダのパスを指定)2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Enter the path of the training folder:
(学習させるデータセットフォルダのパスを指定)
/content/drive/MyDrive/dataset
*Google Driveの「MyDrive」内に「dataset」というデータセットフォルダを配置した場合の例

 

Please specify the speaker/singer ID:(識別IDの設定)2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Please specify the speaker/singer ID:
(識別IDの設定)
0
*2回目に学習させる場合には、1回目とは違うIDに設定します。
(例:1回目の学習 – ID 0。2回目の学習 – ID 1)

 

【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 2023年6月版(GPUのインデックスを「-」で区切って入力します-【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

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 information:(GPUの情報)-【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

GPU information:
(GPUの情報)
0 Tesla T4

 

Select the pitch extraction algorithm(ピッチ抽出アルゴリズムの設定)2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Select the pitch extraction algorithm (‘pm’: faster extraction but lower-quality speech; ‘dio’: improved speech but slower extraction; ‘harvest’: better quality but slower extraction):
(ピッチ抽出アルゴリズムの設定:歌声の処理を高速化するには「pm」を使用。高品質の音声を処理するには「dio」を使用(低速)。最高の品質で処理をするには「harvest」を使用。ただ最も処理が遅くなります。)
harvest
*一例
*2023年7月30日確認時点では。ここの設定に

・「rmvpe」(最新のRMVPEボーカルピッチ抽出アルゴリズム)
・「rmvpe_gpu」(最新のRMVPEボーカルピッチ抽出アルゴリズムのGPU指定版)
*RMVPE:
RMVPE: A Robust Model for Vocal Pitch Estimation in Polyphonic Music – 2023年6月27日公開 | arxiv
(ポリフォニック音楽におけるボーカルピッチ推定のための堅牢なモデル)

などが追加されていました。
rmvpermvpe_gpu」ともに使えることも確認できました。
学習の時間は「harvest」よりもどちらも速いようでした。
rmvpe_gpu」に設定した場合には以下のように

rmvpe_gpu(最新のRMVPEボーカルピッチ抽出アルゴリズム)の設定でGPUを指定 2023年7月30日版 - RVC WebUIの学習の設定

GPUを指定するようでした。
初期設定の「0-0」で使えるようでした。色々なアルゴリズムを試してみてください。

 

【Step:3】
Fill in the training settings and start training the model and index

(学習の設定をして、モデルの学習を開始し、学習モデルとインデックスファイルを作成する)

 

Save frequency save_every_epoch:(学習の状況の保存頻度)-【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Save frequency (save_every_epoch):
(学習の状況の保存頻度)
5

 


Total training epochs total_epoch(学習回数 - エポック数)-【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Total training epochs (total_epoch):
(学習回数 – エポック数)
10
*RVC公式のQ&Aでは、学習回数の許容範囲は「200回」とのことです

 

Batch size per GPU(各グラフィックスカード・GPUに対してのバッチサイズ)2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Batch size per GPU:
(各グラフィックスカード・GPUに対してのバッチサイズ)
*学習するデータセットをどの程度の一回あたりの処理量にするか
3

 

Save only the latest .ckpt file to save disk space(ディスク容量を節約するために、最新のckptファイルのみを保存する)-【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Save only the latest ‘.ckpt’ file to save disk space:
(ディスク容量を節約するために、最新のckptファイルのみを保存する)
No

 

Cache all training sets to GPU Memory(すべての学習セットをGPUメモリにキャッシュ)2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

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」フォルダにも完成系の学習モデルを保存する 2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

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のファイルのパスを指定)-【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Load pre-trained base model G path.:
(事前学習モデルGのファイルのパスを指定)
pretrained_v2/f0G40k.pth
*RVC v2モデル(40kHz)を指定した場合の設定例。
設定に応じて、自動的にファイルが反映されます。

 

Load pre-trained base model D path(事前学習モデルDのファイルのパスをパス)-【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

Load pre-trained base model D path.:
(事前学習モデルDのファイルのパスをパス)
pretrained_v2/f0D40k.pth
*RVC v2モデル(40kHz)を指定した場合の設定例。
設定に応じて、自動的にファイルが反映されます。

 

Enter the GPU index(es) separated by「-」(GPUのインデックスを「-」で区切って入力 2023年6月版 - 【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

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

 

設定ができたら

学習開始:One-click training

One-click training.
(ワンクリックでトレーニング開始)

のボタンをクリックします。

 

しばらくすると以下のような表示になります。

 

RCV WebUI上の出力結果
*「Train」内の「Output message」(出力メッセージ)の出力

RCV WebUI上の出力結果 - Output message【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

step 1: processing data
python3 trainset_preprocess_pipeline_print.py /content/drive/MyDrive/dataset 40000 2 /content/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro False
step2a:正在提取音高
python3 extract_f0_print.py /content/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro 2 harvest
step 2b: extracting features
python3 extract_feature_print.py cuda:0 1 0 0 /content/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro v2
step 3a: model traning started
write filelist done
python3 train_nsf_sim_cache_sid_load_pretrain.py -e amitaro -sr 40k -f0 1 -bs 3 -g 0 -te 10 -se 5 -pg pretrained_v2/f0G40k.pth -pd pretrained_v2/f0D40k.pth -l 0 -c 0 -sw 0 -v v2
Training complete. Logs are available in the console, or the 'train.log' under experiment folder
(1072, 768),27
training index
adding index
成功构建索引, added_IVF27_Flat_nprobe_1_amitaro_v2.index
all processes have been completed!
(すべての処理が完了しました!)

 

v2-RVC-WebUI-for-Japanese-AI-beginners.ipynb上の出力結果
*【手順10:RVC WebUIの起動】の出力

v2-RVC-WebUI-for-Japanese-AI-beginners.ipynb上の出力結果【RVC v2モデル対応版】RVC WebUIの使い方 学習 Train

NFO:amitaro:====> Epoch: 1 [2023-05-28 11:56:54] | (0:00:31.598615)
/usr/local/lib/python3.10/dist-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 [2023-05-28 11:56:56] | (0:00:02.127939)
INFO:amitaro:====> Epoch: 3 [2023-05-28 11:56:59] | (0:00:02.087378)
INFO:amitaro:====> Epoch: 4 [2023-05-28 11:57:01] | (0:00:02.215266)
INFO:amitaro:Saving model and optimizer state at epoch 5 to ./logs/amitaro/G_25.pth
INFO:amitaro:Saving model and optimizer state at epoch 5 to ./logs/amitaro/D_25.pth
INFO:amitaro:====> Epoch: 5 [2023-05-28 11:57:12] | (0:00:10.780564)
INFO:amitaro:====> Epoch: 6 [2023-05-28 11:57:14] | (0:00:02.139899)
INFO:amitaro:====> Epoch: 7 [2023-05-28 11:57:16] | (0:00:02.086639)
INFO:amitaro:====> Epoch: 8 [2023-05-28 11:57:18] | (0:00:02.081577)
INFO:amitaro:====> Epoch: 9 [2023-05-28 11:57:21] | (0:00:02.653771)
INFO:amitaro:Saving model and optimizer state at epoch 10 to ./logs/amitaro/G_50.pth
INFO:amitaro:Saving model and optimizer state at epoch 10 to ./logs/amitaro/D_50.pth
INFO:amitaro:====> Epoch: 10 [2023-05-28 11:57:28] | (0:00:07.700858)
INFO:amitaro:Training is done. The program is closed.
(学習が実行されました。プログラムを終了します)
INFO:amitaro:saving final ckpt:Success.

 

出力された学習モデルは、Google Colaboratory上でダウンロードできます。
weights」フォルダ内に

学習モデルの保存場所:weightsフォルダ内

・「amitaro.pth
*「Experiment name:」(出力される学習モデルの名前)で「amitaro」という名前に設定した場合の例
*2024年2月に確認時点では「weights」フォルダは”・「Retrieval-based-Voice-Conversion-WebUI」フォルダの「assets」フォルダ内に「weights」フォルダ“が配置されているようでした。

という学習モデルが出力されています。
必要に応じてローカル環境(自分のパソコン)にダウンロードして、リアルタイムボイスチェンジなどに挑戦してみてください。

AIを利用したリアルタイムボイスチェンジャーのクライアントソフトウェアVC Client:
w-okada/voice-changer(The MIT License)| GitHub

 

 

【RVC v2モデル対応版】
RVC WebUIの使い方:モデル推論編(音声変換)- Model inference

 

【RVC v2モデル対応版】RVC WebUIの使い方:Model Inference 推論編(音声変換)男性の声から女性の声への変換 2023年6月版 - AIボイスチェンジャー
*画像をクリックすると拡大されます。以下の説明で例示している設定になっています。必要に応じて参考にしてみてください。

 

Model inference」(モデルの推論)のタブをクリックし、以下のように設定します。
(一例です)

 

Model inference:Refresh voice list and index path(学習モデルとインデックスファイルのリストを更新する)のボタンをクリック - RVC WebUIの使い方 v2モデル対応版

Refresh voice list and index path」(学習モデルとインデックスファイルのリストを更新する)のボタンをクリック後に

Inferencing voice(音声の推論)-【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

Inferencing voice:
(音声の推論)
amitaro.pth
*学習の際に「Experiment name:」(出力される学習モデルの名前)を「amitaro」にした場合の例

が設定できるようになります。

 

Select Singer/Speaker ID(識別ID)-【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

Select Singer/Speaker ID:
(識別ID)
0
*学習の際に「Specify Singer/Speaker ID:」(識別IDの設定)を「0」にした場合の例

 

Recommended +12 key for male to female conversion, and -12 key for female to male conversion. If the sound range goes too far and the voice is distorted, you can also adjust it to the appropriate range by yourself.
(男性から女性への変換は+12key、女性から男性への変換は-12keyを推奨しています。音域が行き過ぎて声が歪んでしまう場合は、ご自身で適切な音域に調整することも可能です)

 

Transpose(変調)2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

Transpose (integer, number of semitones, raise by an octave: 12, lower by an octave: -12):
(変調:入力は整数で半音数を表します。1オクターブ分上げる:12・1オクターブ下げる:-12))
+12
*チュートリアルでは男性の声→女性の声に変換のため+12にしています
*RVC v2モデルを使用し、これから設定する「Select the algorithm for pitch extraction:」(ピッチ抽出のアルゴリズムを選択する)で、ピッチモデルを「harvest」にすると、時と場合によっては声が高くなることもあるようでしたので、必要に応じてここの設定を微調整してみてください。

 

Enter the path of the audio file to be processed(処理するオーディオファイルのパスを入力します - デフォルトは正しいフォーマットの例です。)-【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

Enter the path of the audio file to be processed (default is the correct format example):
(処理するオーディオファイルのパスを入力します – デフォルトは正しいフォーマットの例です)
/content/drive/MyDrive/originalvoice.wav
*Google Driveの「MyDrive」内に「originalvoice.wav」という音声ファイルを配置した場合の例

 

Select the pitch extraction algorithm (ピッチ抽出のアルゴリズムを選択する)2023年7月版 -【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

Select the pitch extraction algorithm (‘pm’: faster extraction but lower-quality speech; ‘harvest’: better bass but extremely slow; ‘crepe’: better quality but GPU intensive):
(ピッチ抽出のアルゴリズムを選択する – ‘pm’: 抽出が最速だが音声の品質は低い。’harvest’: 品質は向上するが、抽出が最も遅い。”crepe”:品質は最高だが、GPUに負荷がかかります)
crepe
*2023年5月30日時点では、「crepe」を選択するとエラーになるようでした。
→「crepe」が使えるように、Google Colaboratoryのコードを修正しておきました。
(2023年5月31日更新版〜)
*2023年7月11日に「rmvpe」(最新のRMVPEボーカルピッチ抽出アルゴリズム)の対応のアップデート時点では、「rmvpe」を選択するとエラーになるようでした。
今後の経過を見ていきます。

 

If >=3: using median filter for f0. The number is median filter radius(3以上の場合:f0にメディアンフィルターを使用します。数値はメディアンフィルタの半径です)-【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

If >=3: using median filter for f0. The number is median filter radius.
(3以上の場合:ピッチの結果にf0にメディアンフィルターを使用します。数値はフィルターの半径を表し、息苦しさを軽減することができます)
3
*f0:基本周波数
*メディアンフィルター:おそらくノイズ除去

 

Path to Feature index file(If null, use dropdown result)(機能インデックスファイルへのパス - 未記入の場合、ドロップダウン結果を使用します)-【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

Path to Feature index file(If null, use dropdown result):
(機能インデックスファイルへのパス – 未記入の場合、ドロップダウン結果を使用します)
未記入
(一例です)

 

Auto detect index path and select from the dropdown(「logs」フォルダ内の「.index」ファイルへのパスが自動検出されます。ドロップダウンから一致するファイルを選択します)2023年6月版-【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

Auto-detect index path and select from the dropdown:
(「logs」フォルダ内の「.index」ファイルへのパスが自動検出されます。ドロップダウンから一致するファイルを選択します)
logs/amitaro/added_IVF27_Flat_nprobe_1_amitaro_v2.index
(一例です)
*学習の際に「Experiment name:」(出力される学習モデルの名前)を「amitaro」にした場合の例
*「Retrieval-based-Voice-Conversion-WebUI」のフォルダの「logs」内の「added〜.index」のファイルのパスが自動的に反映されます
*2回目の学習で「Experiment name:」(出力される学習モデルの名前)を「amitaro2」にした場合には、
logs/amitaro2/added_〜_amitaro2_v2.index
のファイルを選ぶようにします。

 

Search feature ratio(サーチ・検索機能の割合)-【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

Search feature ratio:
(検索特徴率:サーチ・検索機能の割合)
0.5
*初期設定は「0.76」に設定されているようです。(2023年5月30日のアップデートでは「0.88」が初期設定)
数値を変えて音声がどうなるか?色々と試してみてください。
チュートリアルの音声で試した範囲では、ここの設定を「1」にすると、途中で雑音が入ることもあるようでした…
0.5」あたりまで下げると、気になりませんでした。
*検索特徴率を「1」に近づけるほど、今回学習させた「学習モデル」の特徴(音色の品質)に偏らせるようです。

 

Resample the output audio in post-processing to the final sample rate. Set to 0 for no resampling(後処理で音声を異なるサンプルレートにリサンプリング)2023年6月 -【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

Resample the output audio in post-processing to the final sample rate. Set to 0 for no resampling:
(後処理で音声を異なるサンプルレートにリサンプリング – 再標本化する。設定を「0」にした場合にはリサンプリングは実行しません)
48000
(一例です)
*リサンプリングしない場合(チュートリアルの設定では変換後の音声を「40kHz」にしたい場合)には、ここの設定を「0」にします。

 

Use the volume envelope(ボリュームエンベロープ)2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

Use the volume envelope of the input to replace or mix with the volume envelope of the output. The closer the ratio is to 1, the more the output envelope is used:
(入力のボリュームエンベロープを出力のボリュームエンベロープと混合または置き換えるために使用します。比率が1に近いほど、出力エンベロープがより多く使用されます。設定を「0」にした場合には、入力エンベロープを混合しません)
1
(一例です)
*おそらく、ここの設定を「1未満」にするとボリュームエンベロープ(時間に対する音声ボリュームの設定)を元の音声寄りにできるようにする設定ではないかと思います。チュートリアルでは、出力寄りに設定してみました。
数値を変えて音声がどうなるか?色々と試してみてください。

 

Protect voiceless consonants and breath sounds to prevent artifacts(無声子音と呼吸音を保護し、アーティファクトを軽減)2023年6月版 -【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

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」に設定されているようです。
数値を変えて音声がどうなるか?色々と試してみてください。

注:無声子音(むせいしいん)
:声帯振動を伴わない子音のこと

 

設定が完了したら

【RVC v2モデル対応】Model Inference:Convert(モデル推論 - 音声変換) - RVC WebUIの使い方

Convert
(変換)

のボタンをクリックします。

数秒〜20秒ほどで推論完了。
*1回目は20秒ほど。2回目以降は数秒。

 

Output message(出力メッセージ)-【RVC v2モデル対応版】RVC WebUIの使い方 モデル推論 Model Inference

 

1〜3秒ほどのファイル10個で学習させただけでしたが、聞いてみると女性っぽい声に変換されていました。
時と場合にもよるようでしたが、あみたろさんの声で試した範囲では、RVC v2モデルを使って、harvestで音声変換すると、キーが高くなる時もあるようでした。そのため、場合によっては、キーを低く設定する必要がありそうでした。

今回の使い方を参考にしつつ、試行錯誤しながらオリジナルのボイスチェンジャーを作成してみてください。
尚、出力された音声ファイルは

【RVC v2モデル対応】ボイチェン後の音声のダウンロード方法 - RVC WebUIの使い方

Export audio (Click on the three dots in the bottom right corner to download)
(出力オーディオ – 右下隅の3つのドット、クリックしてダウンロード)

のところでダウンロードできます。
その他にも、

TEMP」フォルダ内に以下の

【RVC v2モデル対応】推論:TEMPフォルダ内にwavファイルが出力 - RVC WebUIの使い方

・「audio.wav」(ファイル例)

のようなファイル名で保存されますので、必要に応じてローカル環境(自分のパソコン)にダウンロードして使ってみてください。

【RVC v2モデル対応】推論:TEMPフォルダ内にwavファイルが出力 追加分 - RVC WebUIの使い方
また、新たに推論をさせるとファイルが追加されていきます。

 

以上、長くなりましたが、使い方の解説です。
今後の開発の進捗状況も気になりますね。

 

 

RVC WebUI上に表示されるQ&A
:2023年5月29日時点

 

 

自分で読んでいても自信がない箇所もありますが、日本語でRVC WebUI関連の情報を検索して調べやすいように可能な範囲で翻訳しておきます。
尚、RVC公式のQ&A(オリジナル版のRVC WebUIを起動時に見ることができるFAQ)は、

・2023年5月29日時点

のコードを実行した際に表示された文章を参考にしています。
RVC WebUIにまつわる疑問の解決の、きっかけになることがありましたら幸いです。

 

 

Q1:ffmpegエラー/utf8エラー

 

 

おそらく「FFmpeg」の問題ではなく、「音声ファイル」のパスの問題です。

FFmpeg」は、

・スペースや () などの特殊文字を含むパスを読み取るときにエラーが発生する可能性

があり、「FFmpegエラー」が発生する可能性があります。
また、学習用のデータセットの音声ファイル名に

・中国語

のパスが含まれている場合、それを「filelist.txt」に書き込むと「utf8エラー」が発生する可能性があります。

 

【原文】
Q1:ffmpeg error/utf8 error.

It is most likely not a FFmpeg issue, but rather an audio path issue;

FFmpeg may encounter an error when reading paths containing special characters like spaces and (), which may cause an FFmpeg error; and when the training set’s audio contains Chinese paths, writing it into filelist.txt may cause a utf8 error.

 

 

Q2:「One-click training」後にインデックスファイルが見つかりません。

 

 

Training is done. The program is closed」(トレーニングが完了しました。プログラムは閉じられています)と表示された場合、モデルは正常に学習されており、その後のエラーは偽です。

One-click training」後に、新たに作成されたインデックスファイルが表示されないのは、学習のセットが大きすぎてインデックスの追加が停止していることが原因である可能性があります。この問題は、バッチ処理を使用してインデックスを追加することで解決されており、インデックス追加時のメモリ過負荷の問題が解決されています。
一時的な解決策として、「Train feature index」ボタンをクリックして、インデックスファイルを生成してみてください。

 

【原文】
Q2:Cannot find index file after “One-click Training”.

If it displays “Training is done. The program is closed,” then the model has been trained successfully, and the subsequent errors are fake;

The lack of an ‘added’ index file after One-click training may be due to the training set being too large, causing the addition of the index to get stuck; this has been resolved by using batch processing to add the index, which solves the problem of memory overload when adding the index. As a temporary solution, try clicking the “Train Index” button again.

 

 

Q3:学習後の「Inferencing voice:」(音声の推論)で学習モデルが見つからない。

 

 

「Refresh voice list and index path」(学習モデルとインデックスファイルのリストを更新する)をクリックして再度確認してください。
それでも表示されない場合は、学習中にエラーがあるかどうかを確認し、さらなる分析のために「コンソール」、「Retrieval-based-Voice-Conversion-WebUI」フォルダ内の「logs/experiment_name/*.log」のスクリーンショットを開発者に送信します。

 

【原文】
Q3:Cannot find the model in “Inferencing timbre” after training
Click “Refresh timbre list” and check again; if still not visible, check if there are any errors during training and send screenshots of the console, web UI, and logs/experiment_name/*.log to the developers for further analysis.

 

 

Q4:学習モデルを共有するにはどうすればよいですか?他人の学習モデルを使用するにはどうすればよいですか?

 

 

Retrieval-based-Voice-Conversion-WebUI」フォルダの「logs」内に保存されているpthファイルは、共有や推論を目的としたものではなく、再現性とさらなるトレーニングのために実験チェックポイントを保存することを目的としています。共有する学習モデルは、「weights」フォルダー内の 60MB以上のpthファイルである必要があります。

将来的には、「weights/exp_name.pth」と「logs/exp_name/added_xxx.index」が単一の「weights/exp_name.zip」ファイルにマージされ、インデックスを手動で入力する必要がなくなります。したがって、別のコンピュータで学習を続行する場合を除き、pthファイルではなくzipファイルを共有してください。

強制推論のために数百MBのpthファイルを「logs」フォルダーから「weights」フォルダーにコピー/共有すると、「f0」、「tgt_sr」、またはその他のキーが欠落しているなどのエラーが発生する可能性があります。
ckpt Processing」(ckpt処理)タブの下部にある「Model extraction」(モデル抽出)の機能を使用して、手動または自動 (logs/exp_name に情報が含まれている場合) で、ピッチ情報とターゲットオーディオサンプリングレートオプションを含めるかどうかを選択し、より小さいモデルを抽出する必要があります。
抽出後、「weights」フォルダーに60MB以上のpthファイルが作成され、音声を更新して使用できます。

 

【原文】
Q4:How to share a model/How to use others’ models?

The pth files stored in rvc_root/logs/experiment_name are not meant for sharing or inference, but for storing the experiment checkpoits for reproducibility and further training. The model to be shared should be the 60+MB pth file in the weights folder;

In the future, weights/exp_name.pth and logs/exp_name/added_xxx.index will be merged into a single weights/exp_name.zip file to eliminate the need for manual index input; so share the zip file, not the pth file, unless you want to continue training on a different machine;

Copying/sharing the several hundred MB pth files from the logs folder to the weights folder for forced inference may result in errors such as missing f0, tgt_sr, or other keys. You need to use the ckpt tab at the bottom to manually or automatically (if the information is found in the logs/exp_name), select whether to include pitch infomation and target audio sampling rate options and then extract the smaller model. After extraction, there will be a 60+ MB pth file in the weights folder, and you can refresh the voices to use it.

 

 

Q5:接続エラーが発生しました

 

 

コンソール (黒いコマンドラインウィンドウ) を閉じた可能性があります。
*Google Colaboratoryの場合には、Google Colaboratoryの接続解除や、【手順10:RVC WebUIの起動】のプログラムが停止された可能性があります。

 

【原文】
Q5:Connection Error.

You may have closed the console (black command line window).

 

 

Q6:RVC WebUIのポップ‘Expecting value: line 1 column 1 (char 0)’

 

 

システムLANプロキシ/グローバルプロキシを無効にしてリフレッシュしてください。

 

【原文】
Q6:WebUI popup ‘Expecting value: line 1 column 1 (char 0)’.

Please disable system LAN proxy/global proxy and then refresh.

 

 

Q7:WebUIを使用せずに学習および推論するにはどうすればよいですか?

 

 

学習スクリプト:
最初にWebUIで学習を実行すると、データセットの前処理と学習のコマンドラインバージョンがメッセージウィンドウに表示されます。

推論スクリプト:
https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/myinfer.py

例えば

runtime\python.exe myinfer.py 0 “E:\codes\py39\RVC-beta\todo-songs\1111.wav” “E:\codes\py39\logs\mi-test\added_IVF677_Flat_nprobe_7.index” harvest “test.wav” “weights/mi-test.pth” 0.6 cuda:0 True

f0up_key=sys.argv[1]
input_path=sys.argv[2]
index_path=sys.argv[3]
f0method=sys.argv[4]#harvest または pm
opt_path=sys.argv[5]
model_path=sys.argv[6]
index_rate=float(sys.argv[7])
device=sys.argv[8]
is_half=bool(sys.argv[9])

 

【原文】
Q7:How to train and infer without the WebUI?

Training script:
You can run training in WebUI first, and the command-line versions of dataset preprocessing and training will be displayed in the message window.

Inference script:
https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/myinfer.py

e.g.

runtime\python.exe myinfer.py 0 “E:\codes\py39\RVC-beta\todo-songs\1111.wav” “E:\codes\py39\logs\mi-test\added_IVF677_Flat_nprobe_7.index” harvest “test.wav” “weights/mi-test.pth” 0.6 cuda:0 True

f0up_key=sys.argv[1]
input_path=sys.argv[2]
index_path=sys.argv[3]
f0method=sys.argv[4]#harvest or pm
opt_path=sys.argv[5]
model_path=sys.argv[6]
index_rate=float(sys.argv[7])
device=sys.argv[8]
is_half=bool(sys.argv[9])

 

 

Q8:Cudaエラー/Cudaメモリ不足

 

 

CUDA構成に問題があるか、デバイスがサポートされていない可能性がわずかにあります。おそらく、メモリが不足しています (メモリ不足)。

学習の場合は、「batch_size for every GPU」(バッチサイズ)を減らします (1に減らしても不十分な場合は、グラフィックカードを変更する必要がある場合があります)。
推論のために、必要に応じて「config.py」ファイル内の

・x_pad、x_query、x_center

・x_max

の設定を調整します。
4G以下のメモリカード (1060(3G) や様々な2Gカードなど) はダメだと思われますが、4Gメモリカードにはまだチャンスがあります。

 

【原文】
Q8:Cuda error/Cuda out of memory.

There is a small chance that there is a problem with the CUDA configuration or the device is not supported; more likely, there is not enough memory (out of memory).

For training, reduce the batch size (if reducing to 1 is still not enough, you may need to change the graphics card); for inference, adjust the x_pad, x_query, x_center, and x_max settings in the config.py file as needed. 4G or lower memory cards (e.g. 1060(3G) and various 2G cards) can be abandoned, while 4G memory cards still have a chance.

 

 

Q9:total_epoch(学習回数)はいくつが最適ですか?

 

 

学習用のデータセットの音声品質が悪く、ノイズが多い場合は、

・20~30回

で十分です。
設定が高すぎると、低品質の学習用のデータセットの音声品質は向上しません。

学習用のデータセットの音声品質が良く、ノイズが少ない場合は、十分な再生時間があれば、学習回数を増やすことができます。

・学習回数200回

は許容範囲です (200回であれば学習が速く完了する可能性があります。また、高品質の学習用のデータセットを準備できれば、GPUはより長いトレーニング時間を問題なく処理できる可能性が高いからです)。

 

【原文】
Q9:How many total_epoch are optimal?

If the training dataset’s audio quality is poor and the noise floor is high, 20-30 epochs are sufficient. Setting it too high won’t improve the audio quality of your low-quality training set.

If the training set audio quality is high, the noise floor is low, and there is sufficient duration, you can increase it. 200 is acceptable (since training is fast, and if you’re able to prepare a high-quality training set, your GPU likely can handle a longer training duration without issue).

 

 

Q10:学習用のデータセットの総再生時間はどれくらい必要ですか?

 

 

音声ファイルの総再生時間は

・10分から50分程度

のデータセットをお勧めします。

音声ファイルが高品質でノイズが少なく、データセットの音色が均一であればさらに追加することができます。

高品質の学習用のデータセット (無駄のない + 独特のトーン) の場合は、

・5分から10分

で十分です。

1分から2分の学習用のデータセットで学習に成功した人もいますが、その成功は他の人には再現できず、あまり有益ではありません。
学習用のデータセットが非常に特徴的な音色 (高周波の風通しの良いアニメの女の子のサウンドなど) で、音声の品質が高いことが必要です。
これまでのところ、1分未満のデータの試行は成功していません。これはお勧めできません。

 

【原文】
Q10:How much training set duration is needed?

A dataset of around 10min to 50min is recommended.

With guaranteed high sound quality and low bottom noise, more can be added if the dataset’s timbre is uniform.

For a high-level training set (lean + distinctive tone), 5min to 10min is fine.

There are some people who have trained successfully with 1min to 2min data, but the success is not reproducible by others and is not very informative.
This requires that the training set has a very distinctive timbre (e.g. a high-frequency airy anime girl sound) and the quality of the audio is high; Data of less than 1min duration has not been successfully attempted so far. This is not recommended.

 

 

Q11:インデックスレート(index rate)とは何ですか?またその調整方法は何ですか?

 

 

注:おそらく?ですが、モデル推論の際の設定「Search feature ratio:」(サーチ・検索機能の割合)のことを言っているのかもしれません。ここの設定によっては、「音漏れ – tone leakag」らしき症状を経験しましたので…

 

事前学習済みモデルと、推論させる音声ファイルの音質が、学習用のデータセットの音質よりも高い場合、推論結果の音質を向上させることができますが、その代償として、基礎となるモデルのトーンに対するトーンのバイアスが発生する可能性があります。
(学習用のデータセットのトーンではなく推論させる音声ファイル。これは一般に「音漏れ – tone leakag」と呼ばれます。)

インデックスレートは、音漏れの問題を軽減/解決するために使用されます。
インデックスレートが「1」に設定されている場合、理論的には推論させる音声ファイルから音漏れはなく、音色の品質は学習用のデータセットに偏ります。
学習用のデータセットの音質が推論させる音声ファイルよりも低い場合、インデックスレートを高くすると音質が低下する可能性があります。これを「0」に下げても、検索ブレンディングを使って学習用のデータセットの音色を保護する効果はありません。

学習用のデータセットの音質が良く、総再生持続時間が長い場合は、「total_epoch」(学習回数)を上げます。
学習モデル自体が、推論させる音声ファイルと事前学習された基礎モデルを参照する可能性が低く、音漏れがほとんどない場合、「index_rate」は重要ではありません。また、インデックスファイルを作成/共有することもできません。

 

【原文】
Q11:What is the index rate for and how to adjust it?

If the tone quality of the pre-trained model and inference source is higher than that of the training set, they can bring up the tone quality of the inference result, but at the cost of a possible tone bias towards the tone of the underlying model/inference source rather than the tone of the training set, which is generally referred to as “tone leakage”.

The index rate is used to reduce/resolve the timbre leakage problem. If the index rate is set to 1, theoretically there is no timbre leakage from the inference source and the timbre quality is more biased towards the training set. If the training set has a lower sound quality than the inference source, then a higher index rate may reduce the sound quality. Turning it down to 0 does not have the effect of using retrieval blending to protect the training set tones.

If the training set has good audio quality and long duration, turn up the total_epoch, when the model itself is less likely to refer to the inferred source and the pretrained underlying model, and there is little “tone leakage”, the index_rate is not important and you can even not create/share the index file.

 

 

Q12:推論時のGPUはどうやって選べばいいですか?

 

 

config.py」ファイルで、「device cuda:」の後のカード番号を選択します。

カード番号とグラフィックスカード間のマッピングは、「Train」タブのグラフィックスカード情報セクションで確認できます。

 

【原文】
Q12:How to choose the gpu when inferring?

In the config.py file, select the card number after “device cuda:”.

The mapping between card number and graphics card can be seen in the graphics card information section of the training tab.

 

 

Q13:学習途中で保存したモデルはどのように利用するのですか?

 

 

ckpt Processing」(ckpt処理)タブの下部にある「Model extraction」(モデル抽出)を介して保存します。

 

【原文】
Q13:How to use the model saved in the middle of training?

Save via model extraction at the bottom of the ckpt processing tab.

 

 

Q14:ファイル/メモリエラー(学習時)?

 

 

プロセスが多すぎるとメモリが不足します。
次の方法で修正できます。

1、「Threads of CPU」(CPU のスレッド)フィールドの入力を減らします。

2、学習用のデータセットを短い音声ファイルに変更します。

 

【原文】
Q14:File/memory error(when training)?

Too many processes and your memory is not enough. You may fix it by:

1、decrease the input in field “Threads of CPU”.

2、pre-cut trainset to shorter audio files.

 

 

【RVC v2モデル対応版】RVC WebUIの解説動画へのコメントと対応例など
– 最終更新:2024年9月8日

 

 

【起動編 – 対応済み】RVC v2対応版のRVC WebUIのチュートリアルコードが使えません

 

 

【2024年2月8日時点】

2023年にGoogle Colaboratoryで課金ユーザーのみがRVC WebUIの利用を許可されるようになってから、しばらくチュートリアルコードが使えない状況になっていましたが、

・2024年1月28日最終更新版以降のチュートリアルコードで、【手順5】【手順6】のコードを修正(ダウンロード先の変更)

してから使えるようになったようでした。
その後、2024年2月7日に

・gradio_client関連のエラー

を報告してくださったかたがいましたので

【手順2】のコードを修正(gradio_clientのダウングレード)

したところ再度、RVC WebUIで学習・推論とも可能になったとのことでした。

 

 

【学習編】ローカル環境でRVC WebUIを使う際に「cmd.exe ‐ アプリケーション エラー(0xc0000142)となる

 

 

【2024年9月8日時点】

ローカル環境でRVC WebUIを使う際に、学習を実行すると

・アプリケーションを正しく起動出来ませんでした。(0xc0000142)。[OK] をクリックしてアプリケーションを閉じてください。

というエラー表示が起こるようでした。
原因としては

・「RVC1006Nvidia」と同じファイルが2つあった

ことが影響していたかもしれないとのことでした。
(自分が回答する前に、自力で解決されたようでした)

 

ローカル環境で実行したい方の情報収集の利便性を考え、参考までに、以下に、コメントへの回答を掲載しておきます。

【回答】

今回報告くださったエラーが

・cmd.exe ‐ アプリケーション エラー(0xc0000142)

ということは、おそらくですが

・Windowsのローカル環境(自分のパソコン)

でRVC WebUIを実行したという認識でよろしいでしょうか?
自分は低スペックパソコンのためローカル環境では試せていませんので、推測の回答になりますのでご了承ください。
以下に

①対策例:cmd.exe ‐ アプリケーション エラー(0xc0000142)
②RVC WebUIとGPUについて
③本家RVC WebUIのローカルでの使い方

について回答させていただきます。

 

【①対策例:cmd.exe ‐ アプリケーション エラー(0xc0000142)】

報告いただいたエラーに関連しそうな情報は

検索ワード:
アプリケーションを正しく起動できませんでした 0xc0000142 対処法

などと調べるといくつかあるようでした。
0xc0000142」のエラーの原因は様々な要因があるようですので検索結果に挙がる記事を参考に試行錯誤してみてください。

 

【②RVC WebUIとGPUについて】

既にご存知のことかと思いますが、以下にRVC WebUIを補足情報をまとめておきます。
RVCを動かすGPUのメモリは

・GPUメモリ(VRAM) 6GB以上

が最低ラインかと思われます。
ただ、これまでの個人的に調べられた範囲の情報では、ある程度の「データセットの規模」や「バッチサイズ」で学習させる際には、おそらく

・最低でも16GB

ないと、現状では厳しいのではないか?と推測しています。

 

【③本家RVC WebUIのローカルでの使い方】

本家RVC WebUIは

・Nvidia製のGPU
・AMD製のGPU

に対応されているようです。
Windowsパソコンをご利用の場合には、以下のページ

Nvidia製のGPUのRVC WebUI:
RVC1006Nvidia.7z – lj1995/VoiceConversionWebUI | Hugging Face
* Python 3.8以上

AMD製のGPUのRVC WebUI:
RVC1006AMD_Intel.7z – lj1995/VoiceConversionWebUI | Hugging Face
* Python 3.8以上

からファイルをダウンロードし、解凍後のフォルダ内にある

・go-web.bat

をダブルクリックするようです。
(事前にPython 3.8以上をパソコンで使えるように設定しておく必要があります)
(ファイルへのパス内に日本語の文字や、空白が入っているとエラーとなるかもしれません。半角英数が基本です)

ただ、2024年9月8日確認時点では

・(上記のファイルが)9〜10ヶ月以上開発されていない

ことを考慮すると何かしらのエラーに遭遇する可能性が考えられます。
その際には

・自分でエラー出力を見ながらコードなどを微調整する必要がある

かもしれません。

 

 

【学習編】RVC WebUIで学習モデルを再学習するにはどうすれば良いでしょうか?

 

 

【2024年2月12日時点】

【質問】

同じ学習モデルを再度学習させると精度が上がると聞きましたが、どうすれば良いでしょうか?

 

【回答】

再学習(同じものを再度やる)が実際のところは、どのような手順のなのかは分かりませんが、

・ログを活用する

参考:
【RVC WebUIの使い方】学習の一時中断と途中からの再開 – 学習ログ活用術 by 子供プログラマー

方法はあるかと思います。
要点としては、

【手順の要点】

logs」フォルダ内に

・途中で中断した学習モデルのログ
*上述のチュートリアルでは「test」という名前のフォルダ

を配置した状態で、途中で中断した学習モデルと、

・同じ学習モデル名(「Enter the experiment name:」)
*上述のチュートリアルでは「test」という名前

・同じ学習の設定
*仮に「100回学習させている学習ログ」を配置した上で、同じ学習の設定にし、学習回数を「200回」にすると101回目から200回まで学習が実行されるのではないかと思います

で、再度学習をさせます。
そのため、再学習(ここでは、学習が完了しているところからさらに学習回数を増やすの意味)を前提に、事前に「学習モデルのログ」をGoogle Driveなどに移行させておき、必要に応じて再度活用すれば良いのではないかと思われます。

 

 

【学習編】RVC WebUIのファイル構造で「weights」フォルダがありません

 

 

【2024年2月26日時点】

【質問】

「weights」フォルダがないのですが、どうすればいいですか?

 

【回答】

2024年2月26日時点でRVC WebUI公式のコード

weights – RVC-Project/Retrieval-based-Voice-Conversion-WebUI | GitHub

を見てみると、「weights」フォルダは

・「Retrieval-based-Voice-Conversion-WebUI」フォルダの「assets」フォルダ内に「weights」フォルダ

が配置されているようでした。

 

 

【学習編】RVC WebUIで学習後にindexファイルが出力されません…

 

 

【2024年3月9日時点】

【現象】

人間の声でない音声を学習させるとRVC WebUIで「One-click training」や「Train feature index」を実行しても、

・indexファイルが生成されない

現象が起こるようです。
そのため、indexファイルを出力したい場合には、RVC WebUIに人間の声として認識してもらえるような音声のデータセットを使う必要がありそうです。

 

 

【学習・推論編 – 対応例】RVC WebUIの推論で音声変換した音声が明らかにトレーニング先の音声に似なくなってしまった

 

 

【対応例:2024年2月8日時点】

pitch extraction algorithm」(ピッチ抽出アルゴリズムを)

・「rmvpe _gpu」から「harvest」にする

と問題が解決されたようでした。

 

 

【推論編 – 対応例】RVC WebUIの推論で音声変換した音声をダウンロードをするドット3つのボタンが見当たりません

 

 

【対応例:2024年8月1日時点】

Macユーザーの方でMac標準アプリの「Safari」のブラウザを使用している時には

・音声をダウンロードをするドット3つのボタンがない

状態でしたが、

・Google Chrome

のブラウザに変更したところ無事に音声ファイルをダウンロードできるようになったとのことでした。

 

 

【まとめ】RVC WebUIの解説動画へのコメントと対応例など

 

 

その他の情報に関しては、こちらのページ

【Q&A集】RVC WebUIの使い方 – チュートリアル動画へのコメントと対応例

にまとめてありますので必要に応じて参照いただけますと幸いです。

 

 

by 子供プログラマー | プログラミング入門ウェブ教室

 

 

 

だだっこぱんだ🍞(ddPn08版)さん版のRVC WebUIの使い方
(2023年5月にRVC v2モデルに対応開始されています)
【ddPn08版】日本人のためのRVC WebUIの使い方 – AIボイスチェンジャー入門

わずか…数秒(3秒)〜10秒程度の音声ファイルでAIボイスチェンジ&テキスト音声合成(TTS)に挑戦
日本人のためのVALL-E Xの使い方:日本語音声で感情反映型AIボイスチェンジTTS 

 

【音声認識】

【Python入門】日本語の文字起こしのやり方(音声認識:音声ファイル編)サンプルコード 

 

【音声合成】

RVC WebUIで作成したオリジナル学習モデルを使ってテキスト音声合成に挑戦!
VG WebUIの使い方:AIボイスチェンジャー(RVC WebUI)の学習モデルでテキスト音声合成(テキストの音声読み上げ:TTS – Text to Speach)入門 

【PyTorch入門】日本語のテキスト音声合成(E2E-TTS)- ESPnet・Tacotron 2版