Contents - 目次(もくじ)
- 1 RVC WebUIの解説動画へのコメントと対応例など – 最終更新:2023年5月30日
- 2 RVC WebUIのQ&A集:だだっこぱんだ🍞(ddPn08)さん版のRVC WebUIの使い方が分からない…
- 3 RVC WebUIのQ&A集:AIボイスチェンジャーの基礎知識編
- 4 【RVC WebUIのQ&A集:Google Colaboratoryの基礎知識編】
- 5 【RVC WebUIのQ&A集:データセット作成編 – Original Dataset】
- 6 【RVC WebUIのQ&A集:起動編】
- 7 【RVC WebUIのQ&A集:学習編 – Train】
- 7.1 >RVC WebUIのエラー&対応例 – warnings.warn(‘resource_tracker: There appear to be %d
- 7.2 RVC WebUIのエラー&対応例 – ValueError: need at least one array to concatenate
- 7.3 RVC WebUIのエラー&対応例 – No interface is running right now
- 7.4 RVC WebUIのエラー&対応例 – One click trainingを押してもerrorとなる
- 7.5 RVC WebUIで3〜4分くらいのファイル10個程度で100回学習させると約1.5時間ほどかかる。もっと早くする方法は?
- 7.6 RVC WebUIで2時間くらいしか使ってないのに「GPUバッググラウンドが接続できません」とGoogle Colaboratoryに言われる
- 7.7 RVC WebUIで学習中にGoogle Colaboratoryのディスク容量上限に達してしまい学習が完了しない
- 7.8 RVC WebUIで二回目以降、別の音声で学習させた時にpthファイルが出力されない…
- 7.9 RVC WebUIで一度学習を終えたモデルをもっと学習させたい(学習の再開方法)。 また、どうすると効率や結果が良くなるのか?
- 7.10 Google ColaboratoryでRVC WebUIで学習モデルを作成中に処理が中断してしまう
- 7.11 RVC WebUIで学習後に「インデックスファイル」と「npy」ファイルが出力されない
- 7.12 RVC WebUIでボイスチェンジを「歌声」に反映させたい時の手順
- 8 【RVC WebUIのQ&A集:モデル推論編 – Model inference】
- 8.1 RVC WebUIのエラー&対応例 – AttributeError: ‘NoneType’ object has no attribute ‘dtype’
- 8.2 RVC WebUIのエラー&対応例 – Feature file path(npy形式ファイル:特徴量ファイルのパス指定)の設定欄がない…
- 8.3 RVC WebUIでモデル推論する際のキーの変更について(女性の声から男性の声へのボイスチェンジの場合)
- 8.4 RVC WebUIで、過去に作成した学習モデル(pthファイル)で、もう一度モデル推論を行う方法
- 8.5 RVC WebUIで、他の方の作った学習モデル(pthファイル)を読み込む方法
- 9 【RVC WebUIのQ&A集:リアルタイムボイスチェンジ編 – VC Client】
RVC WebUIの解説動画へのコメントと対応例など
– 最終更新:2023年5月30日
RVC WebUIの使い方入門:オリジナルAIボイスチェンジャーを作ろう(男性・女性)
視聴時間:22分22秒
AIボイスチェンジャーに関心のある方の情報収集の利便性を考え、YouTube動画の「RVC WebUIの使い方入門:オリジナルAIボイスチェンジャーを作ろう(男性・女性)」の解説動画にいただいたコメントの中から、他の方も疑問に思いそうなことや、エラーや上手くいかないことと、その対応例などについてまとめておきます。
【追記: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月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 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のQ&A集:だだっこぱんだ🍞(ddPn08)さん版のRVC WebUIの使い方が分からない…
【ddPn08版 – RVC WebUIの特徴】2023年5月15日時点
特徴①:
事前学習モデルが
・hubert-base-japanese(ヒューバートベイスジャパニーズ)
*日本語の音声に特化したHuBERT(ヒューバート)
・contentvec(コンテントベック)
*オリジナル版のRVC WebUIで利用
から選べる。
特徴②:
768次元のphone embeddingsに対応。
起動方法が分からずにお困り中の方もいるようでしたので、だだっこぱんだ🍞(ddPn08)さん版のRVC WebUIをGoogle Colaboratoryで使う方法をまとめておきました。
必要に応じてご活用ください。
チュートリアルコード:
RVC-WebUI-ddPn08-Version-for-Japanese-AI-beginners.ipynb(The MIT License)| Google Colaboratory
チュートリアル記事:
【だだっこぱんだ🍞(ddPn08)さん版】日本人のためのRVC WebUIの使い方 – AIボイスチェンジャー入門
RVC WebUIのQ&A集:AIボイスチェンジャーの基礎知識編
VC ClientとRVC WebUIとの違いなどについて
VC ClientとRVC WebUIの大きな違いは、2023年4月時点では
✔︎ VC Clientではリアルタイムボイス変換ができる
ことです。
元々、VC Clientでは、
・MMVC(RealTime-Many to Many Voice Conversion)
という音声変換の方式で、
・「自分の声」と「変換したい声」の2パターンの音声データ+テキストデータ
を使って学習させることで、リアルタイムボイスチェンジャーなどを実現できていました。
その後、2023年4月にRVC WebUIが登場し、
・RVC(Retrieval-based-Voice-Conversion)
という方式で、コンピュータに関心のある方がある程度使い方を学べば使えるようなMITライセンス(オープンソース)のプログラムが登場しました。
RVCの利点の1つとしては、
✔︎ 「変換したい声」の音声データを使うだけで、ある程度のボイスチェンジが(気軽に)実現できる
ようになったことです。
また、大規模な事前学習モデル(pre-trained model)を使うことで、個人レベルでも準備できる程度のわずかな音声データ(*)
(*)RVC WebUIの説明:Voice data =< 10 mins can also be used to train a good VC model!
(10分以下の音声データを目安に音声変換モデルの学習が可能です)
を使ってオリジナルのAIボイスチェンジャーを作れるようになりました。
RVC WebUIが登場後に、VC Clientの開発者の日本人の方が、すぐにRVC方式のボイスチェンジ用のRVC方式の学習モデルを使ったリアルタイムボイス変換をサポートしてくださったため、RVC WebUIなどで学習させたボイスチェンジ用の学習モデルを使って、VC Client(for RVC:ローカル環境 – 自分のパソコン環境で実行)でリアルタイムボイスチェンジに挑戦する方が増えてきているようです。
【RVC WebUIのQ&A集:Google Colaboratoryの基礎知識編】
RVC WebUIのチュートリアル動画の通りに使う分にはGoogle Colaboratoryの無料版で大丈夫か?
以下に、
・この動画の通りに使う分には無料版が適用されてると考えてよろしいのでしょうか?
・仮に有料版を使う場合には、個人毎に有料版を購入する必要があるか?
について、簡単ではありますがまとめておきます。
【質問①】
「この動画の通りに使う分には無料版が適用されてると考えてよろしいのでしょうか?」
→(回答)
はい。
無料版で実行しています。
【質問②】
「仮に有料版を使う場合には、個人毎に有料版を購入する必要があるか?」
→(回答)
はい。
基本的には個人毎に有料版を購入する必要があると思われます。
尚、無料版と有料版の違いなどを知りたい場合には以下の記事
:Colab Pro/Pro+/Pay As You Goとは? 無料版との違い、比較表 – 2022年10月更新 | ITmedia
2023年5月8日利用
が参考になると思います。
(注:2023年5月時点の金額の表記に違いがあります)
最新の金額などは公式のページを参照ください。
:最適な Colab のプランを選択する | Google Colaboratory
RVC WebUIのGoogle Colaboratoryのプログラムで『GPUバックエンドに接続できません』と表示される
Google Colaboratoryをリセットしたりと、何回か繰り返してRVC WebUIのチュートリアルのプログラムを使用していると
・『GPUバックエンドに接続できません』
と表示されて、GPUが使えないことにまつわる、エラーが起きることがあります。
これは、Google Colaboratoryの無料枠の使用量上限を超えた場合や、利用者数の一時的な増加など、おそらく何かしらの理由で制限が入っている状態ですので、また、時間をあけて再度実行(例:12時間後など)してみてください。
Google DriveからGoogle Colaboratoryのファイルに入れたはずのデータが表示されず、詰む…
結論:
アクセス制限が自分のみになっていた。
【①Google Driveのアクセス制限の場合】
解決例としては、
・Google Driveの設定でアップロードしたファイルにアクセス制限がかかっている
可能性が考えられます。
特に、
・Google ColaboratoryでログインしているGoogleアカウント
と、
・Google Driveに許可を与えたGoogleアカウント
が違う場合、起こりやすいのではないかと思います。また、現在Google Colaboratoryにログインしているアカウント以外の、Googleアカウントにアクセス権が付与されている場合も考えられます。
そのため、一度、
・Google Drive上にアップロードしているファイルのアクセス権が、現在Google ColaboratoryにログインしているGoogleアカウントに付与されているか?
確認してみてください。
【②直接Google Colaboratoryにフォルダをアップロードする方法】
上記の方法では解決しない場合には、データセットフォルダを圧縮ファイルにして、直接Google Colaboratory上にアップロードさせる方法もあります。
尚、以下の手順は、ブラウザの種類によっては、実行できません。確認できた範囲では「FireFox」というブラウザではできないようでした。
Google Chromeというブラウザではできることを確認しています。
・手順1:
Google Colaboratoryでファイルマークをクリックし、ファイルを確認・操作できる状態にします。
・手順2:
作成したデータセット(今回は半角英数で「dataset」という名前をつけてください。
わからない場合には「」のdatasetというローマ字をコピー&ペーストしてフォルダの名前に反映させてください)のフォルダを圧縮ファイル(おそらく右クリック後に表示されるメニュー内に「圧縮」するなどの表記があると思います)にします。
手順3:
「dataset.zip」という圧縮ファイルをGoogle Colaboratoryのファイル操作用の枠内にドラッグ&ドロップします。
アップロードが完了するまで時間がかかりますが待ちます。アップロード完了後にファイルに反映されない場合には、ファイルの更新マークをクリックしてください。
手順4:
Google Colaboratoryの上部メニュー内の「+ コード」をクリックします。
コードを入力できるようになりますので以下のコードをコピー&ペーストして実行します。
実行コード:
!unzip dataset.zip
コードを実行(三角マークをクリック)後に、ファイルの更新マークをクリックするとデータセットのフォルダが反映されるのではないかと思います。
尚、ボイスチェンジを試す音声ファイル(.mp3・.wav)は、そのままGoogle Colaboratoryのファイル操作用の枠内にドラッグ&ドロップすると反映されるのではないかと思います。
また、言葉ではイメージしにくい場合には、以下の動画を参照ください。
(圧縮ファイルのファイル名は違いますが、大まかなイメージは掴めるのではないかと思います)
【RVC WebUIのQ&A集:データセット作成編 – Original Dataset】
RVC WebUIのデータセットは、「5分の音声ファイル1個」または「同じ音声ファイルで10秒刻みにして30個」だと、どちらの方が良いのか?
いくつかの情報を参照してみると、RVC WebUIでは
・5分の音声ファイル1個
よりも、
・同じ音声ファイルで10秒刻みにして30個
にすることが推奨されているようです。
参考:
・Retrieval-based-Voice-Conversion(RVC)の使い方(更新終了) | rentry
2023年5月8日時点
・【学習セット用意編】RVCを用いたリアルタイムボイスチェンジを1から解説してみる – omiz | note
2023年5月8日時点
・【AI音声変換】Retrieval-based-Voice-Conversion(RVC)の使い方 | 電子ゴミ屋敷
2023年5月8日時点
【発展】
情報を調べてみると、音声合成(Text To Speech:TTS)のbarkというプログラムでは、
・約5~10秒の音声
だけで良いとの情報も見かけました・・・
参考:
barkについて:yasyune AI(音声)専用 – 2023年4月22日 | Twitter
すごいですね…
ボーカルリムーバー「UVR5」の機能だけが何度やってもエラーが出て使えなくて困っています
音楽の音源からボーカルを抽出できるボーカルリムーバー「UVR5」(Ultimate Vocal Remover v5)の機能は便利ですが、ちょっとクセがあるようです。
わかりやすいように記事や動画で使い方をまとめておきました。
RVC WebUIのボーカルリムーバーの使い方
:【RVC WebUIの使い方】ボーカルリムーバー編:AIボイスチェンジャー用学習データセット作成のためのボーカルと音楽の分離
この機能が使えるようになるとボイスチェンジの幅が広がりそうですね。
RVC WebUIのデータセットの作成は、楽曲の歌声を使う場合には、どうすればいいのでしょうか?
ボーカルリムーバーで、人の声(ボーカル)を抽出できている状態(前提)ということで、以下に簡単ではありますが、
・RVC WebUIのデータセット作成の考え方
・音声ファイルを分割する方法
・学習の際の設定例
に関して、現時点で個人でわかる範囲ですがまとめさせていただきます。
【①RVC WebUIのデータセット作成の考え方】
RVC WebUIに関係しそうなデータセットの作成について、いくつかの情報を調べてみると、例として
・5分の音声ファイル1個
よりも、
・5分(300秒)の音声ファイル1個を10秒刻みにして30個(計300秒)
にすることが推奨されているようです。
【②音声ファイルを分割する方法】
抽出した人の声の音声ファイルを分割する方法は、いくつかあるようです。
【無料アプリ】
音声ファイルの分割は「Audacity」という無料アプリを使っている方が多い印象を受けます。
参考記事
Windows編:
【ラベルトラック】Audacityで音声を分割して書き出す方法! | Aprico
Mac編:
超簡単!Audacityで音源を分割する方法【2020年版:Mac】| Oto Gate
【プログラミングで分割】
Pythonプログラミングの環境構築方法がわかるようでしたら以下のプログラムなども参考になるかと思います。
発話分割プログラム例①:
Pythonを用いた発話分割【AIボイスチェンジャーの学習で役立つ】| ジコログ
発話分割プログラム例②:
「teftef6220/Voice_Separation_and_Selection」のアップデート情報:teftef – 2023年4月9日 | Twitter
【③学習の際の設定例】
学習をさせるステップの「Train:Step1」「Train:Step 2b」の設定を以下のようにします。
・模型是否带音高指导(唱歌一定要, 语音可以不要):是
(モデルにピッチ – 音高ガイドが含まれるか?歌唱は必須・音声は任意)
・Number of CPU processes used for pitch extraction:2
(ピッチ抽出に使用されるCPUプロセス数の設定)
*一例
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.:harvest
(ピッチ抽出アルゴリズムの設定 歌声の処理を高速化するには「pm」を使用。高品質の音声を処理するには「dio」を使用(低速)。最高の品質で処理をするには「harvest」を使用。ただ最も処理が遅くなります。)
*一例
作成した学習モデル(pthファイル)を使って、他の楽曲の歌唱の声を変更したい場合には、
・ボーカルリームーバーで楽曲からボーカル抽出・楽器演奏の分離
した音声ファイルをRVC WebUIでボイスチェンジ後に、楽器演奏の音声と合わせると、ボイスチェンジした楽曲になるのではないかと思います。
【RVC WebUIのQ&A集:起動編】
RVC WebUIのチュートリアルの起動編「手順10」で、起動するためのURLに辿り着けない…
自分もGoogle Colaboratoryを使用している際に、もう一度起動させようとしたところ同じ事象を経験したことがあります。
おそらくですが、
・Google ColaboratoryのGPU使用制限などが作動
しているのかもしれません。
・「12間以上空けてから再度実行」
してみてください。
おそらく、無料枠でGPUを使う方が増えてきているので、制限がかかりやすくなってきているのではないかと思います。
2023年4月には、「Stable Diffusion」という画像生成系のAIプログラムが、あまりにも使われるのでGoogle Colaboratoryの無料枠に制限が設けられたようです。
また、仕事や学校などがお休みの方が多くなる時期には、機械学習プログラムを使う方も増えると思われ、制限が発動しやすくなるのではないかと推測しています。
その他にも、
・Gradioに何かしらの不具合(一例:ダウンしている)
が起こっている可能性も考えられるようです。
こちらも、時間をあけて再度プログラムを実行してみてください。
【RVC WebUIのQ&A集:学習編 – Train】
>RVC WebUIのエラー&対応例 – warnings.warn(‘resource_tracker: There appear to be %d
学習を実施後に、
・/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 ‘>/b>
という警告が表示されますが、学習はできているようでしたので、次の手順に進んでみてください。
RVC WebUIのエラー&対応例 – ValueError: need at least one array to concatenate
Google Colaboratoryの無料枠で、RVC WebUIのチュートリアルのプログラムを使用している際に
・『GPUバックエンドに接続できません』
と表示された場合には、ランタイムの設定でGPUを選択していても、実際にはGPUを使えない状態になっています。
GPUが認識できていない状態でRVC WebUIで学習を実行すると
・ValueError: need at least one array to concatenate
というエラーが出力されるようです。
また、ローカル環境(自分のパソコン環境)でRVC WebUIを実行されている方の場合には、2023年4月時点では、NVIDIA製のGPUを使用していないと
・ValueError: need at least one array to concatenate
というエラーとなるようです。
RVC WebUIのエラー&対応例 – No interface is running right now
「No interface is running right now」関連の情報を調べたところ
・Gradioに何かしらの不具合(一例:ダウンしている)
が起こっている可能性が考えられるようです。
RVC WebUIのエラー&対応例 – One click trainingを押してもerrorとなる
「Train – 学習:Step1」の「Input experiment name:」(出力される学習モデルの名前)に「アンダーバー( _ )」を入れているとエラーとなるようです。
そのため名前をつける際には「アンダーバー( _ )」を消して、半角英数の短い名前にするとうまくいくかもしれません。
RVC WebUIで3〜4分くらいのファイル10個程度で100回学習させると約1.5時間ほどかかる。もっと早くする方法は?
機械学習の学習時間は悩ましい問題ですね…
簡単ではありますが、現状で個人でわかる範囲の情報になりますが
・機械学習領域の学習の歴史
・RVC WebUIでの学習時間について
・さらなる高みを目指す場合の参考例
についてまとめておきます。
【①機械学習領域の学習の歴史】
前提として、「事前学習モデル」(Pre-Trained Model)を使用する考え方が登場する前には、音声AIに限らず、画像、強化学習AIなどで実用的な学習モデルを作成するには、ハイスペックパソコンでも、とてつもない時間とお金をかけて学習させていた領域ですので、1.5時間ほどの時間がかかるのは、AIの歴史を振り返ると実は少ない時間に該当するのかもしれません…
【②RVC WebUIでの学習時間について】
RVC WebUIでの学習時間に関しては、パソコンのスペック(CPU・メモリ・ハードディスクなど)、特にGPUの性能によって左右されますので、なんとも言えませんが、情報を公開してくださっている方もいましたので、以下参考値です。
例①
・音声データ:40分ほど
・学習時間:10分ほど
・GPU:NVIDIA GeForce RTX 3090
出典:
【AIボイスチェンジャー】RVCによる音声変換 | ジコログ
例②
・音声データ:1時間
・学習時間:21分
・GPU:NVIDIA GeForce RTX 4080
出典
: AIボイチェン「RVC」の精度と学習・変換速度が革命的。コナンの蝶ネクタイ的リアルタイムボイチェンも可能(CloseBox)| TechnoEgde
いずれもローカル環境(自分のパソコン環境)で実行された結果のようです。
ただ、現時点で調べられた範囲の情報では、RVCの登場で、格段に学習時間が短くなっているようです。
以下の記事を確認すると
参考:
Google Colaboratory入門 Colab Pro/Pro+/Pay As You Goとは?無料版との違い、比較表 – 2022年10月 | ITmedia
2023年5月7日利用
Google Colaboratoryの無料枠の難点として、
・GPUを使う場合、高速なGPUは割り当てられない
とのことですので、さらなるスピードを求める場合には、課金してより高性能のGPUなどを利用することになるのではないかと思います。
(実のところ、Google Colaboratoryの無料枠で、GPUを使って簡単に試行錯誤できるだけでもありがたい現状です)
【③さらなる高みを目指す場合の参考例】
学習回数や高品質モデルの作成に関してですが、以下の記事などが参考になるのではないかと思います。
参考:
rvc-webuiの更新で多分最高品質になった学習方法 – だだっこぱんだ | PIXIV FANBOX
だだっこぱんださん版のRVC-WebUIをGoogle Colaboratoryで試せるコード
ddPn08/rvc-webui-colab | GitHub
要点としては、だだっこぱんださん版のRVC-WebUIの推奨設定案では、
・学習回数は数十回(15〜30回)程度
を想定しているようでした。
【補足】
2023年4月末に日本語に特化した事前学習モデルも公開されているようです。
参考:
rinna社が日本語の音声に特化した事前学習モデルHuBERTをApache-2.0 ライセンスでリリース – yasyune AI(音声)専用 2023年4月28日 | Twitter
その後、だだっこぱんださん版のRVC-WebUI(ddPn08/rvc-webui)が「japanese-hubert-baseに対応」のアップデートを実施されたようです。
参考:
hetima – 2023年5月1日 | Twitter
また、オリジナルのRVC WebUIで使われていると思われる「contentvec」と「Japanese-hubert-base」を比較した音声を公開してくださっている方もいるようでしたので、必要に応じて参照してみてください。
参考:
RVCでrinnaの「japanese-hubert-base」検証音声 – hetima 2023年4月29日 | Twitter
RVC WebUIで2時間くらいしか使ってないのに「GPUバッググラウンドが接続できません」とGoogle Colaboratoryに言われる
情報を調べてみると波があるようです。
使用経験談としては、
・数時間〜12時間
の範囲があるとのことでした。
おそらく、無料枠でGPUを使う方が増えてきているので、制限がかかりやすくなってきているのではないかと思います。
2023年4月には、「Stable Diffusion」という画像生成系のAIプログラムが、あまりにも使われるのでGoogle Colaboratoryの無料枠に制限が設けられたようです。
こういったことも、今回2時間程度しか使っていないのに制限がかかった要因の1つではないかと推測されます。
RVC WebUIで学習中にGoogle Colaboratoryのディスク容量上限に達してしまい学習が完了しない
チュートリアルでは、
・Save frequency (save_every_epoch):5
(学習の状況の保存頻度)
にしていますが、例として300回の学習の際には「60回」分の経過の学習ファイルが保存されてしまいます。
ここの数値を大きくするとGoogle Colaboratoryの無料枠の容量がMAXになるのを回避できるかもしれません。
(定期的に保存するファイルが減るため)
一例:
・Save frequency (save_every_epoch):50
*WebUI上での上限は50のようです。
【追記:Save frequencyの上限を再設定する方法】
Google Colaboratory上のチュートリアルプログラムの「手順3」で「Retrieval-based-Voice-Conversion-WebUI」をGitHubからクローン後に、Google Colaboratoryのファイル機能を起動し、「Retrieval-based-Voice-Conversion-WebUI」フォルダ内(直下)にある
・infer-web.py
のファイルをダブルクリックします。
ファイル内のコードを変更できるようになるので、562行目(Google Colaboratory上でファイルを開いた際の表示:注 – 2023年5月15日確認時点では、プログラムのコードが改変され「save_epoch10 = gr.Slider」が「1302行目」にあるようでした)
注:2023年5月15日確認時点の表示
・save_epoch10 = gr.Slider(minimum=0, maximum=50, step=1, label=i18n(“保存频率save_every_epoch”), value=5,interactive=True)
のコード内の
・maximum=50
の「50」という値をお好みの数字に変更します。
その後、ファイルの変更情報を反映させるために
Windowsの例
・Ctrlキー+Sキー(「Ctrlキー」を押し続けながら「Sキー」を押す)
Macの例
・commandキー + Sキー(「commandキー」を押し続けながら「Sキー」を押す)
でファイルを保存します。自信がなければ、Google Colaboratory上の上部メニュー内の
・ファイル – 保存
をクリックして、現在の状況を反映させます。
その後、一連の手順を実行し、ファイルが最新情報に更新された状態で「手順10」を実行し、RVC WebUIを起動させると、
・Save frequency (save_every_epoch):
の上限を指定した数値に設定することができます。
【文字情報だけでは操作方法が分からない場合】
プログラミングに慣れていない方は、上述の内容は意味不明ではないかと思いますので、動画で解説しておきました。
必要に応じて以下の記事に掲載しているチュートリアル動画が参考になることがありましたら幸いです。
:【RVC WebUIの使い方】学習の保存頻度上限を変更編:Save frequencyを変えてGoogle Colaboratoryの無料枠のディスク容量上限対策
RVC WebUIで二回目以降、別の音声で学習させた時にpthファイルが出力されない…
【Train – Step:1】・【Train – Step:2a】の
・Input experiment name:
(出力される学習モデルの名前)
・Please specify speaker ID:
(識別IDの設定)
を一回目の学習モデル(pthファイル)で設定した時と、違う設定にされましたでしょうか?
例:
一回目の学習の設定
・Input experiment name:test1
(出力される学習モデルの名前)
・Please specify speaker ID:0
(識別IDの設定)
二回目の学習の設定
・Input experiment name:test2
(出力される学習モデルの名前)
・Please specify speaker ID:1
(識別IDの設定)
もし、一回目と二回目の設定を変えていない場合には、上書き保存されている可能性も考えられるのではないかと思います。
上記の対応でもダメな場合には、
・ランタイムをリセット
して、再度、一連のプログラムを実行後にRVC WebUIを起動してみてください。
【補足】
RVC WebUIを起動中は、ファイルの更新マークをクリックしても反映が遅い場合もあります。
また、「weights」フォルダを開いた状態(中のファイルがColaboratory上で見える状態)にしていると、見かけ上、反映されない場合も経験しています。
そういった場合には、ファイルの更新マークをクリック後に、一度「weights」フォルダを閉じた状態(中のファイルがColaboratory上で見えない状態)にして、再度「weights」フォルダを開いた状態にしてみてください。
RVC WebUIで一度学習を終えたモデルをもっと学習させたい(学習の再開方法)。
また、どうすると効率や結果が良くなるのか?
現状で個人でわかる範囲の情報になりますが、以下の
・学習の再開について
・一度学習を終えたモデルをもっと学習させたい場合について
・妥協プランについて
・どのようにするのが効率や結果が良くなるかも解説について
・さらなる高みを目指したい場合
についてまとめておきます。
【①学習の再開について】
現時点でわかる範囲の情報では、
・学習の再開
という概念はRVC WebUIにはなさそうです。
【②一度学習を終えたモデルをもっと学習させたい場合について】
・一度学習を終えたモデルをもっと学習させたい場合
については、代替機能?として
・ckpt processing
(ckpt処理)
の機能のところに
・模型融合, 可用于测试音色融合
(音の融合をテストするために使用できるモデル融合)
という、2つの学習モデルを融合(フュージョン)させて新たな学習モデルを作る機能はあります。ただ、学習の再開という用途では、フュージョンさせる意味はないかと思いますので悲しいところです…,
【③妥協プランについて】
RVC WebUIの機能として、学習「Train:Step3」の設定
・Save frequency (save_every_epoch):
(学習の状況の保存頻度)
で学習途中の学習モデルのファイルを保存する機能があります。
そのため、妥協案としては、
・最終結果の「学習モデル」と「途中経過の学習モデル」を比べる
ことで、どの段階の学習回数が最適か?を検証することはできるのではないかと思います。
参考までに、学習の途中経過のファイルは、「Retrieval-based-Voice-Conversion-WebUI」フォルダの
・「logs」フォルダ内
に「Train:Step1」の
・Input experiment name:
(出力される学習モデルの名前)
で設定した名前(動画では「amitaro」)のフォルダに
・D_〜.pth
・G_〜.pth
*「〜」の数字が小さいほど学習初期の学習モデル
などの名前で保存されます。
上記の「.pth」というファイルを、
・「weights」フォルダ内
に入れる(ドラッグ&ドロップする)と、モデル推論「Model inference」の
・Refresh timbre list
(学習モデルのリストを更新する)
ボタンをクリックすると選択できるようになります。
学習させた
・Please select a speaker id:
(識別ID)
・Feature search database file path:
(FEATUREサーチパスを設定)
・Feature file path:
(FEATUREファイルパスを設定)
は最終的に出力された学習モデルと同じ設定にした状態で
・Inferencing timbre:
(音色の推論)
で「D_〜.pth」「G_〜.pth」を指定して
*試した範囲では「D or G」のどちらも同じような変換結果に感じました
・Conversion
(変換)
をクリックすると、途中経過の学習モデルでボイスチェンジすることもできます。
【④どのようにするのが効率や結果が良くなるかも解説について]
学習させるデータセットはそのままで、チュートリアルのRVC WebUIのコードで結果をよくする方法論としては、学習「Train:Step1」の設定
・模型是否带音高指导(唱歌一定要, 语音可以不要):
(モデルにピッチ – 音高ガイドが含まれるか?歌唱は必須・音声は任意)
を「是」にすると良いようです。
特にVC Clientでのリアルタイムボイスチェンジの際には、音質を重視される方は「是」が推奨されるようです。反面、リアルタイムボイスチェンジ時にパソコンに負荷をかけるようですので、パソコンへの負荷をかけたくない場合には、「否」を選ぶようにします。
また、RVC WebUI上での表記では
・pitch extraction algorithm:
(ピッチ抽出アルゴリズム)
を選択する際に品質重視の場合には
・harvest
を選択することを推奨しているようです。
【⑤さらなる高みを目指したい場合]
学習回数や高品質モデルの作成に関して考える上で、以下の記事などが参考になるのではないかと思います。
参考:
rvc-webuiの更新で多分最高品質になった学習方法 – だだっこぱんだ | PIXIV FANBOX
だだっこぱんださん版のRVC-WebUIをGoogle Colaboratoryで試せるコード
ddPn08/rvc-webui-colab
要点としては、独自の設定次第によっては、だだっこぱんださん版のRVC-WebUIでは、
・学習回数は数十回(15〜30回)程度
で、高品質モデルが作成できる可能性を秘めているようです。
【補足】
2023年4月末に日本語に特化した事前学習モデルも公開されているようです。
参考:
rinna社が日本語の音声に特化した事前学習モデルHuBERTをApache-2.0 ライセンスでリリース – yasyune AI(音声)専用 2023年4月28日 | Twitter
その後、だだっこぱんださん版のRVC-WebUI(ddPn08/rvc-webui)が「japanese-hubert-baseに対応」のアップデートを実施されたようです。
参考:
hetima – 2023年5月1日 | Twitter
また、オリジナルのRVC WebUIで使われていると思われる「contentvec」と「Japanese-hubert-base」を比較した音声を公開してくださっている方もいるようでしたので、必要に応じて参照してみてください。
参考:
RVCでrinnaの「japanese-hubert-base」検証音声 – hetima 2023年4月29日 | Twitter
Google ColaboratoryでRVC WebUIで学習モデルを作成中に処理が中断してしまう
Google Colaboratoryを無料枠で学習させる際に、データセットの規模が大きい場合
✔︎(メモリ12GBでは)学習データが大きすぎてメモリが足りなくなっている
可能性が考えられます。
対応例としては、
【対応できること①:データセットの無音部分のカット】
もしデータセットの音声データ内の「無音」部分が残存している場合には、すべて消すようにしてみてください。
試した範囲では
・WAV形式のファイルの場合1時間の無音ファイルは「1GB」
あるようでした。
【対応できること②:batch-sizeの変更】
学習を実行する際に「グラフィックボードのVRAM不足」に関する対応例として
✔︎ batch-sizeの値を現在の値よりも小さくする
対応をするという考え方もあるようです。
【まとめ】
・Google Colaboratoryの有料版にしても、データセットの規模が大きい場合には思い通りの結果が得られない(学習が途中で止まる)かもしれない。
・データセットの音声の無音部分を極力カットし、学習時のbatch-sizeの値を小さくした状態で、Google Colaboratoryの無料版で再試行してみる。
それでもダメなら、データセットの規模(音声ファイルの総時間)を小さくし、無料版で学習できる限界点を探してみる。
RVC WebUIで学習後に「インデックスファイル」と「npy」ファイルが出力されない
学習後(train)に、動画のように、
・全流程结束!
(全工程完了)
が出ていれば、基本的には学習ができていると思います。
表示が出ていることを確認できたら、何度かGoogle Colaboratory上のファイルの更新マークをクリックしてみてください。
更新を実施後に、開いているフォルダ構造を一度閉じた状態にして、再度開くと反映される場合があることも経験しています。
自分がGoogle Colaboratory上でこの動画のチュートリアルコードを実行した感じでは、「インデックス(index)ファイル」と「npy」ファイルが出力されない事象を再現できませんでしたが、オリジナルのRVC WebUIのissues(問題)でも2023年4月29日時点で、インデックスファイルが出力されなかった事例も報告されているようでした。
問題報告:RVC-Project/Retrieval-based-Voice-Conversion-WebUI
[Bug] Model Files Fail to Train #204 – RVC-Project/Retrieval-based-Voice-Conversion-WebUI | GitHub
公開してくださっているログをみた感じでは、Google Colaboratoryの環境ではなく、ローカル環境(自分のパソコン環境)で実行されている方のようです。
報告されている方は、以前はできたのに…とのことでした。
RVC WebUIでボイスチェンジを「歌声」に反映させたい時の手順
チュートリアルでは、
・模型是否带音高指导(唱歌一定要, 语音可以不要):否
(モデルにピッチ – 音高ガイドが含まれるか?歌唱は必須・音声は任意)
*この設定では「ピッチレス」という設定になるようです
にしていますが、歌声の場合には「是」にするようです。
ここを「是」にすると
・Number of CPU processes used for pitch extraction:2
(ピッチ抽出に使用されるCPUプロセス数の設定)
*設定は一例。おそらく初期設定のままでいいです。
・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
(ピッチ抽出アルゴリズムの設定 歌声の処理を高速化するには「pm」を使用。高品質の音声を処理するには「dio」を使用(低速)。最高の品質で処理をするには「harvest」を使用。ただ最も処理が遅くなります。)
*設定は一例。まずは「pm」を試してみて、colabのギガがMAXにならなければ「harvest」も検討してみてください。
の設定をする必要があります。
【RVC WebUIのQ&A集:モデル推論編 – Model inference】
RVC WebUIのエラー&対応例 – AttributeError: ‘NoneType’ object has no attribute ‘dtype’
「Model inference:モデル推論」の
・Enter the path of the audio file to be processed (the default is the correct format example)
(処理する音声ファイルのパスを入力します – デフォルトは正しい形式の例です)
で、
・音声ファイルのパス(動画では「/content/drive/MyDrive/originalvoice.wav」を指定)を間違えている
・音声ファイル名を間違えている
などで、変換する音声ファイルを認識できていない場合などに
・AttributeError: ‘NoneType’ object has no attribute ‘dtype’
というエラーが発生するようでした。
そのため、再度、音声ファイルのパスをGoogle Colaboratory上でパスをコピーし、該当箇所に貼り付けて、再度「Convert」(変換)を実施してみてください。
RVC WebUIのエラー&対応例 – Feature file path(npy形式ファイル:特徴量ファイルのパス指定)の設定欄がない…
RVC WebUIが2023年4月に公開された当初には、以下のように
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」のファイルのパスをコピー後に入力欄に貼り付けてください
「Feature file path」を設定する欄がありましたが、2023年5月から廃止されたようでした。
そのため、「npy形式ファイル」を指定しなくても音声変換が実行できるようになっています。
時折、
「“Feature file path”の項目がないので、音声変換を実行するとエラーが出ます…」
という報告をいただきますが、他の要因でエラーとなっている可能性があるようです。
RVC WebUIでモデル推論する際のキーの変更について(女性の声から男性の声へのボイスチェンジの場合)
キーを変更するには、モデル推論(Model inference)のところの設定の
・男转女推荐+12key, 女转男推荐-12key, 如果音域爆炸导致音色失真也可以自己调整到合适音域.
(男性から女性への推奨は+12key、女性から男性への推奨は-12key、もしレンジ爆発で歪みが発生する場合は、自分で正しいレンジに音色を調整することもできます)
を変更するとキーを変更できます。
例として、女性の声(音程が高い声)から男性の声(音程が低い声)にボイスチェンジする場合には、推奨設定は
・−12
の設定になるようです。
ただ、色々と試した範囲では、「-12」でもまだ高いと感じる場合もありました。その場合には、さらに下げると低い声になってくるようでした。
・一例:−36
仮に「-36」でもまだキーが高いと感じる場合には、さらに下げて、実現したいキーに近づくか?試行錯誤してみてください。
RVC WebUIで、過去に作成した学習モデル(pthファイル)で、もう一度モデル推論を行う方法
【手順①:以前完成して保存した学習モデル(〜.pth)の準備】
以前完成して保存した学習モデルを
・weights
*(/content/Retrieval-based-Voice-Conversion-WebUI/weights)
フォルダ内に移動させます。
(学習モデルはGoogleDriveにアップロードしたものを移動させてもいいですし、直接Google Colaboratoryにアップロードさせてもどちらでもいいです)
【手順②:新たな学習モデルの作成】
とりあえず何でもいいので、オリジナルのデータセットで学習モデルを作成します。
・logsフォルダ内
(/content/Retrieval-based-Voice-Conversion-WebUI/logs)
に今回作製した名前のフォルダ(動画の場合は「amitaro」という名前のフォルダ)が作成された状態にします。
【手順③:推論の実施】
以下の手順などを実施します。
・「Inferencing timbre」のところに以前作製した学習モデルを選択
・「ID」は新たな学習モデルのIDを指定
・「Feature search database file path」のところに、とりあえず作成した学習モデル関連のファイル「added_〜.index」を指定
その他の設定後、「Model inference」を実行します。
手順の要点としては、
・新しく学習させた学習モデル関連のファイル(pthファイル・indexファイル)
を使いつつ、
・以前作成した学習モデルのファイルを指定
する対応をすると、とりあえず動かせる可能性を秘めているようでした。
視聴者の方からリクエストいただきましたので、動画で手順例をまとめておきました。
対応例のチュートリアル動画
:【RVC WebUIの使い方】過去に作成した学習モデルで、もう一度モデル推論を行う方法 – Reuse of previously trained models from RVC WebUI by RehabC – デジタルで、遊ぶ。(YouTube動画)
RVC WebUIで、他の方の作った学習モデル(pthファイル)を読み込む方法
色々と試してみましたが、とりあえず動かせましたので簡単ですが方法をまとめておきます。
(注:RVC WebUIで作成した学習モデル間での検証です)
方法論としては、
【手順①:他の方が作成した学習モデル(〜.pth)の準備】
他の方が作成した学習モデルを
・weights
*(/content/Retrieval-based-Voice-Conversion-WebUI/weights)
フォルダ内に移動させます。
(学習モデルはGoogleDriveにアップロードしたものを移動させてもいいですし、直接Google Colaboratoryにアップロードさせてもどちらでもいいです)
【手順②:オリジナル学習モデルの作成】
とりあえず何でもいいので、オリジナルのデータセットで学習モデルを作成します。
・logsフォルダ内
(/content/Retrieval-based-Voice-Conversion-WebUI/logs)
に今回作成した名前のフォルダ(動画の場合は「amitaro」という名前のフォルダ)が作成された状態にします。
【手順③:推論の実施】
以下の手順などを実施します。
・「Inferencing timbre」のところに他の方が作成した学習モデルを選択
・「ID」はオリジナルの学習モデルのIDを指定
・「Feature search database file path」のところに、とりあえず作成した学習モデル関連のファイル「added_〜.index」を指定
・「Feature file path」のところに、とりあえず作成した学習モデル関連のファイル「total_fea.npy」を指定
その他の設定後、「Model inference」を実行します。
要点としては、
✔︎ オリジナルの学習モデル関連のファイルを使いつつ
✔︎ 学習モデル(.pth)ファイルだけ他の方が作成したファイルを指定する
対応をすると、とりあえず動かせる可能性が秘めているようでした。
【RVC WebUIのQ&A集:リアルタイムボイスチェンジ編 – VC Client】
VC Clientでリアルタイムボイスチェンジを試みる際のRVC WebUIで学習の際の注意点
RVC WebUIで学習(Train)の際に
「模型是否带音高指导(唱歌一定要, 语音可以不要)」
の設定を「否」に設定すると「ピッチレス」モデルとなり、リアルタイム音声変換をする際に、音声変換精度がやや劣るようです。音声変換精度を向上させたい場合には、「是」を選択してみてください。ただし、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)
RVC WebUIで作成した学習モデル(pthファイル)をonnxファイルに変換する方法
RVC WebUIで作成した学習モデル(pthファイル)を基にして、onnxファイルを作成し
:w-okada/voice-changer(The MIT Licence)| GitHub
をローカル環境(自分のパソコン)でリアルタイムボイスチェンジを実行したい場合には、
VC Client 1.5.2.2以降のバージョンで、
・pthファイルをアップロード後に「export onnx」をクリック
すると、pthファイルを入れているフォルダにonnxファイルが生成されるようです。
VC Clientでのリアルタイムボイスチェンジ時のみ、RVC WebUIの学習モデルで変な声になる・声がかすれるなどへの対応案
RVC WebUI上で音声ファイルを変換した際には、上手くボイスチェンジできるが、VC Clientでのリアルタイムボイスチェンジ時には、上手くいかないという方もいるようでした。
他の方が作成された学習モデルを利用すると、上手くボイスチェンジできるものの、自分でRVC WebUIで作成した学習モデルでは
「ほぼ聴き取れないレベルのかすれた声が出たり出なかったりという状態」
で、上手くいかないとのことでした。
開発者の方の情報を見てみると、今後、VC Client(for RVC)は
✔︎ ピッチレスにも対応
される予定のようです。
参考:
ピッチレスにも対応開始予定 – 2023年4月24日 | wok!(Twitter)
また、
✔︎ RVC WebUIの768次元埋め込み?
に対応されるようです。
参考:
rvc-webuiの768次元埋め込みに対応開始予定 – 2023年4月24日 | wok!(Twitter)
ローカル環境で実行するVC Clientを、RVCの設定で使っている方は、もしかしたら上記の対応と関係があるかもしれませんので、現在、同じような不具合事象に遭遇している方は、今後(2023年4月24日以降)リリースされるVC Client(for RVC)の最新版で、リアルタイムボイスチェンジに再挑戦してみてください。
【追記情報:2023年4月28日時点】
とりあえずリアルタイムボイスチェンジはできたものの、RVC WebUI上で変換できた音声には劣る結果だった…
という方向けに以下に改善案を2つ掲載しておきます。
– 改善案① –
現時点(2023年4月28日)での情報では、リアルタイムボイスチェンジに関しては、バグや相性問題なども考えられているようです。
その中でもヒントをくださっている方もいましたので、リンクを掲載しておきます。
:VC Client for RVC を使っても「ノイズが多い、変な声しか出ない」人向けのトラブルシューティング(仮)- 2023年 4月26日 | ライナ・リシェルド(Twitter)
いくつか対処方法例を提示してくださっていますので、一度参考にしてみてください。
他参考情報:
VCClientでRVCモデルのバグと対応について – 2023年4月28日 | ちると(Twitter)
– 改善案② –
改善案①で、うまくいかなかった場合、もう1つ候補があります。
それは、だだっこぱんださんが、liujing04/Retrieval-based-Voice-Conversion-WebUI の再構築プロジェクトとして、独自に公開してくださっているRVC-WebUIを使うことです。
プログラムのリンク:
ddPn08/rvc-webui
こちらのプログラムの場合、自分のパソコン環境(ローカル環境)で、だだっこぱんださんのRVC-WebUIを実行することになります。
また、最高品質のトレーニングモデルを作るための案もまとめてくださっています。
:RVCのモデルを最高品質トレーニング案- 2023年 4月26日 | だだっこぱんだ🍞(Twitter)
だだっこぱんださんのRVC-WebUIで作成した学習モデルを使う場合にも、試す時点での最新版のVC Clientをダウンロードして試してみてください。
起動方法の参考
だだっこぱんださんによるチュートリアル記事:
RVCのWebUIを1から作り直した話 – 2023年4月13日 | pixivFANBOX
*「git clone〜」のところは、上述のプログラムのリンクで圧縮ファイルをダウンロードしてから、自分のパソコン環境で解凍することで代用できます。
*「error: Microsoft Visual C++ 14.0 or greater is required.」への対応例
:ddPn08/rvc-webui/README-ja.md | GitHub(トラブルシューティングを参照)
2023年4月28日時点
【追記:2023年4月29日】
だだっこぱんださん版のRVC-WebUIをGoogle Colaboratoryで試せるコードも公開してくださっているようでした。
プログラムのリンク:
ddPn08/rvc-webui-colab
【RVC WebUIでAIボイスチェンジャーの学習モデル作成 & ボイスチェンジ】
:日本人のためのRVC WebUIの使い方:簡単オリジナルAIボイスチェンジャー作成
【RVC WebUIのボーカルリムーバーの使い方 – ボーカル抽出】
:【RVC WebUIの使い方】ボーカルリムーバー編:AIボイスチェンジャー用学習データセット作成のためのボーカルと音楽の分離
【音声認識】
:【Python入門】日本語の文字起こしのやり方(音声認識:音声ファイル編)サンプルコード
【音声合成】
RVC WebUIで作成したオリジナル学習モデルを使ってテキスト音声合成に挑戦!
:VG WebUIの使い方:AIボイスチェンジャー(RVC WebUI)の学習モデルでテキスト音声合成(テキストの音声読み上げ:TTS – Text to Speach)入門
:【PyTorch入門】日本語のテキスト音声合成(E2E-TTS)- ESPnet・Tacotron 2版