日本人のためのRVC WebUIの使い方:簡単オリジナルAIボイスチェンジャー作成

 

【動画で解説】現代の魔法:RVC WebUIの使い方
– オリジナルAIボイスチェンジャーを作ろう
RVC WebUI – AI Voice Changer Tutorial

 

 

RVC WebUIの使い方入門:オリジナルAIボイスチェンジャーを作ろう(男性・女性)

視聴時間:22分22秒

文字情報だけではわかりにくい場合に、RVC WebUIを導入前に解説動画をご活用いただけますと幸いです。
2023年6月16日から出現したGradio関連のエラー対応済みですので2023年6月16日以降の最終更新版のチュートリアルコードをGoogle「ドライブにコピーを保存」を実行しRVC WebUIを起動してみてください。
English Edition:
【AI Tutorial】How to use RVC WebUI: Easy creation of original AI voice changer for beginners

 




 

【追記:2023年5月9日 – Google Colaboratory起動版のRVC WebUIが英語化】

2023年5月9日に確認時点では、Google Colaboratory上で起動できるRVC WebUIが英語化されたようでした。
その他の変更点としては、「Train」で、これまで指定していた

・Feature file path:
(FEATUREファイルパスを設定・特徴量ファイルのパスを設定)

を設定する必要がなくなり、

・Feature search database file path(.indexファイル)
(FEATUREサーチパスを設定:特徴量検索データベースファイルのパスを設定)

のみを指定するようになっていました。
また、「Export ONNX」では、ONNX形式の学習モデルに変換できるようになったようでした。

 

【追記:2023年5月29日 – ONNX形式の学習モデル変換機能を有効化】

そのままでは「Export Onnx」(ONNX形式ファイルを出力)の機能を使えないようでしたので、使えるようにGoogle Colaboratoryのプログラムを改変しておきました。
使い方は簡単で、

Export Onnx設定例:RVC WebUIの使い方

・RVC Model Path:
(RVC WebUIで作成したpth形式の学習モデルのファイルのパス)
/content/Retrieval-based-Voice-Conversion-WebUI/weights/amitaro.pth
*「Input experiment name:」(出力される学習モデルの名前)で「amitaro」という名前に設定した場合の例

・Onnx Export Path:
(ONNX形式に変換後の学習モデルのファイルのパス:ONNX形式にしたファイル名まで入力)
/content/Retrieval-based-Voice-Conversion-WebUI/weights/amitaro.onnx
*「amitaro.onnx」という名前でONNX形式のファイルを「weights」フォルダに出力する設定した場合の例

・MoeVS Model:
チェックを入れる
*一例
ここの設定はよくわかりませんでしたが、チェックを外してもファイルは出力できるようでした

を設定し「Export Onnx Model」(ONNX形式の学習モデルのファイルを出力)をクリックすると「Onnx Export Path:」(ONNX形式に変換後の学習モデルのファイルのパス)で指定した場所にファイルが出力されます。

 

【追記:2023年5月24日】

2023年5月中旬にリリースされたRVC公式の事前学習済みモデルのバージョン2(RVC v2モデル)に対応させたチュートリアルプログラムのコードを公開しておきました。

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

 

【追記:2023年5月29日】

RVC v2モデルに対応させたチュートリアル記事を公開しました。

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

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

 

【確認事象: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年8月12日】

RVC WebUIで学習する際の不具合

事前学習済みモデルが反映されない・学習が進まない

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

 

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

【手順2:依存関係のインストール】のコードを修正しておきました。
RVC WebUIを起動できるかどうかは、検証できていませんので、該当のチュートリアル動画にフィードバックいただけますと幸いです。
*コメントでフィードバックくださった方によると、2023年12月26日以前のコードでは、ランタイムの種類によっては「Train」はできたようでした。
追記:2023年12月27日
学習はできますが、推論の際にエラーが出てボイスチェンジできないとのことでした。

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

 

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

2024年2月8日時点では、以下のRVC v2モデル対応版のチュートリアルコードでは、「学習」「推論」とも可能なようです。

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

 

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

2024年2月11日時点では、この記事のチュートリアル動画にコメントくださった方の情報によると 「学習」「推論」とも可能なようです。

*無料版では、使えません。現時点(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.
sqlalchemy 2.0.28 requires typing-extensions>=4.6.0, but you have typing-extensions 4.5.0 which is incompatible.
pydantic-core 2.16.3 requires typing-extensions!=4.7.0,>=4.6.0, but you have typing-extensions 4.5.0 which is incompatible.

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」や「pydantic-core」「typing-extensions」のバージョンによる競合エラーが出ていましたので、コードを追記・修正しておきました。

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

 

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

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

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

 

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

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

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

 

【RVC WebUIの初学者(初心者)のためのチュートリアル動画の内容】

0:00 はじめに
1:01 RVC WebUI起動編
2:17 コードの実行
3:25 データセットなどの準備
8:10 RVC WebUIの起動
8:30 RVC WebUIの使い方編
9:13 データセットの学習
15:04 推論(AIボイスチェンジ)
21:59 最後に

 

 

機械学習の恩恵!でも、まだ敷居が高い?
RVC WebUI – AIボイスチェンジャーのチュートリアル

 

 

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

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

を使いたくても、

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

などと、悲しい思いをされている方も多いのではないかと思います。

オープンAIが公開している人工知能チャットボットでお馴染みの

・ChatGPT
(チャットGPT:Generative Pre-trained Transformer – 生成可能な事前学習済み変換器)

にも通じますが、事前学習モデルを使うことで、個人レベルでも小規模のデータセットを準備するだけで、これだけの精度の音声変換技術(声質変換技術)を扱うことができる時代になったことに驚かされます。

ただ、プログラムを使うには、

・機械学習プログラムのルール
・ある程度のファイル構造の理解
・ファイルの指定の仕方
・中国語?英語?(の翻訳方法)

を知らないと、歯が立たないのではないかと察します。

そこで今回は、RVC WebUIに関心のある日本人の方が、AIボイスチェンジャーを気軽に楽しめるようにするために、Windows・Macなどのパソコンの種類を問わずに使えるGoogle Colaboratoryを使ってRVC WebUIを起動し、オリジナルのAIボイスチェンジャーを作る方法(やり方)をまとめておこうと思います。
一連の情報が、AIボイスチェンジャーに触れるきっかけになることがありましたら幸いです。

 

How to Use RVC WebUI App.
Free AI Voice Changer Tutorial for Machine Learning Python-PyTorch Programming: Male & Female(Girl)

 

 

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

 

 

RVC WebUIを日本人の方が気軽に試せるように、使い方の解説などを入れたサンプルコードを公開しました。
オリジナルのRVC WebUIのGoogle Colaboratoryのコードでは分かりにくいと感じている日本人のAI初学者の方の参考になることがありましたら幸いです。

サンプルコードリンク:
RVC-WebUI-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

 

サンプルコード「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 WebUIの起動方法・導入方法 – 最終更新:2024年4月4日

 

 

【手順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:依存関係のインストール】

 

 

確認時点では初回実行時に、

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv WARNING: The following packages were previously imported in this runtime: [numpy] You must restart the runtime in order to use newly installed versions.

RESTART RUNTIME

という警告が出ますが、そのままでも大丈夫なようでした。
気になる方は、表示されている「RESTART RUNTIME」のボタンをクリックしランタイムを再起動させて、再度「手順1」からコードを実行してください。

実行コード

!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が使えるchsxのバージョンを指定
!pip3 install pandas-stubs==2.0.1.230501 # numpy==1.23.5が使えるpandas-stubsのバージョンを指定
!pip3 install kaleido==0.2.1 tensorflow-probability==0.20.1 typing-extensions==4.6.0 faiss-cpu==1.7.2 fairseq==0.12.2 gradio==3.14.0
!pip3 install ffmpeg==1.4 ffmpeg-python>=0.2.0 praat-parselmouth==0.4.3 pyworld==0.3.2 numpy==1.23.5 numba==0.56.4 librosa==0.9.2 tensorboardX==2.6.2.2 onnx==1.15.0

print('(実行時点のバージョンです)') # 2024年4月4日実行時点 python 3.10.12
import platform
print('python ' + platform.python_version())

【手順を実行後のバージョン】(2024年4月4日実行時点のバージョンです)
python 3.10.12
PyTorch2.1.0+cu121
torchvision 0.16.0+cu121
torchaudio 2.1.0+cu121

 

 

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

 

 

GitHubから「Retrieval-based-Voice-Conversion-WebUI」のプログラムをGoogle Colaboratoryにコピーします。

実行コード

!git clone --depth=1 -b stable https://github.com/fumiama/Retrieval-based-Voice-Conversion-WebUI
%cd /content/Retrieval-based-Voice-Conversion-WebUI
!mkdir -p pretrained uvr5_weights

 

 

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

 

 

実行コード

!git pull

 

 

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

 

 

実行コード

!apt -y install -qq aria2

!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/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/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/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/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/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/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/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/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/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/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/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/pretrained -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/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/uvr5_weights -o HP5-主旋律人声vocals+其他instrumentals.pth

 

 

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

 

 

実行コード

!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 -o hubert_base.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形式の音声ファイルをいくつか入れておきます。
*チュートリアルでは「1〜3秒」の「10個」の音声ファイルで学習していますが、本格的に音声変換したい方は、音声ファイル数を増やし、学習回数(Epoch数)を増やすと機械音っぽさなどが低減するのではないかと思います。(ただし学習に時間がかかります)。GPUはメモリ数が多いと良いようです。

 

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

・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 v1モデル対応版】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 WebUIの使い方:学習編
(データセットで学習モデル作成)- Train

 

RVC WebUIの使い方:学習編(Train)
*画像をクリックすると拡大されます。以下の説明で例示している設定になっています。必要に応じて参考にしてみてください。

 

Train」のタブをクリックし、以下のように設定します。
(一例です)

 

【Step:1】
填写实验配置. 实验数据放在logs下, 每个实验一个文件夹, 需手工输入实验名路径, 内含实验配置, 日志, 训练得到的模型文件.

Fill in the experimental configuration. The experimental data is placed under logs, and each experiment has a folder. You need to manually enter the experimental name path, which contains the experimental configuration, logs, and model files obtained from training.
(設定を記入します。実験データはlogsの下に置かれます。実験ごとに1つのフォルダがあり、実験名のパスを手動で入力する必要があります。実験設定、ログ、トレーニングモデルファイルが含まれています。)

 

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

 

step1:Target sample rate(サンプルレートの設定)- RVC WebUIの使い方

Target sample rate:
(サンプリングレート)
40k
*音声ファイルのサンプリングレートに合わせます。

 

step1:ピッチの有無 - 模型是否带音高指导(唱歌一定要, 语音可以不要)- RVC WebUIの使い方

模型是否带音高指导(唱歌一定要, 语音可以不要):
Does the model have pitch guidance (singing must, voice can not.):
(モデルにピッチ – 音高ガイドが含まれるか?歌唱は必須・音声は任意)
否/no

【追記:2023年4月28日】
*注:リアルタイムボイスチェンジを試みる際の注意点
模型是否带音高指导(唱歌一定要, 语音可以不要)・Does the model have pitch guidance (singing must, voice can not.)」の設定を「否/no」に設定すると「ピッチレス」モデルとなり、リアルタイム音声変換をする際に、音声変換精度がやや劣るようです。音声変換精度を向上させたい場合には、「是/yes」を選択してみてください。ただし、VC Clientを利用する際に、お使いのパソコンの負荷を減らしたい場合には、「ピッチレス」モデルが候補の1つとなるようです。お使いのパソコンのスペックに応じて調整してみてください。
尚、「ピッチレス」モデルへの対応は、VC Client v.1.5.2.5(2023年4月26日)からのようです。VC Clientでリアルタイム音声変換をしたい方は、リアルタイムボイスチェンジを試す時点の最新版のVC Clientをダウンロードするようにしてみてください。

参考情報:
VC Client開発者によるアップデート情報
VCClient v.1.5.2.5のアップデート情報(1/2)ピッチレスモデル・RVC-WEBUIモデルをサポート – 2023年4月26日 | wok! @DannadoriYellow(Twitter)

 

【Step:2a】
自动遍历训练文件夹下所有可解码成音频的文件并进行切片归一化, 在实验目录下生成2个wav文件夹; 暂时只支持单人训练.

(trainingフォルダ内のすべてのデコード可能なオーディオファイルを自動的にトラバースし、スライスと正規化を行い、experimentalディレクトリに2つのwavフォルダを生成します。)
Automatically traverse all files that can be decoded into audio in the training folder and perform slice normalization, and generate 2 wav folders in the experiment directory; only single-person training is supported for the time being.
(trainingフォルダ内のオーディオにデコードできるすべてのファイルを自動的にトラバースしてスライス正規化を行い、実験ディレクトリ内に2つのwavフォルダを生成します。当面は一人用のトレーニングのみ対応します。)

 

step2a:Input training folder path(データセットのパスの設定)- RVC WebUIの使い方

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

 

step2a:Please specify speaker ID(識別番号の設定)- RVC WebUIの使い方

Please specify speaker ID:
(識別IDの設定)
0

 

【Step:2b】
使用CPU提取音高(如果模型带音高), 使用GPU提取特征(选择卡号)

Use CPU to extract pitch (if the model has pitch), use GPU to extract features (select card number)
(CPUでピッチを抽出 – ピッチ搭載機種の場合・GPUで特徴を抽出 – カード番号を選択)

step2b: 使用CPU提取音高(如果模型带音高), 使用GPU提取特征(选择卡号)- RVC WebUIの使い方

 

以-分隔输入使用的卡号, 例如 0-1-2 使用卡0和卡1和卡2:
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 information:
(GPUの情報)
0 Tesla T4

 

Step:1」で

模型是否带音高指导(唱歌一定要, 语音可以不要):
Does the model have pitch guidance (singing must, voice can not.):
(モデルにピッチ – 音高ガイドが含まれるか?歌唱は必須・音声は任意)
是/yes

に設定した場合には、以下のピッチ抽出で使うCPUの設定やアルゴリズムの設定があります。

 

Number of CPU processes used for pitch extraction:ピッチ抽出に使用されるCPUプロセス数・アルゴリズムの設定- RVC WebUIの使い方

Number of CPU processes used for pitch extraction:
(ピッチ抽出に使用されるCPUプロセス数の設定)
2
*一例

Select pitch extraction algorithm: Use ‘pm’ for faster processing of singing voice, ‘dio’ for high-quality speech but slower processing, and ‘harvest’ for the best quality but slowest processing.
(ピッチ抽出アルゴリズムの設定 歌声の処理を高速化するには「pm」を使用。高品質の音声を処理するには「dio」を使用(低速)。最高の品質で処理をするには「harvest」を使用。ただ最も処理が遅くなります。)
harvest
*一例

 

【Step:3】
填写训练设置, 开始训练模型和索引

Fill in the training settings, start training the model and index
(トレーニングの設定を記入し、モデルのトレーニングを開始し、インデックスを作成する。)

 

step3:填写训练设置, 开始训练模型和索引Save frequency(保存間隔)- RVC WebUIの使い方

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

*数百回〜1000回レベルでGoogle Colaboratoryの無料枠で学習させる場合に、ここの設定で行き詰まる方もいるのではないかと思いまいす。
以下に、WebUI上の上限を変更する方法をまとめておきましたので、必要に応じて参照いただけますと幸いです。

Save frequency (save_every_epoch)」(学習モデルの保存頻度)の上限を変更する方法
【RVC WebUIの使い方】学習の保存頻度上限を変更編:Save frequencyを変えてGoogle Colaboratoryの無料枠のディスク容量上限対策

 

step3:Total training epochs(エポック数・学習回数)- RVC WebUIの使い方

Total training epochs (total_epoch):
(学習回数 – エポック数)
10
*時間に余裕がある方は学習回数を増やすと音声変換の質が向上するかもしれません
*音声変換の質を向上させたい場合には、「音声ファイル数」や「音声の時間」を増やしてみてください

 

step:3每张显卡的batch_size(バッチサイズ)- RVC WebUIの使い方

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

 

step3:Whether to save only the latest ckpt file to save disk space- RVC WebUIの使い方

Whether to save only the latest ckpt file to save disk space:
(ディスク容量を節約するために、最新のckptファイルのみを保存するかどうか)
否/no

 

step3:是否缓存所有训练集至显存. 10min以下小数据可缓存以加速训练, 大数据缓存会炸显存也加不了多少速- RVC WebUIの使い方

是否缓存所有训练集至显存. 10min以下小数据可缓存以加速训练, 大数据缓存会炸显存也加不了多少速:
Whether to cache all training sets to video memory. Small data under 10 minutes can be cached to speed up training, and large data cache will blow up video memory and not increase the speed much:
(すべての学習セットをビデオメモリにキャッシュするかどうか。10分以下の小さなデータはキャッシュすることでトレーニングの高速化が可能ですが、大きなデータをキャッシュするとメモリが膨れ上がってしまい、あまり高速化できません。)
否/no

 

step3:Load pre-trained base model G path.- RVC WebUIの使い方

Load pre-trained base model G path.:
(事前学習モデルGのファイルのパスを指定)
pretrained/G40k.pth

 

step3:Load pre-trained base model D path.- RVC WebUIの使い方

Load pre-trained base model D path.:
(事前学習モデルDのファイルのパスをパス)
pretrained/D40k.pth

 

step3:以-分隔输入使用的卡号, 例如 0-1-2 使用卡0和卡1和卡2- RVC WebUIの使い方

以分隔输入使用的卡号,例如0-12使用卡0和卡1和卡2:
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~12です)
0

 

設定ができたら

学習開始:One-click training

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

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

 

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

 

RCV WebUI上の出力結果
*「Train」内の「Output information」の出力

学習完了:全流程结束!

step1:正在处理数据
python3 trainset_preprocess_pipeline_print.py /content/drive/MyDrive/dataset 40000 2 /content/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro False
step2a:无需提取音高
step2b:正在提取特征
python3 extract_feature_print.py cuda:0 1 0 0 /content/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro
step3a:正在训练模型
write filelist done
python3 train_nsf_sim_cache_sid_load_pretrain.py -e amitaro -sr 40k -f0 0 -bs 3 -g 0 -te 10 -se 5 -pg pretrained/G40k.pth -pd pretrained/D40k.pth -l 0 -c 0
训练结束, 您可查看控制台训练日志或实验文件夹下的train.log
(889, 256),22
training index
adding index
成功构建索引, added_IVF22_Flat_nprobe_2.index
全流程结束!(全プロセス終了!)

2023年5月9日時点の表示

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
step 3a: training the model
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/f0G40k.pth -pd pretrained/f0D40k.pth -l 0 -c 0
Training completed, you can view the training logs in the console or the train.log within the experiement folder
(1611, 256),41
training index
adding index
成功构建索引, added_IVF41_Flat_nprobe_1.index
all processes have been completed!(全プロセス終了!)

 

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

学習中の様子:RVC-WebUI-for-Japanese-AI-beginners.ipynb

INFO:amitaro:====> Epoch: 1
/usr/local/lib/python3.9/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
INFO:amitaro:====> Epoch: 3
INFO:amitaro:====> Epoch: 4
INFO:amitaro:Saving model and optimizer state at epoch 5 to ./logs/amitaro/G_15.pth
INFO:amitaro:Saving model and optimizer state at epoch 5 to ./logs/amitaro/D_15.pth
INFO:amitaro:====> Epoch: 5
INFO:amitaro:====> Epoch: 6
INFO:amitaro:====> Epoch: 7
INFO:amitaro:====> Epoch: 8
INFO:amitaro:====> Epoch: 9
INFO:amitaro:Saving model and optimizer state at epoch 10 to ./logs/amitaro/G_30.pth
INFO:amitaro:Saving model and optimizer state at epoch 10 to ./logs/amitaro/D_30.pth
INFO:amitaro:====> Epoch: 10
INFO:amitaro:Training is done. The program is closed.
INFO:amitaro:saving final ckpt:Success.

 

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

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

・「amitaro.pth
Input experiment name:(出力される学習モデルの名前)で「amitaro」という名前に設定した場合の例

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

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

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

 

 

RVC WebUIの使い方:モデル推論編(音声変換)
– Model inference

 

RVC WebUIの使い方:推論編(音声変換)男性の声から女性の声への変換
*画像をクリックすると拡大されます。以下の説明で例示している設定になっています。必要に応じて参考にしてみてください。

 

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

 

Model inference:Refresh timbre list - RVC WebUIの使い方

Refresh timbre list」(学習モデルのリストを更新する)のボタンをクリック後に

Model inference:Inferencing timbreで学習モデルが選択可能になる - RVC WebUIの使い方

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

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

 

Model inference:Please select a speaker id(識別番号の指定) - RVC WebUIの使い方

Please select a speaker id:
(識別ID)
0
*学習の際に「Please specify speaker ID:」(識別IDの設定)を「0」にした場合の例

 

男转女推荐+12key, 女转男推荐-12key, 如果音域爆炸导致音色失真也可以自己调整到合适音域.
It is recommended +12key for male to female conversion, and -12key for female to male conversion. If the sound range explodes and the timbre is distorted, you can also adjust it to the appropriate range by yourself.
(男性から女性への推奨は+12key、女性から男性への推奨は-12key、もしレンジ爆発で歪みが発生する場合は、自分で正しいレンジに音色を調整することもできます)

 

Model inference:キーの設定・音声変換するファイル指定・変換方式の設定 - RVC WebUIの使い方:AIボイスチェンジ

变调(整数, 半音数量, 升八度12降八度-12):
(変調 – 整数、半音数、昇順オクターブ12降順オクターブ-12)
transpose(integer, number of semitones, octave sharp 12 octave flat -12)
(変調:整数、半音数、オクターブシャープ12 オクターブフラット-12)
+12
*チュートリアルでは男性の声→女性の声に変換のため+12にしています

 

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

 

Select the algorithm for pitch extraction. Use ‘pm’ to speed up for singing voices, or use ‘harvest’ for better low-pitched voices, but it is extremely slow.:
(ピッチ抽出のアルゴリズムを選択します。歌声の場合は「pm」を使って高速化し、低音の場合は「harvest」を使うと良いが、非常に遅い)
harvest
*音声変換の質を向上させたい場合には、「harvest」を選択。

 

Model Inference:Feature search database file path - RVC WebUIの使い方

Feature search database file path:
(FEATUREサーチパスを設定・特徴量検索データベースファイルのパスを設定)
/content/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro/added_IVF20_Flat_nprobe_2.index
(一例です)
*学習の際に「Input experiment name:」(出力される学習モデルの名前)を「amitaro」にした場合の例
*「Retrieval-based-Voice-Conversion-WebUI」のフォルダの「logs」内の「added〜.index」のファイルのパスをコピー後に入力欄に貼り付けてください

 

Model Inference:Feature file path - RVC WebUIの使い方

Feature file path:
(FEATUREファイルパスを設定・特徴量ファイルのパスを設定)
/content/Retrieval-based-Voice-Conversion-WebUI/logs/amitaro/total_fea.npy
(一例です)
*学習の際に「Input experiment name:」(出力される学習モデルの名前)を「amitaro」にした場合の例
*「Retrieval-based-Voice-Conversion-WebUI」のフォルダの「logs」内の「total_fea.npy」のファイルのパスをコピー後に入力欄に貼り付けてください
*注:2023年5月9日確認時点では、こちらの設定は廃止されました。

 

Model Inference:检索特征占比 - RVC WebUIの使い方

检索特征占比:
Search feature ratio:
(検索特徴率:サーチ・検索機能の割合)
1
*検索特徴率を「1」に近づけるほど、今回学習させた「学習モデル」の特徴(音色の品質)に偏らせるようです。

 

設定が完了したら

Model Inference:Conversion - RVC WebUIの使い方

Conversion/Convert
(変換)

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

数秒〜10秒ほどで推論完了。
1〜3秒ほどのファイル10個で学習させただけでしたが、聞いてみると女性っぽい声に変換されていました。
さらに音声変換をしっかりとするには、ファイル数や学習回数を増やす必要はありそうです。

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

ボイチェン後の音声のダウンロード方法-RVC WebUIの使い方

输出音频(右下角三个点,点了可以下载)
Export audio (three dots in the lower right corner, click to download)
(出力オーディオ – 右下隅の3つのドット、クリックしてダウンロード)

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

TEMP」フォルダ内に以下の

推論:TEMPフォルダ内にwavファイルが出力 - RVC WebUIの使い方

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

のようなファイル名で保存されますので、必要に応じてローカル環境(自分のパソコン)にダウンロードして使ってみてください。
また、新たに推論をさせるとファイルが追加されていきます。

 

その後、10ファイルで何度かやってみましたが、かすれた声になってしまうこともあるようでした・・・

 

保存頻度5・50ファイル・学習回数20回・バッチサイズ5(学習時間は数分程度)で学習すると、少しずつ声の張りが似てくるようでした。

保存頻度5・100ファイル・学習回数40回・バッチサイズ5(学習時間は5分程度)で学習すると、全体的に似てくるようでした。今回のチュートリアルの男性の声を、「あみたろ」さん(女性の声)に変換する際に12キー以上に設定してみても良さそうでした。

Google Colaboratoryでは、自分のパソコンへの負荷を気にせずに、学習や音声変換を試行錯誤できるのでありがたいです。

 

やり方さえ分かれば、オリジナルAIボイスチェンジャーが作れてしまう・・・
当たり前のように自分の声をコスプレする時代…?
すごいですね。

 

 

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

 

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

 

情報が増えてきましたので、ページを分けました。
現在疑問に思っていることなどの解決のきっかけとなることがありましたら幸いです。

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

 

 

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

 

 

 

【音声認識】

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

 

【音声合成】

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

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