電脳天使工業流RVCボイスモデルのつくりかた【凛音エル】
はじめに(読み飛ばしていいです)
こんにちは。電脳天使工業のkokurenと申します。
みなさんはRVCをご存知でしょうか。実はリアルタイムボイスチェンジャーという意味ではなく、Retrieval-based-Voice-Conversionの略です。地味にボカコレでも使用許可の出ているものなのですが、公式も正式名称をミスっています。
MITライセンスで公開されているAI音声合成のOSSで、自分でデータセット(声の音声ファイル)を用意することで、その声にかなり似せたボイスチェンジャーを自作することができます。
最近YouTubeなどで見かけるAI cover動画はほとんどこの技術を使っていると言って差し支えないでしょう。いわゆる「生成AI」技術の一つであり、(旧Twitter上の一部界隈では)議論を呼んでいるようです。
日本ではもともとVOCALOIDやUTAUといった歌唱系ソフトや、VOICELOIDやVOICEVOXといったTTS(Text to Speech)などによる、合成音声キャラクターの文化が根付いています。最近だとずんだもんが大人気ですよね。
私はこの文化を楽しく発展させたいという想い(が1割ぐらいで9割は楽しさと知的好奇心)で「凛音エル」というオリジナルキャラクターのプロデュースを始めました。
上記の歌ってみた動画では自分で歌った声を凛音エルのRVCモデルで変換しています。音程をところどころミスったりしているのはボイスモデルのせいではなく、僕の責任です。RVCは変換元の影響が大きいです。
と、軽い紹介はここまでにして、どうしたらこういったボイスモデルを制作できるのか、どうやって作ったのかの工程をほぼ全て公開します。
というのも、かつてのUTAU文化のように沢山のキャラクターが生まれて盛り上がって欲しいという想いがあるからです。AIの技術的な話というよりは、データセットをどう作るかのノウハウになります。
基本的な学習のやり方やRVC自体の使い方は多分色んな人がまとめてくれているので、そちらを見ていただけると幸いです。自分でも推論(音声の変換機能)については簡単な使い方の説明動画をアップしています。
オリジナルRVCモデル頒布までの工程
許諾のとれる声優さんを見つける(おそらく最もハードルが高い)
録音環境を用意する
文章読み上げと歌唱のデータを収録する
(必要なら)音声データを加工する
RVCで学習を回す
できたモデル(.pthと.index)を頒布する
以下、各工程の説明です。
1. 許諾の取れる声優さんを見つける
ここは気合いです。
女性の声が欲しい男性は信頼関係の築ける方に頼みましょう。
2. 録音環境を用意する
ここも気合いです。
100均材料でリフレクションフィルターの自作までしたのですが、コンデンサーマイク収録に慣れていない場合はダイナミックマイクの方がいい可能性もあります。スタジオ収録じゃなくても十分精度は出ます。
3. 文章読み上げと歌唱のデータを収録する
ここは声優さんの気合いです。
参考までに、以下で頒布しているモデルはコーパス文やオリジナルセリフの読み上げ45分、歌唱が15分程度の計60分ほどのデータセットで作成しています。ここでいう60分というのは無音の切りつめ後の長さです。
また、上記のデータセットに歌唱をさらに追加し、読み上げを45分、歌唱45分の計90分ほどのデータセットで学習したものが以下です。
歌唱を追加したデータセットで歌ったのが以下。
4. (必要なら)音声データを加工する
データセットにノイズが多いと、学習後のモデルもノイズを出力するようになります。ただし、生音の温かみとも捉えられるので決して下位互換というわけではないです。
この辺りは好みや職人技の領域なので、各自で好きなように調整するのがいいと思います。
5. RVCで学習を回す
ここはGPUの気合いです。
これについてはおそらく色々記事があると思いますが、一応最新(2024年2月)の情報を交えると、事前学習モデルにも新しいものがいくつかでてきています(Ov2SuperやRIN_E3といったもの)。
ですが、体感では事前学習モデルの違いで変わるのは学習の早さ(必要なepoch数など)の方で、要検証ですが変換精度自体が劇的に変わる感じは個人的にはわかりませんでした。少なくとも、データセットの質の方が重要な気はしています。
どれぐらい学習を回すかも好みの部分が大きいのですが、回せば回すほどよいというわけでもないです(重要)。少ない方が元の声の質感が残りやすいですが、多い方がクリアにはなりやすい印象です。回し過ぎると若干機械音声っぽく感じられる気がします。
「気がする」「印象」といった言葉を使うのは、音声の質については定量的な評価が難しいからです。特に学習についてはデータセット量や質に大きく左右されるため、画一的にこれが一番いいというノウハウを定義することはできないかもしれません。
6. できたモデル(.pthと.index)を頒布する
モデル本体は"モデル名.pth"というファイルになります。これとindexファイルを同梱したものをBOOTHやnoteなどで頒布するのがよいと思います。まだ新しい技術なのと、まずは使ってみて欲しいという想いから、私は一部無料で頒布しています。
モデル作成から頒布までの流れは以上になります。
最後に凛音エルの宣伝
電脳天使工業のVirtual Singerである凛音エル(@RinneElu)をよろしくお願いいたします。VRoid hubにてVRMアバターの配布も行っております。
今後改定の可能性や改善予定はあるのですが、キャラクターとしても比較的ゆるめの規約で使えるようなガイドラインを作成しています。詳しくはBOOTHページからご確認いただければと思います。
今後AItuber的なこともできないかと構想を練っています。
ボカコレも出場予定です(間に合え!)。
それでは。