【ddPn08版】日本人のためのRVC WebUIの使い方 – AIボイスチェンジャー入門

 

Table of Contents

【動画で解説】現代の魔法:RVC WebUIの使い方
– だだっこぱんだ🍞さん版のAIボイスチェンジャーを使おう
RVC WebUI(ddPn08 edition)- AI Voice Changer Tutorial

 

 

【ddPn08版】RVC WebUIの使い方入門:オリジナルAIボイスチェンジャーを作ろう

視聴時間:27分32秒

文字情報だけではわかりにくい場合に、だだっこぱんだ🍞(ddPn08)さん版のRVC WebUIを導入前に解説動画をご活用いただけますと幸いです。
* 2024年9月8日時点でコードを修正しておきました。
【2024年9月4日時点の状況】学習時に「preprocessing」で止まってしまう現象があるようです。また、推論時にGoogle Colaboratory上のoutputフォルダ内に音声変換後のファイルが出力されるもWebUI上の処理が終わらないので、適宜WebUIを手動で終了させる必要があるようです。尚、出力されたファイルはダウンロード可能とのことでした。
【2024年9月9日時点の状況】学習できないとのことでした・・・

 




 

【更新状況:だだっこぱんだ🍞さん版RVC WebUI】

– 2023年5月23日 –
RVC公式の事前学習済みモデルのバージョン2(RVC v2モデル)に対応開始。

公開直後に確認時点では、いくつか注意点もありそうでしたので動画でまとめておきました。

【RVC v2モデル対応編】だだっこぱんださん版 - RVC WebUIの注意点解説RVC v2 model supported ddPn08 Edition AI Voice Change

【RVC v2モデル対応編】だだっこぱんださん版 – RVC WebUIの注意点解説RVC v2 model supported ddPn08 Edition AI Voice Change by RehabC – デジタルで、遊ぶ。(YouTube動画)
8分程度の動画ですので事前に確認いただくと、困らないのではないかと思います。

上記の動画では、

・注意点①:データセットのパスの設定方法
・注意点②:RVC v2設定時に気をつけること
・注意点③:2度目の学習について

→ 2023年6月8日時点で、2度目の学習のエラー「RuntimeError(“trying to initialize the default process group ” “twice!”)」に対して、開発者の方によりコードの修正が行われる準備が整いつつあるようでした。(確認時点では、コードは未修正)
→ 2023年6月9日時点でコード修正済みのようでした。
→2023年6月15日時点でコードを実行してみたところ、RVC WebUIを1度起動させてから何度学習してもエラーは出なくなっていました。

について注意点と対応例の手順をまとめておきました。

 

– 2023年6月1日 –
機能の追加。

・学習時のデータオーグメンテーション機能
・k-means法によるindexの圧縮機能

開発者の方による解説:
だだっこぱんだ🍞さん版RVC WebUIの機能追加について 2023年6月1日 – nadare🌱@Py2K4 | Twitter

この記事でも2023年6月5日に、機能追加の内容を反映させていただきましたので、一連の動画で大まかな使い方を把握していただいた後に、この記事の「【ddPn08版】RVC WebUIの使い方:学習編 (データセットで学習モデル作成)- Training」のところで、

・各設定が何を意味するのか?
・エラーを回避するにはどうすればいいのか?

ご確認ください。

 

– 2023年6月18日 –

2023年6月15日に、学習・推論の際の

・Pitch extraction algorithm
(ピッチ抽出アルゴリズム)

の設定で

・crepe(クレープ)
*オリジナル版のcrepe

・mangio-crepe(マンジョクレープ)
*フォーク版のcrepe

の機能が追加。
学習時の設定の「Model version」(RVCのモデルバージョン)で「RVC v1」選択時や、「Embedding channels」(次元数の選択)で「256次元」を選択時に出るエラーは残存していましたので、学習を実行する際に、引き続き注意してみてください。

 

– 2023年7月9日 –

2023年7月9日に確認時点では、学習を実行しても

・Google Colaboratory上の出力に「2023-07-09 〜 | INFO | httpx | HTTP Request: POST 〜/reset “HTTP/1.1 200 OK”」

が出力されるだけで、GPUも使用されていないようでしたので、

・使えない状態

でした。
おそらくですが、

・「train.py

train.py「DDPの修正 + augmentの音声も保存する」「multispeaker対応+名前の自動化+sampleの保存」:2023年7月 – ddPn08/rvc-webui | GitHub

のコードが最近、大きく改変されているようでしたので、プログラムの改変に伴うバグかと思われます。
開発者の方が修正してくださるのを待つほかないかと思います。

→ 2023年7月18日時点で改善済みでした。

 

– 2023年7月18日 –

2023年7月18日から

・【手順7:依存関係などのインストール & RVC WebUIの起動】

を実行すると

ValueError: mutable default <class ‘fairseq.dataclass.configs.CommonConfig’> for field common is not allowed: use default_factory

というエラーが出るようでしたので、エラーが出ないように修正しておきました。
Pythonのバージョンに伴うエラーのようでした。(Python 3.11系ではエラーとなるようです。Python 3.10系にしたら直りました)

 

– 2024年1月28日 –

他の動画の視聴者の方から報告いただいた情報では、Google Colaboratoryの有料版で学習・推論までできたとのことでした。

 

– 2024年2月10日 –

2024年2月に入り「Cannot uninstall ‘blinker’」などのエラーが出て使えない状況でしたが、2024年2月10日にコードを修正後、RVC WebUIのチュートリアル動画の視聴者の方から報告いただいた情報では、Google Colaboratoryの有料版で学習・推論までできたとのことでした。
(「手順7」の処理の過程で「Cannot uninstall ‘blinker’」)が表示されるかと思いますが、最終的に「Flask」がインストールできていればOKと思われます。

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

 

– 2024年7月27日(土) –

omegaconf」関連の依存関係のエラーなどを修正しておきました。
(【手順5:RVC WebUIのリポジトリをクローン】【手順7:依存関係などのインストール & RVC WebUIの起動】のコードを修正)

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

 

– 2024年7月30日(火)・31日(水)-

numpy」関連の推論時のエラー「AttributeError: module ‘numpy’ has no attribute ‘int’.」対策をしておきました。
(【手順5:RVC WebUIのリポジトリをクローン】のコードを修正)

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

 

– 2024年8月28日(水)- → 2024年8月30日に無効化

PyTorch」(torch==2.4.0)関連の警告「FutureWarning: You are using torch.load with weights_only=False」対策として

・PyTorchのバージョンを2024年7月時点のバージョン(torch==2.3.1)

にダウングレードできるようにコードを修正しておきました。
(【手順7:依存関係などのインストール & RVC WebUIの起動】のコードを修正)

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

 

– 2024年8月29日(木)- → 2024年8月30日に無効化

torch.nn.utils.weight_norm」関連の警告「UserWarning: torch.nn.utils.weight_norm is deprecated in favor of torch.nn.utils.parametrizations.weight_norm.〜’AsyncRequest’ object has no attribute ‘_json_response_data’」対策をしておきました。
(【手順5:RVC WebUIのリポジトリをクローン】のコードを修正)

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

 

– 2024年8月30日(金)-

以下、無効化し挙動の経過観察中です。

・「PyTorch」(torch==2.4.0)関連の警告「UserWarning:」の表示を無効化
(【手順5:RVC WebUIのリポジトリをクローン】のコードを修正)

・「PyTorch」(torch==2.3.1)へのダウングレードを無効化
(【手順7:依存関係などのインストール & RVC WebUIの起動】のコードを修正)

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

 

– 2024年9月2日(月)-

numpy」のバージョンが1ヶ月前に比べアップデートされていたので「numpy==1.25.2」のバージョンにダウングレードできるようにコードを追加・修正しました。
(【手順0:Numpyのダウングレード & セッションの再起動(設定の反映)】の手順を追加)
(【手順5:RVC WebUIのリポジトリをクローン】のコードを修正)

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

 

– 2024年9月2日(月):追加修正:20時50分-

2024年9月2日の「numpy」のバージョン変更にて、推論の際に、ボイスチェンジされた音声ファイルがGoogle Colaboratory上に出力され、ダウンロードできるようになったようですが、WebUI上の処理が終わらない状態のようでした。
そのため、試しに、だだっこぱんださん版のRVC WebUIで指定されている「PyTorch」(torch==2.0.0)のバージョンへダウングレードしてみました。
(【手順7:依存関係などのインストール & RVC WebUIの起動】のコードを修正)

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

2024年9月3日時点:
チュートリアル動画の視聴者の方から教えていただいた情報では、状況は2024年9月2日の「numpy」のバージョン変更後と変わらないとのことでした。

 

– 2024年9月3日(火)

だだっこぱんださん版のRVC WebUIで指定されているrequirements通りに「numpy==1.23.5」「scipy==1.9.3」をそのまま使ってみる仕様に変更しました。
(【手順0:Numpyのダウングレード & セッションの再起動(設定の反映)】のコードを修正)
(【手順5:RVC WebUIのリポジトリをクローン】のコードを修正)

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

 

– 2024年9月3日(火):22時追加修正あり版

numpy==1.23.5」では、依存関係の競合エラーが回避できないので「numpy==1.24.4」にダウングレードできるようにコードを修正しました。
また、1ヶ月前に比べ「tensorflow」のバージョンも「tensorflow==2.17.0」にアップデートされていたため「tensorflow==2.15.0」のバージョンにダウングレードできるようにコードを修正しました。
(【手順0:Numpyのダウングレード & セッションの再起動(設定の反映)】を削除)
(【手順5:RVC WebUIのリポジトリをクローン】のコードを修正)
(【手順7:依存関係などのインストール & RVC WebUIの起動】のコードを修正)

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

→ 2024年9月4日にチュートリアル動画の視聴者の方から教えていただいた情報では、状況は2024年9月2日の「numpy」のバージョン変更後と変わらないとのことでした。
(WebUI上の推論は完了しないものの、Google Colaboratory上にボイスチェンジ後のデータは出力される状態)
原因の特定が難しいので、新たな不具合が発生しない限り、現状のコードのままにさせていただきます。

 

– 2024年9月4日(水)
利便性を考え、【手順7】のRVC WebUIの起動の手順と依存関係のインストールの手順を分けました。

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

 

– 2024年9月7日(土)-
学習時に「preprocessing」で止まってしまう現象に対して、学習時の以下の警告

・RuntimeWarning: os.fork() was called. os.fork() is incompatible with multithreaded code, and JAX is multithreaded, so this will likely lead to a deadlock. self.pid = os.fork()

・AsyncRequest’ object has no attribute ‘_json_response_data’

対策として「jax」「requests」のバージョンをダウングレードしておきました。
(【手順7-1:依存関係などのインストール】のコードを修正)

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

→2024年9月7日時点で、チュートリアル動画の視聴者の方から教えていただいた情報では、状況は変わらないとのことでした。

 

– 追記:2024年9月8日 –

学習時に「preprocessing」で止まってしまう現象に対して、public URL発行時の以下の警告

・/content/rvc-webui/modules/tabs/training.py:381: GradioUnusedKwargWarning: You have unused kwarg parameters in Checkbox, please remove them: {‘disabled’: False}
・server.py:16: GradioDeprecationWarning: The style method is deprecated. Please set these arguments in the constructor instead.’

対策として「gradio==3.34.0」のバージョンを指定しておきました。
(上記の警告は仮に残ってしまっても無視します)

また、学習時の以下の警告

・Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered ‘AsyncRequest’ object has no attribute ‘_json_response_data’
・extract_f0.py:63: RuntimeWarning: invalid value encountered in divide x /= np.quantile(np.abs(x), 0.999)

対策として「tensorflow==2.16.1」のバージョンを指定し、依存関係を修正しておきました。
(【手順5:RVC WebUIのリポジトリをクローン】のコードを修正)
(【手順7-1:依存関係などのインストール】のコードを修正)

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

 

 

【ddPn08版 – RVC WebUIのチュートリアル動画の内容】

0:00 はじめに
0:55 Google Colaboratoryの使い方
1:39 RVC WebUI起動編:コードの実行
3:02 データセットなどの準備
7:30 Goolge Colaboratoryにファイルが反映されない場合の対処法
8:14 起動までの手順を実行
9:24 RVC WebUI学習編
18:28 RVC WebUIモデル推論編(AIボイスチェンジ)
24:59 続けて、新たな学習モデルを作成する方法
25:29 以前作成した学習モデルで推論する方法例
27:07 最後に

 

【ddPn08版 – RVC WebUIの特徴】2023年5月14日時点

特徴①:
事前学習モデルが

・hubert-base-japanese(ヒューバートベイスジャパニーズ)
*日本語の音声に特化したHuBERT(ヒューバート)

・contentvec(コンテントベック)
*オリジナル版のRVC WebUIで利用

から選べる。

 

特徴②:
768次元のphone embeddingsに対応。

 

 

だだっこぱんだ🍞さん版のRVC WebUIも使いたい!
でも、使い方が分からない・・・

 

 

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

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

の、だだっこぱんだ🍞(ddPn08)さん版のRVC WebUIである

だだっこぱんだ🍞(ddPn08)さん版のRVC WebUI:
ddPn08/rvc-webui(The MIT License)| GitHub

を使いたくても、

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

などと、悲しい思いをされている方も多いのではないかと思います。
プログラムを使うには、

・機械学習プログラムのルール
・ある程度のファイル構造の理解
・ファイルの指定の仕方

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

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

 

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

 

 

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

 

 

だだっこぱんだ🍞(ddPn08)さん版のRVC WebUIを日本人の方が気軽に試せるように、使い方の解説などを入れたサンプルコードを公開しました。
プログラムの起動方法が分からずにお悩み中の日本人のAI初学者の方の参考になることがありましたら幸いです。

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

 

サンプルコード「RVC-WebUI-ddPn08-Version-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

 

 

【だだっこぱんだ🍞(ddPn08)さん版】RVC WebUIの起動方法・導入方法
:最終更新 2024年9月8日

 

 

【手順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:Google Driveのマウント】

 

 

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

実行コード

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

 

 

【手順3: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個」の音声ファイルで学習していますが、本格的に音声変換したい方は、音声ファイル数を増やし、学習回数(Epoch数)を調整してみてください。

 

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

・Audacity

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

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

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

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

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

 

 

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

 

 

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

実行コード

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

 

 

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

 

 

GitHubから「ddPn08/rvc-webui」のプログラムをGoogle Colaboratoryにコピーします。

実行コード

%cd /content/
repository_url = "https://github.com/ddPn08/rvc-webui.git"
webui_branch = "main"

! git clone {repository_url}
%cd /content/rvc-webui

# 2024年7月27日:numpy・scipy関連のエラー対策としてrequirementsの内容を書き換え(最新のバージョンを利用)→ 2024年9月2日:「numpy==1.25.2」「scipy==1.13.1」を指定
# 2024年7月27日時点のGoogle Colaboratoryの環境「numpy==1.25.2」「scipy==1.13.1」
!pip install textfile
import textfile

# 2024年9月3日:ここのコードを無効化し、requirements通りに「numpy==1.23.5」「scipy==1.9.3」のそのまま使ってみる仕様に変更してRVC WebUIの挙動を確認していただく
# textfile.replace("/content/rvc-webui/requirements/main.txt", "numpy==1.23.5", "numpy==1.25.2")
# textfile.replace("/content/rvc-webui/requirements/main.txt", "scipy==1.9.3", "scipy==1.13.1")

# 2024年9月3日(追加修正後):「numpy==1.23.5」の依存関係の競合エラーを回避するために「numpy==1.24.4」のバージョンを指定する
textfile.replace("/content/rvc-webui/requirements/main.txt", "numpy==1.23.5", "numpy==1.24.4")

# 2024年9月8日:gradio関連の警告を回避できるか検証するために「gradio==3.34.0」のバージョンを指定する
# 警告内容
# GradioUnusedKwargWarning: You have unused kwarg parameters in Checkbox, please remove them: {'disabled': False}
# GradioDeprecationWarning: The `style` method is deprecated. Please set these arguments in the constructor instead
# ただし、警告は残ったとしても無視する
textfile.replace("/content/rvc-webui/requirements/main.txt", "gradio==3.36.1", "gradio==3.34.0")

# 2024年7月30日:numpyバージョンによるエラー「AttributeError: module 'numpy' has no attribute 'int'.」対策:「np.int」を「int」に書き換え
textfile.replace("/content/rvc-webui/lib/rvc/preprocessing/extract_f0.py", "astype(np.int)", "astype(int)")
textfile.replace("/content/rvc-webui/lib/rvc/pipeline.py", "astype(np.int)", "astype(int)")


# 2024年8月30日:「FutureWarning」を非表示に設定
#「torch==2.4.0」で推論時に以下の「FutureWarning」
# 「FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling」
import warnings
warnings.simplefilter('ignore', FutureWarning)

 

 

【手順6:環境の初期化】

 

 

実行コード

import os

conda_dir = "/opt/conda"
conda_bin = os.path.join(conda_dir, "bin", "conda")

# 2023年7月18日時点では、最新版がPython3.11となり、手順7で
# 「ValueError: mutable default  for field common is not allowed: use default_factory」
# のエラーとなるため 最新版ではなく、Python 3.10 「https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-x86_64.sh」 を指定。
if not os.path.exists(conda_bin):
    ! curl -O https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-x86_64.sh
    ! chmod +x Miniconda3-py310_23.5.2-0-Linux-x86_64.sh
    ! bash ./Miniconda3-py310_23.5.2-0-Linux-x86_64.sh -b -f -p {conda_dir}
    ! rm Miniconda3-py310_23.5.2-0-Linux-x86_64.sh

def run_script(s):
    ! {s}

def make_args(d):
    arguments = ""
    for k, v in d.items():
        if type(v) == bool:
            arguments += f"--{k} " if v else ""
        elif type(v) == str and v:
            arguments += f"--{k} \"{v}\" "
        elif v:
            arguments += f"--{k}={v} "
    return arguments

if os.path.exists("requirments.txt"):
    ! mv requirments.txt requirements.txt

 

 

【手順7-1:依存関係などのインストール】

 

 

2024年9月4日時点:
利便性を考え、RVC WebUIの起動の手順と依存関係のインストールの手順を分けました。

2024年9月7日時点:
学習時に「preprocessing」で止まってしまう現象に対しての学習時の警告対策のコード修正に伴い、以下のエラー

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. google-colab 1.0.0 requires requests==2.32.3, but you have requests 2.31.0 which is incompatible. Successfully installed requests-2.31.0

などが2回ほど表示されますが「requests==2.31.0」がインストールできているのでエラー(警告)を無視します。

実行コード

# 2024年9月3日(追加修正後):「tensorflow==2.15.0」を指定(「tensorflow==2.17.0」からダウングレード)し依存関係の調整
# 2024年9月7日:「tensorflow 2.15.0 requires ml-dtypes~=0.2.0, but you have ml-dtypes 0.4.0 which is incompatible.」対策で「ml-dtypes==0.2.0」の指定を追加
# 2024年9月8日:学習時の以下のエラーの対策
# Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
#「tensorflow==2.16.1」を指定。念のため、「tensorflow[and-cuda]==2.16.1」としcud12もインストール
# 参考:cuDNN, cuFFT, and cuBLAS Errors #62075 - tensorflow/tensorflow | GitHub https://github.com/tensorflow/tensorflow/issues/62075#issuecomment-2308943719
#「/content/rvc-webui/lib/rvc/preprocessing/extract_f0.py:63: RuntimeWarning: invalid value encountered in divide x /= np.quantile(np.abs(x), 0.999)」の警告は、
# 補足:cuBLAS(cudaの BLAS- Basic Linear Algebra Subprograms:基本線形代数サブプログラム群 が影響しているものと推測し今回 - 2024年9月8日 は未対応で様子を見る)
# !pip3 install tensorflow==2.15.0 tf-keras==2.15.1 tensorstore==0.1.40 orbax-checkpoint==0.4.4 ml-dtypes==0.2.0
!pip3 install tensorflow[and-cuda]==2.16.1 tf-keras==2.16.0 tensorstore==0.1.40 orbax-checkpoint==0.4.4 ml-dtypes==0.3.1


# 2024年9月7日:学習時の以下の警告対策
# RuntimeWarning: os.fork() was called. os.fork() is incompatible with multithreaded code, and JAX is multithreaded, so this will likely lead to a deadlock. self.pid = os.fork()
# 上記の警告が出ないjaxのバージョンのダウングレード+依存関係の調整
!pip3 install jax==0.4.23 jaxlib==0.4.23

# 2024年9月7日:学習時の以下の警告対策
# AsyncRequest' object has no attribute '_json_response_data'
# 2024年7月31日時点のrequestsのバージョンのダウングレード+依存関係の調整 補足:anacondaでは「requests==2.29.0」
!pip3 install requests==2.31.0 requests-oauthlib==1.3.1

# 2024年9月3日(追加修正後):「numpy」の依存関係の競合エラーを回避するために「numpy==1.23.5」から「」に指定しRVC WebUIの挙動を検証していただく
#「numpy==1.26.4」から「numpy==1.24.4」にダウングレードするための準備
!pip3 install pandas-stubs==2.0.1.230501 # numpy==1.23.5が使えるpandas-stubsのバージョンを指定
!pip3 install optax==0.2.1 # chex==0.1.7が使えるoptaxのバージョンを指定
!pip3 install chex==0.1.7 # numpy==1.23.5(1.25.2)が使えるchsxのバージョンを指定
!pip3 install typeguard==3.0.2 inflect==6.0.5 albumentations==1.3.1 albucore==0.0.5
#!pip3 uninstall albucore -y #「numpy==1.23.5」の競合エラーのためalbucoreを削除

#「numpy==1.24.4」にダウングレード+依存関係の調整:2024年9月3日(追加修正後)の一連のコードを実施すると、ランタイムのリセットが要求されない
!pip3 install numba>=0.57.0 llvmlite==0.43.0 numpy==1.24.4


# # 以下、2024年9月3日追加修正前のコード(ランタイムのリセットが要求されるコード)
# # 2024年9月3日:「numpy==1.23.5」に指定しRVC WebUIの挙動を検証していただく
# #「numpy==1.26.4」から「numpy==1.23.5」にダウングレードするための準備
# !pip3 install pandas-stubs==2.0.1.230501 # numpy==1.23.5が使えるpandas-stubsのバージョンを指定
# !pip3 install optax==0.2.1 # chex==0.1.7が使えるoptaxのバージョンを指定
# !pip3 install chex==0.1.7 # numpy==1.23.5(1.25.2)が使えるchsxのバージョンを指定
# !pip3 install typeguard==3.0.2 inflect==6.0.5 albumentations==1.3.1
# !pip3 uninstall albucore -y #「numpy==1.23.5」の競合エラーのためalbucoreを削除

# #「numpy==1.23.5」にダウングレード
# !pip3 install numpy==1.23.5


# # 以下、2024年9月2日時点のコード
# # 現在の「numpy==1.26.4」をアンインストール
# !pip3 uninstall numpy -y
# # numpy==1.25.2が使えるpandas-stubsのバージョンにダウングレード
# !pip3 install pandas-stubs==2.0.1.230501
# #「numpy==1.25.2」をインストール
# !pip3 install numpy==1.25.2


# 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

# # 2024年8月30日時点:PyTorchダウングレードの無効化
# # 2024年8月28日時点:PyTorch 2.4.0 の FutureWarning: You are using `torch.load` with `weights_only=False` 警告対策
# # PyTorchのバージョンを 2.3.1 にダウングレード+依存関係の調整
# !pip3 install torch==2.3.1 torchtext==0.18.0 torchvision==0.18.1 torchaudio==2.3.1

# 2023年7月9日実行時点:Python 3.10.10 [GCC 11.2.0]
# 2023年7月18日実行時点:Python 3.10.12 [GCC 11.2.0] *注:Python 3.10 「https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-x86_64.sh」 を指定
run_script(f"""
eval "$({conda_bin} shell.bash hook)"
""")

# 2024年9月2日時点:PyTorchダウングレード(Google Colaboratoryの初期設定:torch==2.4.0)
# だだっこぱんださん版のRVC WebUIで指定されているPyTorchのバージョン「torch==2.0.0」を指定+各種依存関係の調整
!pip3 install torch==2.0.0 torchtext==0.15.1 torchvision==0.15.1 torchaudio==2.0.1

# 2024年2月9日追記:gradio_clientをダウングレード
!pip3 install gradio_client==0.8.1
# 2024年2月10日追記:Cannot uninstall 'blinker'対策 Flaskのインストールエラー
!pip3 install --ignore-installed blinker==1.6.2
# 2024年2月10日追記 Flaskのインストール
!pip3 install Flask==2.3.2

# # 2024年9月4日:無効化(推論のたびにRVC WebUIを終了する必要があるためRVC WebUIの起動用のコードの欄を手順7-2として新たに作成)
# run_script(f"""
# python launch.py --share --host 0.0.0.0 --port 41130
# """)

# 2024年2月9日までのコード
# run_script(f"""
# eval "$({conda_bin} shell.bash hook)"
# python launch.py --share --host 0.0.0.0 --port 41130
# """)

 

 

【手順7-2:RVC WebUIの起動】

 

 

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

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

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

【2024年9月4日】
推論時にGoogle Colaboratory上のoutputフォルダ内に音声変換後のファイルが出力されるもWebUI上の処理が終わらないので、適宜WebUIを手動で終了させる必要があるようです。
尚、出力されたファイルはGoogle Colaboratory上でダウンロード可能とのことでした。

実行コード

# 2024年9月4日:推論のたびにRVC WebUIを終了する必要があるためRVC WebUIの起動用のコードの欄を手順7-2として新たに作成
run_script(f"""
python launch.py --share --host 0.0.0.0 --port 41130
""")

 

 

【ddPn08版】RVC WebUIの使い方:学習編
(データセットで学習モデル作成)- Training:最終更新 2023年7月

 

【ddPn08・だだっこぱんださん版】RVC WebUIの使い方:学習編(Training)の設定例 2023年7月18日版 - AIボイスチェンジャー
*画像をクリックすると拡大されます。以下の説明で例示している設定になっています。必要に応じて参考にしてみてください。

 

【2023年7月18日時点の表示に対応済み】
* チュートリアル動画の設定と違いますので、以下の内容を基に設定をどうするか?検討してみてください。

 

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

 

Model Name:
(出力される学習モデルの名前)
amitaro

 

Ignore cache:
(キャッシュを無視するか?)
チェックなし

 

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

 

Recursive:
(ファイル読み込みの設定)
チェックを入れる
*注:ここのチェックを外した状態で、「Dataset glob:/content/drive/MyDrive/dataset」の設定にすると「Exception: No audio files found」というエラーになります。
対応方法例としては、「Dataset glob:」(学習させるデータセットフォルダのパスを指定)の設定を「/content/drive/MyDrive/dataset/*.wav」にすると、うまくファイルを読み込めるようでした。

 

Multiple speakers:
(複数の話者かどうか)
チェックなし
*一例
*2023年5月のアップデートで「複数話者に対応した学習」もできるようになったようです。

 

Speaker ID:
(識別IDの設定)
0
*推論の際に識別できるように、識別IDを指定しておきます。1度学習後に、新たに違う設定で学習させたい場合には、ここの数値を変更するようにします。

 

Model version:
(RVC公式の事前学習済みモデルのバージョンを指定)
v2
*注:2023年6月5日時点では「Model version:」(RVC公式の事前学習済みモデルのバージョンを指定)の設定を「v2」にしないとエラーとなるようでした。

 

Target sample rate:
(サンプリングレート)
40k
*一例
*基本的には音声ファイルのサンプリングレートに合わせますが、動画のチュートリアルでは試しに「48k」にしてみましたが、以下の2023年6月5日時点の「」を参照していただくとわかると思いますが、必ず「40k」に指定する必要があります。
*注:2023年5月24日時点では「Model version:」(RVC公式の事前学習済みモデルのバージョンを指定)の設定を「v2」にした場合には「40k」に指定する必要があります。(2023年5月24日時点では、40kHz対応の事前学習済みモデルのv2しか公開されていないため)
32k」「48k」にした場合には、以下のエラーが出力されるようでした。

エラー出力:

RuntimeError: Error(s) in loading state_dict for SynthesizerTrnMs256NSFSid:

*注:2023年6月5日時点では「Model version:」(RVC公式の事前学習済みモデルのバージョンを指定)の設定は「v2」に、「Target sample rate:」(サンプリングレート)は、「40k」に指定する必要があるようでした。

 

f0 Model:
(f0モデルの設定)
yes
*f0とは、ピッチ情報・基本周波数のことをさしているようです。
おそらくですが、ここの設定を「yes」にすると、「ピッチありのモデル」になり。「no」に設定すると、「ピッチレスモデル」になるのではないかと思われます。
音質の精度を求めている方や、リアルタイムボイスチェンジを予定されている方、そして、楽曲から抽出したボーカルの音声の変換を予定されている方などは、「ピッチありのモデル」にするために、ここの設定を「yes」にするようにします。
リアルタイムボイスチェンジ時の難点としては、「ピッチありのモデル」の場合には、精度が良い代わりに、パソコンに負荷をかけるようです。そのため、精度よりも遅延の影響を気にされる方は、ここの設定を「no」にして、「ピッチレスモデル」にすることも検討してみてください。

 

Using phone embedder:
(phone embedderの設定)
contentvec
*事前学習モデルを選択します。チュートリアル動画撮影時点では、2023年4月に公開された「hubert-base-japanese」という、日本語の音声に特化したHuBERTモデルと、「contentvec」というモデルを選択できるようでした。
動画撮影時点では、リアルタイムボイスチェンジャーでお馴染みの「VC Client」は、「hubert-base-japanese」への対応は、アルファ版(テスト版)として実装してくださっているようですので、時間に余裕のある方は、どちらの事前学習モデルだとリアルタイム音声変換の際に、自分の目指している音質になるのか?色々と試してみてください。

 

Embedding channels:
(次元数の設定)
768
*精度を求める場合には、「768次元」の方が良いようです。
動画撮影時点では、「VC Client」での対応状況が、いまいち分かりませんでしたので、リアルタイムボイスチェンジをされる方は「768次元」でうまくいかない場合には、「256次元」で学習させてください。
*注:2023年6月6日時点で、報告いただいた情報によると、ここの設定を「256」に設定するとエラー(「256-40k.json」を参照しようとするためエラー)となるようです。

エラー出力例:
FileNotFoundError: [Errno 2] No such file or directory: '/content/rvc-webui/configs/40k-256.json'
*「Target sampling rate:」(サンプリングレート)を「40k」に、「Embedding channels:」(次元数の設定)を「256」に設定した場合の例

そのため、ここの設定は「768」に設定するようにしてください。
暫定的な対応例としては

・「40k.json
*場所:「rvc-webui」フォルダの「configs」内に「40k.json」があります)

のファイル名を半角英数で

・「40k-256.json

に変えると学習ができるようでした。

 

Embedding output layer:
(出力層の設定)
12
*一例

 

GPU ID:
(GPUのID)
0
*一例
*初期状態の「0」のままでも使えました。

 

Number of CPU processes:
(CPUプロセス数)
2
*一例

 

Normalize audio volume when preprocess:
(前処理として音声のボリュームを正規化するかどうか?)
yes

 

Pitch extraction algorithm:
(ピッチ抽出アルゴリズム)
crepe
*高品質の音声を処理するには、やや速度が遅くなりますが、「dio」を選択します。さらに品質向上で処理をしたい場合には、処理が遅くなりますが、「harvest」を選択します。品質を最高にしたい場合にはGPUに負荷がかかりますが「crepe」または「mangio-crepe」を選択します。

尚、

・crepe(クレープ)
*オリジナル版のcrepe

・mangio-crepe(マンジョクレープ:イタリア語でクレープを食べる)
Mangio621/Mangio-RVC-Fork - GitHub によるcrepe

についてさらに知りたい場合には、上記リンク先の「Mangio621」さんによる「RVC WebUI」のページが参考になるのではないかと思います。
Webブラウザの拡張機能などの翻訳機能を使えば、大体の意味はわかるのではないかと思います。
結論としては、

・どっちも試してみて!

です。

 

Batch size:
(バッチサイズ)
3
*一例
*学習するデータセットをどの程度の一回あたりの処理量にするか?指定します。
注意点としては、GPUメモリが多い場合には、ここの数値を大きくすると、過学習が予防できるようです。ただ、Google Colaboratoryの無料枠で実行する場合、膨大な量のデータセットで学習させる際などに、あまり大きな数値にすると、メモリが足りなくなりエラーとなるリスクも考えられますので、途中でエラーとなる方などはここの数値を試行錯誤してみてください。

 

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

 

Save every epoch:
(学習の状況の保存頻度)
5
*一例
*注意点としては、Google Colaboratoryの無料枠で実行する場合、学習回数を多くした場合に、保存頻度の設定が小さい数値だと、何回も途中経過の学習モデルのファイルが保存されることになり、ディスク容量を圧迫してしまい、無料枠だけでは学習を終わらせることができない可能性も考えられますので、こちらの数値も、残りのディスク容量に応じて微調整してみてください。

 

save_wav_with_checkpoint:
(チェックポイント毎にaugmentの音声を保存する)
チェックなし
*一例
*おそらくバグ?のため、学習を実行して、どういった機能なのか検証できていません。(2023年7月9日時点)
→ 動作確認できました。(2023年7月18日時点)
ここにチェックを入れると、(おそらくですが...)学習途中段階の学習モデルを使った?と思われる声の音声ファイルが

「state」フォルダ内
*「rvc-webui」フォルダの「models」フォルダの「training」フォルダの「models」フォルダの「該当学習モデル」(画像では「amitaro1」)内

だだっこぱんださん版RVC WebUIの「save_wav_with_checkpoint」の挙動について解説
*画像をクリックすると拡大されます。

に、

「wav_sample_(Save_every_epochで指定した数値毎の値)」フォルダ

・00_y_pred.wav
・00_y_true.wav
・01_y_pred.wav
・01_y_true.wav

などの音声ファイルとして出力されるようです。

 

Cache batch:
(キャッシュバッチ)
チェックなし
*チェックを入れると、高速化されるようです。

 

FP16:
(エフピー16)
チェックなし
*「16ビットの浮動小数点数フォーマット」でデータ量を削減するかどうかを設定できるようです。
そのため、チェックを入れると軽量化と、高速化されるようです。ただ、データ量を削減するので品質は低下するようです。

 

Augment:
(データオーグメンテーション機能の有効化の設定)
チェックなし
*データオーグメンテーション機能(学習する際にピッチや話者を変えて学習を行う機能):2023年6月〜新機能
*「Using phone embedder:」(phone embedderの設定)で「hubert-base-japanese」を指定した場合、事前学習モデルの話者の音声の特徴が残りやすいようですが、データオーグメンテーション機能を使うことで、軽減するようです。

 

Augment From Pretrain:
(追加の事前学習済みモデルによるデータオーグメンテーション機能の有効化の設定)
チェックなし
*データオーグメンテーション機能:2023年6月〜新機能
*ここの機能を有効化するには「Augment:」(データオーグメンテーション機能の有効化の設定)の項目に「チェックを入れる」必要があります。

【ここの機能を有効化する設定】

Augment:
(データオーグメンテーション機能の有効化の設定)
チェックを入れる

Augment From Pretrain:
(追加の事前学習済みモデルによるデータオーグメンテーション機能の有効化の設定)
チェックを入れる

上記のように設定して、追加の事前学習済みモデルによるデータオーグメンテーション機能の有効化した場合には、これから設定する

Pre trained generator path (pth):
(追加の事前学習済みモデル「pthファイル」のパスを指定)

speaker info path (npy):
(追加の事前学習済みモデルの「npyファイル」のパスを指定)

のファイルへのパスを設定する必要があります。

 

Pre trained generator path (pth):
(追加の事前学習済みモデル「pthファイル」のパスを指定)
file is not prepared(未設定)
*データオーグメンテーション機能:2023年6月〜新機能

追加の事前学習済みモデルをダウンロード:
RVC-WebUI-tuned-weights - nadare | Kaggle
*設定の詳細はリンク先の説明をご確認ください。

 

speaker info path (npy):
(追加の事前学習済みモデルの「npyファイル」のパスを指定)
file is not prepared(未設定)
*データオーグメンテーション機能:2023年6月〜新機能
*設定の詳細は「Pre trained generator path (pth):」(追加の事前学習済みモデル「pthファイル」のパスを指定)に掲載しておいたリンク先の説明をご確認ください。

 

Train Index:
(indexファイル・npyファイルを作成するかを設定)
チェックを入れる
*k-means法によるindexの圧縮機能:2023年6月〜新機能
*チェックを入れると「models」フォルダの「checkpoints」内に学習モデル名のフォルダ「amitaro_index」が作成され「〜.index」ファイルと「〜.npy」ファイルが出力されます。
*「Model Name:」(出力される学習モデルの名前)の設定を「amitaro」にした場合の例
*ここの項目で、「チェックなし」にすると「〜.index」ファイルと「〜.npy」ファイルが出力されません。

 

Reduce index size with kmeans
(k-means法によりindexファイルのサイズを小さくする機能)
チェックなし
*k-means法によるindexの圧縮機能:2023年6月〜新機能
*音声変換の品質にあまり影響を与えずに数百MB程度のindexファイルが生成される場合に、数十MB程度までファイルを小さくする機能のようです。
*「Train Index:」(indexファイル・npyファイルを作成するかを設定)を有効化しておかないと意味のない機能かと思いますが、確認時点では、「Train Index:」を無効化した状態で、ここの設定を有効化しておいてもエラーにならないようでした。

 

maximum index size
(indexファイルの大きさの最大値の設定)
10000
*k-means法によるindexの圧縮機能:2023年6月〜新機能
*初期設定値「10000
*ここの設定は

【ここの機能を有効化する設定】

Train Index:
(indexファイル・npyファイルを作成するかを設定)
チェックを入れる

Reduce index size with kmeans
(k-means法によりindexファイルのサイズを小さくする機能)
チェックを入れる

状態にした場合に反映されるようでした。
*試しに「0」に設定して学習させたところ、学習モデル(pthファイル)は作成されましたが、以下のエラー表示となりました。

エラー出力:
InvalidParameterError(
sklearn.utils._param_validation.InvalidParameterError: The 'n_clusters' parameter of MiniBatchKMeans must be an int in the range [1, inf). Got 0 instead.

初期設定が無難かもしれません。

 

Pre trained generator path:
(事前学習生成器のパス)
/content/rvc-webui/models/pretrained/v2/f0G40k.pth
*各種設定状況に応じて自動的に設定されます。
→注:2023年6月6日確認時点では、手動設定に変更?されているようでした。
初期設定では、「RVC v2モデル」の「40kHz」の事前学習モデルが設定されているようでした。

 

Pre trained discriminator path:
(事前学習弁別器・識別器のパス)
/content/rvc-webui/models/pretrained/v2/f0D40k.pth
*各種設定状況に応じて自動的に設定されます。
→注:2023年6月6日確認時点では、手動設定に変更?されているようでした。
初期設定では、「RVC v2モデル」の「40kHz」の事前学習モデルが設定されているようでした。

 

設定ができたら

学習開始:Trainボタンをクリック

Train
(学習開始)

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

 

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

 

RCV WebUI上の出力結果
*「Status」の出力

学習完了:Training completed

Training completed(学習完了)

 

RVC-WebUI-ddPn08-Version-for-Japanese-AI-beginners.ipynb上の出力結果
*【手順7:依存関係などのインストール & RVC WebUIの起動】の出力

4% 2/50 [00:24<08:38, 10.80s/it, epoch=1, loss_d=3.85, loss_g=43.3, lr=0.0001, use_cache=0]2023-05-14 12:50:56 | INFO | torch.nn.parallel.distributed | Reducer buckets have been rebuilt in this iteration.
 50% 25/50 [00:38<00:14,  1.68it/s, epoch=5, loss_d=1.78, loss_g=49.1, lr=0.0001, use_cache=0]Saving model and optimizer state at epoch 5 to /content/rvc-webui/models/training/models/amitaro/state/G_5.pth
Saving model and optimizer state at epoch 5 to /content/rvc-webui/models/training/models/amitaro/state/D_5.pth
save: emb_name: contentvec 768
100% 50/50 [01:03<00:00,  1.66it/s, epoch=10, loss_d=1.85, loss_g=40.1, lr=9.99e-5, use_cache=0]Saving model and optimizer state at epoch 10 to /content/rvc-webui/models/training/models/amitaro/state/G_10.pth
Saving model and optimizer state at epoch 10 to /content/rvc-webui/models/training/models/amitaro/state/D_10.pth
save: emb_name: contentvec 768
Training is done. The program is closed.(学習が実行されました。プログラムを終了します。)

 

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

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

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

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

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

AIボイスチェンジャーの学習モデルを使ったテキスト音声合成:
VG WebUIの使い方:AIボイスチェンジャー(RVC WebUI)の学習モデルでテキスト音声合成(テキストの音声読み上げ:TTS - Text to Speach)入門
*記事では、index形式・npy形式のファイルも使って解説していますが、pth形式の学習モデルだけでもテキスト音声合成ができます。

 

2023年5月23日のRVC v2モデル対応の更新後に確認できた事象として、一度学習を実施後に、再度学習をさせると以下のようなエラーが出力されるようでした。

エラー出力:

raise RuntimeError("trying to initialize the default process group " "twice!")

対応例としては、「手順7:依存関係などのインストール & RVC WebUIの起動」のプログラムを一度停止後に、再度、実行した時に表示される「public URL」をクリックし、新たにRVC WebUIを起動させると、新たな学習ができるようでした。

 

 

【ddPn08版】RVC WebUIの使い方:モデル推論編(音声変換)
- Inference:最終更新 2023年7月

 

【ddPn08・だだっこぱんださん版】RVC WebUIの使い方:モデル推論編(Inference)の設定例 - AIボイスチェンジャー
*画像をクリックすると拡大されます。以下の説明で例示している設定になっています。必要に応じて参考にしてみてください。

 

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

 

学習モデルのリストの更新 - ddPn08版 RVC WebUIの使い方

上記のボタンをクリック後に

Modelで学習モデルが選択可能になる - ddPn08版 RVC WebUIの使い方

Model:
(学習モデル)
amitaro.pth
*学習の際に「Model Name:」(出力される学習モデルの名前)を「amitaro」にした場合の例

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

 

Speaker ID:
(識別IDの設定)
0
*学習の際の識別IDに合わせます。

 

Source Audio:
(ボイスチェンジする音声ファイルの指定)
/content/drive/MyDrive/originalvoice.wav
*Google Driveの「MyDrive」内に「originalvoice.wav」という音声ファイルを配置した場合の例

 

Out folder:
(ボイスチェンジ後の音声ファイルの出力先を指定)
content/rvc-webui/outputs
*何も入力しない状態の設定。
outputs」フォルダ内に音声ファイルが出力されます。

 

Transpose:
(変調)
12
*ボイスチェンジ時に推奨されることとして、男性から女性への音声変換は「+ 12キー」、女性から男性への音声変換は、「- 12キー」にすることが推奨されているようです。
声の高さが同じ声質の場合には、設定を「0」にします。声のキーが高い女性の声にする場合には、12キーよりもさらに上げてもいいかもしれません。

 

Pitch extraction algorithm:
(ピッチ抽出アルゴリズム)
crepe
*高品質の音声を処理するには、やや速度が遅くなりますが、「dio」を選択します。さらに品質向上で処理をしたい場合には、処理が遅くなりますが、「harvest」を選択します。品質を最高にしたい場合にはGPUに負荷がかかりますが「crepe」または「mangio-crepe」を選択します。

尚、

・crepe(クレープ)
*オリジナル版のcrepe

・mangio-crepe(マンジョクレープ:イタリア語でクレープを食べる)

のどちらにしたらいいのか?についてですが、結論としては、

・どっちも試してみて!

のようです。

 

Embedder Model:
(Embedderモデル)
auto
*学習の際に「Using phone embedder:」(phone embedderの設定)で設定したモデルを選択します。
auto」にすると、自動的に「hubert-base-japanese」か?「contentvec」か?を判別してくれます。

 

Embedder Output Layer:
(Embedderの出力層)
auto
*学習の際に「Embedding output layer:」(出力層の設定)で設定した層の数を選択します。
auto」にすると、自動的に「9」か?「12」か?を判別してくれます。

 

Auto Load Index:
(自動的にindex形式ファイルなどを取得)
チェックなし
*チュートリアル動画では、ここの機能を使っていませんが、ここにチェックを入れると自動的に「index形式ファイル」と「npy形式ファイル」のパスを取得してくれる便利な機能です。

 

Faiss Index File Path(Faissインデックスファイルのパスを設定)- ddPn08版 RVC WebUIの使い方

Faiss Index File Path:
(Faissインデックスファイルのパスを設定)
/content/rvc-webui/models/checkpoints/amitaro_index/amitaro.0.index
(一例です)
*Faiss(Facebook AI Similarity Search):Facebookが開発した近似最近傍検索ライブラリ
*学習の際に「Model Name:」(出力される学習モデルの名前)を「amitaro」にした場合の例
*「rvc-webui」のフォルダの「models」フォルダの「checkpoints」フォルダの「amitaro_index」フォルダ内の「〜.index」のファイルのパスをコピー後に入力欄に貼り付けてください

 

Big NPY File Path(Big NPYファイルのパスを設定)- ddPn08版 RVC WebUIの使い方

Big NPY File Path:
(Big NPYファイルのパスを設定)
/content/rvc-webui/models/checkpoints/amitaro_index/amitaro.0.big.npy
(一例です)
*学習の際に「Model Name:」(出力される学習モデルの名前)を「amitaro」にした場合の例
*「rvc-webui」のフォルダの「models」フォルダの「checkpoints」フォルダの「amitaro_index」フォルダ内の「〜.npy」のファイルのパスをコピー後に入力欄に貼り付けてください
*2023年5月23日の更新で、ここの機能は廃止されました。

 

Retrieval Feature Ratio:
(検索特徴率)
1
*検索特徴率ということのようですが、よく分かりませんでしたので、そのまま「1」にしておきました。
何回か試した範囲の感じでは、比率を「0」に近づけるほど品質が低下するように感じました。
*追記:検索特徴率を「1」に近づけるほど、今回学習させた「学習モデル」の特徴(音色の品質)に偏らせるようです。

 

設定が完了したら

Infer(推論を開始)- ddPn08版 RVC WebUIの使い方

Infer
(推論を開始)

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

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

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

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

Output
(出力された音声 - 右下隅の3つのドット、クリックしてダウンロード)

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

outputs
*推論の際の「Out folder:」(ボイスチェンジ後の音声ファイルの出力先を指定)の設定で、何も指定しなかった場合の例

フォルダ内に以下の

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

・「1-amitaro-originalvoice.wav」(ファイル例)

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

 

動画チュートリアル作成時点では、だだっこぱんだ🍞(ddPn08)さん版のRVC WebUIでは、日本語に特化した事前学習モデルを始め、学習させるために色々なパラメータを指定できるようにしてくださっているので、ボイスチェンジの高みを目指している方にとっては、ありがたいですね。

また、RVC WebUIを、日本人の方向けに独自に調整したプログラムを公開してくださっている、だだっこぱんだ🍞(ddPn08)さんと、だだっこぱんだ🍞(ddPn08)さんの支援者の皆さんに感謝です。

 

 

【だだっこぱんだ🍞(ddPn08)さん版】RVC WebUIの解説動画へのコメントと対応例など
:2024年8月26日更新

 

 

無料枠ではランタイムが切断されます。
他にRVCの学習モデルの簡単な作り方はないでしょうか?

 

 

【2024年8月3日時点】

2024年8月3日時点で個人で調べられた範囲の情報では

・GPU搭載パソコンを持っていないと無料ではRVCの学習モデル(pthファイル)は気軽に作れないかもしれない

という認識でいます。
Google Colaboratory上で無料で使えそうなプログラムを調べてみると、WebUIを使わずにGoogle Colaboratoryのコンソール上で学習させるものもあるようでしたが、そのうち無料枠では規制がかかるのではないかと推測しています。

 

一方、既に学習モデルをお持ちの場合にはCPUのパソコンでもボイスチェンジ(音声変換)はできるようです。

一例:
Replay
*Mac(Intel CPU・Apple Silicon)・Windows対応
*確認時点では学習モデル作成機能もベータ版としてアプリ内に表示されていますが、CPUで学習する方法は、エラーとなるためわかりませんでした。また、アプリ内の表示ではNvidia製のGPUのみ対応とのことです

 

尚、2024年8月3日時点で自分が公開させていただいている日本人の方向けのRVC WebUIのチュートリアルコード

RVC v1モデル対応のRVC WebUIの使い方のチュートリアルコード:
RVC-WebUI-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

RVC v2モデル対応のRVC WebUIのチュートリアルコード:
v2-RVC-WebUI-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

「だだっこぱんだ🍞」(ddPn08)さん版RVC WebUIをGoogle Colaboratoryで動かすためのRVC WebUIの使い方のチュートリアルコード:
RVC-WebUI-ddPn08-Version-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

は、すべてGoogle Colaboratoryに課金する必要があります。

 

 

無料枠ではランタイムが切断されます。
プログラミングの知識もありません。RVC WebUIを使う簡単な解決策はありませんか?

 

 

【2024年8月26日時点】

以下に

①Google Colaboratory用のチュートリアルコードについて
②だだっこぱんださん版のRVC WebUIのローカルでの使い方
③本家RVC WebUIのローカルでの使い方
④簡単な解決策について

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

 

【①Google Colaboratory用のチュートリアルコードについて】

コメントいただいた内容を整理すると

・GPU搭載パソコンを使用している
・以下のだだっこぱんださん版のRVC WebUIをGoogle Colaboratory上で使用している

「だだっこぱんだ🍞」(ddPn08)さん版RVC WebUIをGoogle Colaboratoryで動かすためのRVC WebUIの使い方のチュートリアルコード:
RVC-WebUI-ddPn08-Version-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

ということですね。
上記のコードはGoogle Colaboratory上でRVC WebUIを動かせる用に調整してあるコードです。Google Colaboratoryはお使いのパソコンのGPUを使用せずに

・Googleのクラウド上(インターネットを介してGoogleの提供しているコンピュータを利用)

でプログラムを動かす仕様になっているサービスです。
そのため、上記のコードは、現時点(2024年8月26日)では

・Google Colaboratoryに課金する必要

があります。

 

【②だだっこぱんださん版のRVC WebUIのローカルでの使い方】

だだっこぱんださん版のRVC WebUIのローカルでの使い方は、以下のページ

README-ja.md - ddPn08/rvc-webui | GitHub

に概要(プログラミングの知識があることが前提の説明)が書かれています。
ただ、2024年8月26日確認時点では

・10ヶ月以上開発されていない

点と、

・問題報告が報告されている
Issues - ddPn08/rvc-webui | GitHub

点を考慮すると上述の「README-ja.md」の内容通りにやっても動かせない場合には

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

かもしれません。

 

【補足】

だだっこぱんださん版のRVC WebUIをWindows・Linuxパソコンで実行する場合にはNvidia製のGPUが必須かと思われます。
RVCを動かすGPUのメモリは

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

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

・最低でも16GB

ないと、現状では厳しいのではないか?と推測しています。
また、「README-ja.md」にはMacの表記もありますが、スペックの詳細は不明です。(おそらくIntel Macでは使えません)

 

【③本家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年8月26日確認時点では

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

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

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

かもしれません。

自分の環境はGPUがないので試せませんので、起動方法に関しては、必要に応じて他の方が投稿してくださっている記事などを参照ください。

 

【④簡単な解決策について】

上述の方法で自分でローカル環境でRVC WebUIを起動できない場合、現状(2024年8月26日時点)で考えられる「簡単な解決策」は

・Google Colaboratoryに課金

することかと思われます。
以下、Google Colaboratoryのコードの候補です。

「だだっこぱんだ🍞」(ddPn08)さん版RVC WebUIをGoogle Colaboratoryで動かすためのRVC WebUIの使い方のチュートリアルコード:
RVC-WebUI-ddPn08-Version-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

RVC v1モデル対応のRVC WebUIの使い方のチュートリアルコード:
RVC-WebUI-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

RVC v2モデル対応のRVC WebUIのチュートリアルコード:
v2-RVC-WebUI-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

 

 

だだっこぱんだ🍞さん版RVC WebUIは、リアルタイムボイスチェンジに対応していますか?

 

 

【2023年6月19日時点】

VC Clientでリアルタイムボイスチェンジをされる場合には

・だだっこぱんださん版のRVC WebUIのRVCv2サポート

参考:
RVC 対応リアルタイムボイスチェンジャー VC Client v.1.5.3.3アップデート - 2023年5月26日 | Twitter

されていますので、

・だだっこぱんださん版のRVC WebUIで作成した学習モデル(pthファイル)

を使って、VC Clientでリアルタイムボイスチェンジが可能なのではないかと思います。
ただ、2023年6月15日の、だだっこぱんださん版のRVC WebUIのアップデートで、学習と推論時に追加された「Pitch extraction algorithm」(ピッチ抽出アルゴリズム)の

・mangio-crepe

に対応しているのか?はわかりません。
VC Client v.1.5.3.3以降は、「crepe」には対応とのことでした。

 

 

【起動編】RVC WebUIのエラー&対応例 - Could not create share link Missing file: frpc_linux_amd64_v0.2

 

 

【2024年5月2日時点】

Could not create share link Missing file: frpc_linux_amd64_v0.2」の問題に関して調べてみたところ本家RVC WebUIでも本日(日本時間:2024年5月2日21時時点)問題報告

gradio public link is not working #2031:RVC-Project/Retrieval-based-Voice-Conversion-WebUI | GitHub
(Gradioのパブリックリンクが機能しない)

で、Gradioのパブリックリンクの不具合が報告されているようでした。
2024年5月2日21時40分時点で依存関係の競合エラーがないか確認したところ

・本家RVC WebUI用のチュートリアルコード
・だだっこぱんださん版RVC WebUI用のチュートリアルコード

ともに問題なさそうでした。
さらに情報を調べてみると数日前からGradioの挙動が不安定になっているようでした。

一例:
--share not work with paperspace #8151:gradio-app/gradio | GitHub
(--share はペーパースペースでは機能しません:Gradioの公式リポジトリ)

上記の一例は、ペーパースペースというクラウドサービスの事例ですが、関連情報を調べてみるとGoogle Colaboratoryなどでも同様の現象が起きているようです。
上記のリンク先の回答をみてみると、

・Gradioの開発者と思われる方が修正に取り組んでいる

ようです。
また、これまでの認識では

・Share Links
(共有リンク)

のサーバーの稼働状態が、共有リンクの作成に影響するのではないかと思っていましたが、以下の

Could not create share link Unable to get public url #2818:lllyasviel/Fooocus | GitHub
(Gradioの共有リンクを作成できませんでした パブリック URL を取得できませんでした)

では、共有リンクが作成できないのは

・Gradio Share APIの兼ね合い

と考えているようでした。
調査させていただいた情報をまとめると、

・Gradio側の「サーバー」または「プログラム」の何かしらの不具合が関係しているかもしれない

とのことでしたので、また、時間をあけて試していただくといいかもしれません。
最低限以下のサーバー

Share API:Service status | Gradio
(シェアAPIの稼働状況)
Share Links:Service status | Gradio
(シェアリンクの稼働状況)

が、

・稼働状態(operational)

の時に実施していただくといいかもしれません。
ただ、ここ30分ほど経過を見ていても、見た時は稼働状態(operational)でしたが、再度確認するとダウン(down)となっているようでしたので、Gradioのサーバーが不安定なようです。
そのため、気長に経過を見ていただければと思います。

 

【追記:2024年5月3日】

以下の対応

 

Could not create share link. Missing file: /usr/local/lib/python3.10/dist-packages/gradio/frpc_linux_amd64_v0.2.

Please check your internet connection. This can happen if your antivirus software blocks the download of this file. You can install manually by following these steps:

1. Download this file: https://cdn-media.huggingface.co/frpc-gradio-0.2/frpc_linux_amd64
2. Rename the downloaded file to: frpc_linux_amd64_v0.2
3. Move the file to this location: /usr/local/lib/python3.10/dist-packages/gradio

 

について、手順を把握できるようにチュートリアルコードとチュートリアル動画などを作成しました。
気になる方は、必要に応じて参照いただけますと幸いです。

Gradioエラーの謎「Could not create share link Missing file」
【対応例】Gradio共有リンクエラー「Could not create share link Missing file: frpc_linux_amd64_v0.2」

 

 

【データセット作成・学習・推論編】RVC WebUIで歌声を変換した際に高音だけうまく出ない
(推論で歌声の変換がうまくいかない)

 

 

現状で個人で分かる範囲ではありますが

・【①データセットの規模と学習回数に関して】
・【②RVC WebUIの仕組みから考えるデータセットについて】
・【③数値設定に関して:だだっこぱんださん版のRVC WebUI】
・【④数値設定に関して:RVC v2モデル対応のオリジナル版RVC WebUI】

についてまとめておきます。

 

【①データセットの規模と学習回数に関して】

データセットの考え方に関しては、RVC公式のQ&Aでは、

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

のようです。
また

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

とのことです。
そのため、ノイズの少ない音声を準備していただくといいかもしれません。

 

【②RVC WebUIの仕組みから考えるデータセットについて】

音声変換が苦手な部分に関しては、以下の記事

参考情報①:
【図解】超高性能AIボイスチェンジャー「RVC」のしくみ・コツ - mossan_hoshi | Zenn
*2023年6月13日利用

参考情報②:
RVCの声質を音程によって変化させる研究をしてみた - Nero | note
*2023年6月13日利用

が参考になりそうです。
要点としては、

・歌声を変換したい場合には、歌のデータを利用する(といいかもしれない)
・音声変換したい音域を意識してデータセットを作成する(といいかもしれない)

ということのようです。
そのため、歌声で高音が出にくいことへ対応させる場合には、

・歌声の音声を利用し、低音と高音(裏声)の両方入ったデータセットを作成

するといいかもしれません。

 

【③数値設定に関して:だだっこぱんださん版のRVC WebUI】

基本的に、【①データセットの規模と学習回数に関して】を参考に学習回数を決定してみてください。
だだっこぱんださん版のRVC WebUI

だだっこぱんださん版のRVC WebUIのチュートリアルコード:
RVC-WebUI-ddPn08-Version-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

の場合には、学習(Train)の設定での注意点は

・f0 Model
(f0モデルの設定)
:yes

・Pitch extraction algorithm
(ピッチ抽出アルゴリズム)
:harvest
→ 2023年6月15日以降は、新機能の「crepe」または「mangio-crepe」を選択してみてください。

・Augment
(データオーグメンテーション機能の有効化の設定)
:チェックを入れる

に設定することぐらいかもしれません。
また、日本語の音声変換をする場合には

・Using phone embedder
(phone embedderの設定)
hubert-base-japanese

にします。
推論(Inference)の際には

・Pitch extraction algorithm
(ピッチ抽出アルゴリズム)
harvest
→ 2023年6月15日以降は、新機能の「crepe」または「mangio-crepe」を選択してみてください。

にします。
必要に応じて

・Transpose
(変調)

を微調整してみてください。

注:設定例は2023年6月13日時点の情報です

 

【④数値設定に関して:RVC v2モデル対応のオリジナル版RVC WebUI】

だだっこぱんださん版と同様に【①データセットの規模と学習回数に関して】を参考に学習回数を決定してみてください。
RVC v2モデル対応のオリジナル版のRVC WebUI

RVC v2モデル対応のRVC WebUIのチュートリアルコード:
v2-RVC-WebUI-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory

の場合には、学習(Train)の設定での注意点は

・Target sample rate
(サンプリングレート・サンプル周波数)
40k

・Whether the model has pitch guidance (required for singing, optional for speech)
(ピッチガイダンスの設定 – ピッチガイダンスの有無:歌唱時は必須、話し声時は任意)
true

・Version (currently only v2 is supported for 40k sample rate)
(RVCの事前学習モデルのバージョン設定 – 現在、RVC v2は、40kHzのサンプル周波数のみ対応)
v2

・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

に設定してみてください。
(ただ、何度か試した範囲では、日本語の場合に「hubert-base-japanese」にするよりも「contentvec」の方が良い場合も経験していますので、どちらが良いか?必要に応じて検証してみてください)

推論(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

にします。
必要に応じて

・Transpose (integer, number of semitones, raise by an octave: 12, lower by an octave: -12)
(変調:入力は整数で半音数を表します。1オクターブ分上げる:12・1オクターブ下げる:-12))

を微調整してみてください。

注:設定例は2023年6月13日時点の情報です

 

 

【学習編】RVC WebUIのエラー&対応例 - FileNotFoundError: [Errno 2] No such file or directory: 'file is not prepared'

 

 

【2023年6月4日時点】

学習の際に、以下の設定

・Cache batch:チェックを入れる
・FP16:チェックを入れる
・Augment:チェックを入れる
・Augment From Pretrain:チェックを入れる
・Reduce index size with kmeans:yes

を同時に実施した場合に

・FileNotFoundError: [Errno 2] No such file or directory: 'file is not prepared'

のエラーが、「ExtractingFeatures」後に出現するようでした。
不思議なのが

・原因を特定しようと、5個の設定を1つずつONにしてみるとエラーが出ない....

という状態でした。
そのため、上述の設定をすべてOFFにしたり、必要なものだけピックアップしたりして何度か学習を試してみてください。
尚、確認時点では

・引き続き、2回目の学習は一度【手順7:依存関係などのインストール & RVC WebUIの起動】を停止させた後に、再起動させ、表示されるリンクで新たな学習をする必要

がありそうでした。
また、

・事前学習モデル「Pre trained generator path」「Pre trained discriminator path」の設定が、初期設定が40kHz・RVC v2モデル用の事前学習モデルが設定されているが、周波数やRVC v1 or v2モデルを変更しても自動反映されない(+RVC v1用の事前学習モデルがインストールされていない)

仕様になっているようでしたので、基本的に

・40kHz・RVC v2モデル

の設定にしておく必要がありそうでした。

(おそらく数日前のアップデート直後ということもあり、まだまだ不具合もあるのではないかと推測されますので、経過を見る必要はありそうです)

 

【追記:2023年6月5日】

FileNotFoundError: [Errno 2] No such file or directory: 'file is not prepared'

のエラーは、2023年6月の新機能のデータオーグメンテーション機能(学習する際にピッチや話者を変えて学習を行う機能)で

・Augment:チェックを入れる
・Augment From Pretrain:チェックを入れる

にした状態で、追加のデータで学習を行った重み

・Pre trained generator path (pth)
・speaker info path (npy)

のパスを設定しないとエラーとなるようでした。
そのため、追加のデータで学習を行った重みを使用しない場合には、

・Augment:チェックを入れる
・Augment From Pretrain:チェックなし

にすると学習中のモデルを活用したデータオーグメンテーションができるようでした。

 

 

【学習編】RVC WebUIのエラー&対応例 - RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format〜

 

 

【2023年6月5日時点】

- エラー表示① -

RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for MultiPeriodDiscriminator:
Unexpected key(s) in state_dict: "discriminators.7.convs.0.bias", "discriminators.7.convs.0.weight_g", "discriminators.7.convs.0.weight_v", 〜

- エラー表示①:原因と対応例 -

最近のアップデート後に、

・事前学習モデルがRVC v2モデル(40kHz版)のみ

が使用できる仕様に変更(またはバグ?)されているため、

・Model version
(RVCモデルのバージョン選択)

・v2

を必ず選択しないとエラーが出るようになっているようでした。
上述のエラーは、

・Model version:v1
(RVCモデルのバージョン選択)

を選択した際に表示されました。
そのため、現時点(2023年6月5日時点)で実行される場合には、必ず

・Model version:v2
(RVCモデルのバージョン選択)

・Target sampling rate:40k
(サンプリングレート)

を選択するようにしてみてください。

 

- エラー表示② -

RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for SynthesizerTrnMs256NSFSid:
Missing key(s) in state_dict: "dec.noise_convs.4.weight", "dec.noise_convs.4.bias", "dec.ups.4.bias", "dec.ups.4.weight_g", "dec.ups.4.weight_v", 〜

- エラー表示2:原因と対応例 -
上記のエラーは、

・Model version:v2
(RVCモデルのバージョン選択)

・Target sampling rate:48k
(サンプリングレート)

などと、RVC v2モデル(2023年6月5時点では40kHzのみ対応)を選択した状態で、非対応の周波数を選択するとエラーとなるようでした。
そのため、現時点(2023年6月5日時点)で実行される場合には、必ず

・Model version:v2
(RVCモデルのバージョン選択)

・Target sampling rate:40k
(サンプリングレート)

を選択するようにしてみてください。

 

 

【学習編】RVC WebUIのエラー&対応例 - FileNotFoundError: [Errno 2] No such file or directory: '/content/rvc-webui/configs/40k-256.json'

 

 

【2023年6月6日時点】

- エラー表示 -

FileNotFoundError: [Errno 2] No such file or directory: '/content/rvc-webui/configs/40k-256.json'
*「Target sampling rate:」(サンプリングレート)を「40k」に、「Embedding channels:」(次元数の設定)を「256」に設定した場合の例

FileNotFoundError: [Errno 2] No such file or directory: '/content/rvc-webui/configs/32k-256.json'
*「Target sampling rate:」(サンプリングレート)を「32k」に、「Embedding channels:」(次元数の設定)を「256」に設定した場合の例

FileNotFoundError: [Errno 2] No such file or directory: '/content/rvc-webui/configs/48k-256.json'
*「Target sampling rate:」(サンプリングレート)を「48k」に、「Embedding channels:」(次元数の設定)を「256」に設定した場合の例

- エラー表示:原因と対応例 -

Embedding channels:」(次元数の設定)の設定を「256」に設定するとエラー(「256-40k.json」を参照しようとするためエラー)となるようです。

そのため、ここの設定は基本的に「768」に設定するようにしてください。

暫定的な対応例としては

・「40k.json
*場所:「rvc-webui」フォルダの「configs」内に「40k.json」があります)

のファイル名を半角英数で

・「40k-256.json

に変えると学習ができるようでした。

 

 

【学習・推論編】スマホでだだっこぱんだ🍞さん版RVC WebUIは使えますか?

 

 

【2023年6月9日時点】

はい。
Google Colaboratoryのチュートリアルコードを使い、スマートフォンで、学習〜推論まで実行できた報告をしてくださった方もいらっしゃいました。
注意点としては、(理由は分かりませんが...)学習時の設定の

Pitch extraction algorithm:
(ピッチ抽出アルゴリズム)

を、

「dio」

にした際に、上手くいったようでした。
harvest」にした際には音声変換(推論)が上手くいかなかったようでした。

また、iOSの場合、Apple純正の「ファイル」アプリなどをダウンロードしないと、フォルダ・ファイルの操作ができないと思いますので注意してください。

 

 

【推論編】過去に作成した学習モデルを再利用できませんか?

 

 

【2024年8月13日時点】

おそらくですが「amitaro.pth」を使う場合の一例としては、「models」フォルダの「checkpoints」フォルダ内に

・「amitaro_index」フォルダ
*フォルダの中に「amitaro.0.big.npy」「amitaro.0.index」ファイルを配置

・「amitaro.pth」ファイル

を配置すれば、学習を飛ばして推論だけできるのではないかと推測されます。

 

注意点としては、Google DriveからGoogle Colaboratoryに学習モデルなどのファイルやフォルダを移動させると、ランタイムが切断された際に学習モデルなどのファイルやフォルダを失うことになりますので

・事前にローカル環境上に学習モデルなどを保存

しておくか

・推論を終えたら再度Google Driveに学習モデルなどのファイルを移動させる

などの対応をしておく必要があるかと思います。

 

また、上述の手順とは少し違いますが、Google Colaboratory上の操作方法の参考までに、RVC v1モデル対応版のRVC WebUIの例

【改訂版】RVC WebUIで過去の学習モデルで推論する方法 by RehabC - デジタルで、遊ぶ。| YouTube

の手順を動画でまとめてあります。
上述の手順を実行する際の考え方のヒントになるかもしれませんので、必要に応じて参照いただけますと幸いです。

 

 

だだっこぱんだ🍞(ddPn08)さんにコンタクト・支援

 

 

だだっこぱんだ🍞(ddPn08)さん版のRVC WebUIに関する問題報告ページ:
【Issues】ddPn08/rvc-webui - GitHub
*2023年5月確認時点では「GitHubのIssueに投稿」していただくのが一番早く問題に気がつかれるとのことです。

だだっこぱんだ🍞(ddPn08)さんを支援:
- rvc-webuiの更新で多分最高品質になった学習方法 - 2023年4月26日 | PIXIV FANBOX

- だだっこぱんだ🍞ko-fi.com/ddpn08 | Ko-fi

 

【だだっこぱんだ🍞(ddPn08)さんの今後の展望:2023年6月12日時点】

今後の動向が楽しみですね♪

 

 

 

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

 

 

 

わずか...数秒(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版