好きなアニメのキャラが自分の好きな歌を歌ってくれたらいいな~、って思ったことありませんか?
今回はRVCというオープンソースのAIツールを使って好きなキャラの声を学習させ、歌わせる方法を紹介します。
RVCについて
AIで音声変換できるツールやサイトはどれもお金がかかるものが多いですよね...
そんな中でもRVCはRVC-Projectで作られたオープンソースのAIツールで、完全無料で使用できて品質も非常に高いです。
自分でトレーニングさせる必要があるので手間はかかりますが使ってみる価値は十分にあります。
RVCと言えば友達との会話や配信でリアルタイム変換する用のデータの作り方を紹介されている方が多いですがここでは歌わせる方法を紹介します(というか紹介する方法でAI学習まで完了出来ればそのファイルはリアルタイム変換にも使えます)。
導入方法
こちらから最新のものをダウンロードしてください。

NVIDIAのGPUを使用している場合は"For Nvidia GRU users"から
AMDまたはIntelのGPUを使用している場合は"For AMD/Intel GRU users"から
ダウンロードしてください。
ダウンロード完了後、任意の場所に解凍し、"go-web.bat"からWebUIを立ち上げることができます。
Step1:トレーニング
このツールを使う上で必要不可欠なAIのトレーニングを最初に行います。
①モデル音声を用意する
まずは好きなキャラの音声モデルを用意しましょう。アニメの切り抜きなどで大丈夫です。
私の場合、PCのブラウザからAmazon Prime VideoやNETFLIXなどの配信サービスを立ち上げ、Win+GのオーバレイまたはWin+Alt+Rのショートカットキーから画面のキャプチャを開始して歌わせたいキャラがしゃべっている部分を録画しました。
他のキャラの音声が入ってしまっていても後々編集で消せば問題ないので大丈夫です。
モデル音声の量は30分~1時間程度あれば十分な学習量を得られます。
※デスクトップアプリから立ち上げると権利の保護の関係でキャプチャが阻害されますがウェブから立ち上げれば録画できます。iPhoneの場合は真っ黒な画面になりますがアプリからでも録画できます(音声が使えれば問題ないので真っ黒になっても気にしなくて大丈夫です)。
※録画したデータは第三者に公開すると著作権などの問題が生じてきますので公開はせず個人利用にとどめましょう。変換後の音声も同様です。
②録画データをMP3に変換する(動画としてキャプチャした場合)
録画した場合MP4として書き出されると思いますのでMP3やWAV、flacなどRVCでも使える音声データに変換しましょう。
"MP3 to MP4"などで検索すれば変換してくれるサイトがたくさん出てきますのでそちらから変換してください。
③モデル音声とBGMや環境音を分離する
続いてMP3化したモデル音声の分離作業に入ります。
恐らく歌わせたいキャラのほかにBGMや環境音、雑音も入り込んでしまっていると思いますのでそれらを分離します。
別キャラの音声は次のステップで除外しますのでここでは気にしなくて大丈夫です。
RVCにはボーカルリムーバーが付属されています。アニメ等の音声であればこのリムーバーで十分です。

「伴奏ボーカル分離&残響除去&エコー除去」タブから分離作業を行えます。
モデル音声は1つのフォルダにまとめて入れてください。そのフォルダのパスをコピーし、「処理するオーディオファイルのフォルダパスを入力してください」の部分に貼り付けてください。
「モデル」は音声分離をしてくれるAIモデルの種類になります。"HP5_only_main_vocal"がオススメです。
マスターの音声ファイルとマスター以外の音声ファイルは任意の場所で、こだわりがなければoptのままで大丈夫です。音声を分離すると、
キャラクターの音声はvocal_example.mp3..flac
BGMや環境音はinstrument_example.mp3.flac
といった形で出力されます。"vocal"とついたキャラの音声の入ったファイルがマスターファイル、"instrument"とついたBGM等のは入ったファイルがマスター以外のファイルとなります。
optフォルダは
RVC1006Nvidia\opt
にあります。
④他のキャラクターの音声を除外する
BGM分離ができましたら他キャラクターの音声の除外に移りましょう。
これに関してはAIではできない部類になりますので手動で行う必要があります。
私の場合はAudacityを使って除外しました。

音声を聞きながら除外作業を行います。
他のキャラが喋っている部分を範囲選択し、Deleteキーで削除するか、画像赤丸部分の「選択部分を無音化」から無音にしてください。
一通り終わりましたら、
ファイル→オーディオをエクスポート
からエクスポートしてください。拡張子はMP3やWAV、flacなどRVCで使えるものを選択してください。
ファイル名が長文であったり、余計な記号が入っていたりすると学習させる過程でエラーが起きる場合がありますので英数字で簡略化させることをオススメします。
ここでできた最終的なモデルファイルも一つのフォルダにまとめておいてください。
Step2:AIに学習させる
ここが最も大事な作業です。ここまでの過程で作成した音声モデルを学習させていきます。

「トレーニング」タブに移ってください。
順番に見ていきます。ここで触れていない項目は特に弄らなくて大丈夫です。
・モデル名
任意の名前を設定してください。同じキャラで何個かモデルを作成することを想定して、キャラの名前の後に後々紹介するエポック数などを記載しておくと良いと思います。
例:Goku(350)
・目標サンプリングレート
48kにしてください
・モデルに音高ガイドがあるかどうか(歌唱には必要ですが、音声には必要ありません)
trueのままで大丈夫です。
・バージョン
v2にしてください。
・トレーニング用フォルダのパスを入力してください
モデル音声のフォルダのパスを入力してください。
ここまで入力できましたら隣の「データ処理」をクリックしてください。1分程度で終わります。
・ピッチ抽出アルゴリズムの選択
rmvpe_gpuを選択してください。
・rmvpeカード番号設定
GPUを複数個搭載していて、指定したGPUを使いたい場合は右側にGPU情報が表示されますのでそこに表示された番号を入力してください。
ここまで入力できましたら次に隣の「特徴抽出」をクリックしてください。数分程度で終了します。
・エポックごとの保存頻度
万が一学習途中でクラッシュした場合など途中のセーブデータから学習やり直す場合に重要な項目になります。10~20あたりで大丈夫です。
・総エポック数
AIに学習させる勉強時間のような項目です。十分なデータ量があれば300~400あたりがオススメです。
少なければその分学習も早く終わりますがかなり質が悪くなります。
1000まで設定できるようですが、実は高ければ高いほどいいというものではなく、上げすぎると過学習と言って金属音やノイズが発生して返って質が落ちてしまいます。
いきなり400にするよりも、50ごとや100ごとなど段階をあげて学習させると最適なモデルを作りやすいです。迷ったら300で一回作ってみましょう。
すでにモデルを学習させていて追加で学習させる場合、元のエポック数に加算する形になります。100エポックで学習させたモデルに200エポックで再度学習させると300エポック分学習したことになります。なので上げすぎにならないようご注意ください。
・GPUごとのパッチサイズ
GPUをどれだけ使用するかの項目になります。学習時間の短縮につながります。この項目はVRAMの値に応じて設定する必要があります。上げすぎるとクラッシュしますのでご注意ください。目安としては下記の通りです。
| VRAM | サイズ |
| 8GB | 4~6 |
| 12GB | 6~8 |
| 16GB | 8~12 |
| 24GB | 12~16 |
| 32GB | 16~24 |
・ハードディスク容量を節約するため、最新のckptファイルのみを保存しますか?
400エポック程度まで学習させると100GB近い容量になるため、容量を節約したい場合は「はい」を選択してください。
・すべてのトレーニングデータをメモリにキャッシュするかどうか。
モデル音声の総時間が10分を超える場合は「いいえ」を選択してください。
・各保存時点の小モデルを全部weightsフォルダに保存するかどうか
「いいえ」で大丈夫です。
・事前学習済みのGモデルのパス
初回学習時は何も入力しなくて大丈夫です。
追加学習をする場合、
RVC1006Nvidia\logs\モデル名
にある一番最後に作成されたG_〇〇〇.pthというファイルのパスをコピーして入力してください。
・事前学習済みのDモデルのパス
初回学習時は何も入力しなくて大丈夫です。
Gモデルと同様、追加学習をする場合は
RVC1006Nvidia\logs\モデル名
にある一番最後に作成されたD_〇〇〇.pthというファイルのパスをコピーして入力してください。
ここまで入力できましたらあとはAIに学習させるだけです!
「ワンクリックトレーニング」をクリックして学習を開始してください。
私の場合、RTX3090、モデル音声の総時間が1時間程度、総エポック数350で学習完了まで3時間程度かかりました。
気長に待ちましょう('ω')
Step3:音声変換する
AIの学習が完了しましたらいよいよ変換の開始です。
①音楽をMP3ファイルとして取得
YouTubeなどからお好きな楽曲を選んでMP3化してください。
ブラウザであればFLVTOが、アプリであればVideoProc Converterなどがオススメです。
②音楽ファイルの音声分離をする
コーラスやInstrumentalは分離しないと曲が壊れてしまうため、ここで分離作業を行います。
Ultimate Vocal Remover(UVR)というソフトを使いましょう。
通常版よりもベータ版の方が拡張性が高くオススメです。

アセット内の"UVR_Patch_10_6_23_4_27.exe"をダウンロードしてください。
ダウンロードした.exeを起動し、セットアップが完了しましたら次のモデルをダウンロードしてください。
このモデルは、高速で、且つ高品質にボーカル / Instrumental・コーラスを分離してくれます。

config_karaoke_becruily.yamlとmel_band_roformer_karaoke_becruily.ckptをダウンロードしてください。
ダウンロード完了後、デスクトップの検索バーに"%appdata%"と入力してAppDataフォルダを開いてください。
そして、
AppData\Local\Programs\Ultimate Vocal Remover\models\MDX_Net_Models
にmel_band_roformer_karaoke_becruily.ckptを、
AppData\Local\Programs\Ultimate Vocal Remover\models\MDX_Net_Models\model_data\mdx_c_configs
にconfig_karaoke_becruily.yamlを入れてください。
その後、UVRを起動してください。

・Select Input
音楽ファイルを選択してください。
・Select Output
分離後のファイルを出力するパスを選択してください。
・CHOOSE PROCESS MODEL
MDX-Netを選択してください。
・SEGMENT SIZE
512あたりがオススメです。
・OVERLAP
4で大丈夫です。
・CHOOSE MDX-NET MODE
mel_band_roformer_karaoke_becruily.ckptを選択してください。
・GPU Concersionにのみチェックを入れてください。
・SEGMENT SAVED SETTINGS
ここは何も選択しなくて大丈夫です。
ここまで入力できましたら"Start Processing"をクリックして分離を開始してください。
初回のプロセス開始時はconfigファイルの選択を求められると思います。その場合はconfig_karaoke_becruily.yamlを選択してください。
分離完了後、下記のようなファイルが出力されます。
1_example_(Instrumental).wav
1_example_(Vocal).wav
このうち、Vocalの方のファイルを次のステップで変換します。Instrumentalも後程使いますので消さないでください。
分離完了後、RVCに戻ってください。
③音声を変換する
ここまで出来たらいよいよ変換開始です。

RVCの「モデル推論」タブに移り、まずは「音源リストとインデックスパスの更新」をクリックして更新してください。その後、下記の通り入力していってください。
「批量推理」を選択すれば複数のファイルをまとめて変換できますが、ここでは一つずつ変換する「単次推理」を紹介します。
・音源推論
先ほど学習させたモデルを選択してください。
・ピッチ変更(整数、半音数、上下オクターブ12-12)
ピッチの変更ができます。特に変更する必要はないと思います。
・処理対象音声ファイルのパスを入力してください(デフォルトは正しいフォーマットの例です)
先ほどUVRで分離したVocalの方のファイルのパスを入力してください。
ファイルを右クリックし、「パスのコピー」からパスをコピーできます。
・特徴検索ライブラリへのパス 空の場合はドロップダウンで選択
ここは何も入力しなくって大丈夫です。
・インデックスパスの自動検出 ドロップダウンで選択
学習させたモデルの.indexファイルを選択してください。
・ピッチ抽出アルゴリズムの選択
pm・・・あまり使わないです(不明)
harvest・・・低音ボイスが多い楽曲でオススメです(30~60秒)
crepe・・・高音ボイスの多い楽曲でオススメです。また4つの中で最もクオリティが高いです。(15~30秒)
rmvpe・・・一番早く変換できて品質もかなりいいモデルになります。まずはこれでテストしてみるといいと思います。(5~10秒)
※( )内はRTX3090で変換にかかった時間です。
・最終的なサンプリングレートへのポストプロセッシングのリサンプリング
0で大丈夫です。
・入力ソースの音量エンベロープと出力音量エンベロープの融合率
0.25~0.35あたりがオススメです。
・明確な子音と呼吸音を保護し、電子音の途切れやその他のアーティファクトを防止します。
0.3~0.4あたりがオススメです。
・>=3 次に、harvestピッチの認識結果に対してメディアンフィルタを使用します。
harvestを使わない場合は無視して大丈夫ですが、使う場合でもデフォルトの3で大丈夫です。
・検索特徴率
1がオススメです。
ここまで入力できましたら「変換」を押して変換してください。
変換が完了しましたら、右側の三点マークからダウンロードできます。
④変換後の音声とInstrumentalを結合する
変換後の音声とInstrumentalを結合しましょう。
Audacityで結合できます。変換後の音声とInstrumentalをAudacityにドロップし、バランス調整などをして
ファイル→オーディオをエクスポート
からエクスポートすれば好きなキャラが歌う歌の完成です!!
先ほども記載しましたが、第三者に公開すると権利上の問題になりかねませんので個人使用にとどめてください。
私はBEASTARSが好きなのでハルとジャックのモデルを学習させてみたのですが本人の声と聞き分けがつかないくらい高品質に仕上がって気に入っているので毎日聴いています^_^
ちなみに、YouTube Musicであれば公開せず個人使用用としてオーディオをアップロードできるのでオススメですよ。








































































































