【AI音声変換】Retrieval-based-Voice-Conversion(RVC)の使い方

備忘録

Retrieval-based-Voice-Conversion(RVC)という、新しい音声変換AIを試してみた記録です。

既存のものよりも高速に学習が可能らしい。

スポンサーリンク

ダウンロード

元々は中国語のみでしたが、有志の方が日本語版を配布して下さっています。

ここではRVCのダウンロードから日本語化する方法について解説します。

上のリンクからRVC-beta.7zをダウンロード。

7zはデフォルトでは解凍できません。7-Zip等の解凍ソフトを使って下さい。

解凍後、Cドライブ直下にフォルダを移動します。

日本語化

リンクから緑のCodeボタン→Download zipをクリック。

Zipを解凍後、go-web_jpinfer-web_jpをRVC-betaのフォルダに移動し、go-web_jpを実行。

正常に起動すると、自動でhttp://127.0.0.1:7865/がブラウザで開きます。

学習データの準備

本記事では、実験としてとあるVtuberの音声を学習させました。

音声からBGMを除去する

この項目は音声にBGMがない場合は飛ばしてOKです。

雑談動画で学習させようとしましたが、問題となるのがBGMです。

人の声とBGMが被っている場合、学習に悪影響が出る可能性があります。

なので、まずは声とBGMを分離します。

ありがたいことにRVC-WebUIにはBGMの分離機能がついているので、これを利用します。

RVC-betaのフォルダ直下にinputフォルダを作成し、学習データの音声を配置。

ボーカルとインストを分離をクリック。

処理対象のオーディオフォルダパスの入力に作成したinputフォルダのパスを入力。

モデルでHP2を選択。

最後に変換をクリックで自動でBGMの除去が行われます。

正常に完了すれば出力するボーカルフォルダ/インストフォルダを指定で入力したフォルダに音声ファイルとBGMファイルが置かれます。(デフォルトはoptフォルダ)

長時間の音声ファイルの変換には時間がかかります。

音声データの切り取りを先に行いましょう。

音声データの切り取り

学習データはただ長時間の音声を突っ込めばいい訳ではなく、発話ごとの音声に切り取る必要があります。

例:

「むかしむかしある所に、おじいさんとおばあさんが住んでいました。おじいさんは山へ芝刈りに、おばあさんは川へ洗濯に行きました。おばあさんが川で洗濯をしていると、ドンブラコ、ドンブラコと、大きな桃が流れてきました。」

これでは長すぎるので、

「むかしむかしある所に、おじいさんとおばあさんが住んでいました。」

「おじいさんは山へ芝刈りに、おばあさんは川へ洗濯に行きました。」

「おばあさんが川で洗濯をしていると、ドンブラコ、ドンブラコと、大きな桃が流れてきました。」

に分けて切り取ります。

あくまで一例です。どの程度切り取るかは音声データ次第です。

また、発話前後の無音部分は可能な限り削除します。

編集はAudacitySoundEngineなど、適当な音声編集ソフトでOKです。

切り取りが終わったら、RVC-betaのフォルダ直下にtraindataフォルダを作成し、切り取った音声を配置してください。

音声の学習

最低限設定が必要な項目のみ記載します。

トレーニングタブをクリック。

実験名を入力に好きな名前を入力。(学習モデルのファイル名になります)

トレーニングフォルダーのパスを入力に先ほど作成したtraindataフォルダのパスを入力。

トレーニングの総回数total_epochを好きな値に設定。初めはデフォルトで行い、精度を上げたい場合は値を増やすと良いです。

設定後、右下のワンクリックトレーニングをクリックで学習が開始。

学習したモデルはweightsフォルダに出力されます。

私の環境だとワンクリックトレーニングを実行時に一度エラーが起きました。

その場合は以下の順番でボタンを押してください。

  1. データを処理
  2. 特徴抽出
  3. 学習機能インデックス
  4. トレーニングモデル
  5. ワンクリックトレーニング(4.でエラーが起きる場合)

推論

学習したモデルを使い、音声を変換します。

モデル推論タブに移動。

音色リストを更新ボタンをクリックし、推論音色から学習したモデルを選択。

処理対象のオーディオファイルのパスを入力に変換したい音声のパスを入力。

機能検索ライブラリのファイルパスに、logフォルダ内にある学習モデルのadded_~.indexを入力。

機能ファイルパスに、logフォルダ内にある学習モデルのtotal_fea.npyを入力。

ピッチ抽出アルゴリズムの選択は好きな方を選択し、変換をクリック。

正常に変換が終わると、出力情報がSuccessになり、その下に変換した音声が表示されます。

コメント

タイトルとURLをコピーしました