自分のYouTube動画からStyle-Bert-VITS2の音声モデルを作ってみる
前回、ITAコーパスを読み上げて自分の声でAI音声モデルを作ってみましたが、コメント欄にて、「データセット作成ではダメなのでしょうか?」という指摘を頂き、ハッとしました。
データセット作成タブの注意書きによると「既に1ファイル2-12秒程度の音声ファイル集とその書き起こしデータがある場合は、このタブは使用せずに学習できます。」という一文があり、つくよみちゃん様やカノン様などの音声学習では、既にコーパスが存在するため、このタブは使わなかったんですね。(より正確に言うと文字起こしの部分だけは使った)
興味本位の実験として、正規に購入したえっちな音声素材集から、データセット作成(スライス処理)をしたことはあったのですが、サンプル数が少なく、「あっ」「ああんっ」等の2秒に満たない音声が除外されたこともあり、音声学習するなら音素バランス文を使わねばならない、と頭が固くなっていたようです。
自分の声の音声モデルを作ってBoothで配布してやろう、などと画策しているわけではないので、過去に生声で作ったYouTube動画から音声抜き出して使えば良いのでは?と今更になって気が付きました。
音素バランス文を読み上げるのは苦行なのでしばらくやりたくないですが、音声ファイルをほおりなげて1~2時間ほっとくくらいなら全く手間ではありません。さっそくやってみたいと思います。
今回音声を抽出する動画
先月の6月17日にアップした解説動画で26分50秒あります。
Shotcutの編集画面ですが、オーディオトラック1に音声が23クリップ挿入されており、ほとんど隙間がないため、音声だけで25分以上はありそうです。
音声ファイルをSBV2のinputsフォルダへほおりこむ
わざわざ動画から音声を抽出せずとも、編集前の元データがあるので、その音声ファイル23個を C:\Style-Bert-VITS2\inputs へコピーします。
音声ファイルといえばWAVなのかもですが、ぼくは基本的にopus形式を使っています。WAVファイルの50分の1くらいのサイズになるし、mp3より劣化しないし。
でも最近知ったのですが、iPhoneだと対応していないらしいので、動画をアップするときだけH.264/AACに変換しています。早く世の中の端末がすべてAV1/opusに対応してほしいものです。
SBV2でスライス処理を実行する
前回、モデル名を zizi としたので、区別するために今回は zizi_youtube というモデル名で作ることにします。
[スライスを実行]ボタンをクリックすると10秒かからないくらいで、C:\Style-Bert-VITS2\Data\zizi_youtube\raw に185個のWAVファイルが出来ました。
元は23個の音声ファイルだったのですが、1ファイルあたり2~12秒の音声ファイルになるように自動調整された結果です。
SBV2で文字起こしを実行する
スライスが完了したら、そのまま画面下にある[音声の文字起こし]ボタンをクリックします。
これはさすがに時間かかるかな?と思ったのですが、20秒もかかりませんでした。どんなマジック使ってるの…?
この文字起こしを実行すると C:\Style-Bert-VITS2\Data\zizi_youtube に esd.list が作成されます。
前回はITAコーパスからコピペした音声ファイルと文章の対応リストですね。
参考までに一部抜粋しておきます。
こんなに正確に音声から文章が起こせるってすごいですよね…。
YouTubeの字幕機能などを見慣れていたら感動はないかも知れませんが、いいですか、これ個人が自由にローカルで使えるソフトですよ。それでこんなことが出来るなんて本当に良い時代です。
尚、この時点で嫌な予感はしていましたが、先にネタバレしちゃうと、「えー」とか「あー」といった喋り方も学習しちゃいます。
ただ、この喋り方、個性と言えなくもないので、一概に悪いことでもないよな、と感じました。
SBV2で自動前処理と学習を開始
この部分は前回やったことと全く同じですね。鼻水たらしながら[自動前処理を実行]と[学習を開始する]のボタンをクリックするだけです。
前回は100個の音声ファイルでしたが、今回は185個ということもあり、学習時間は1時間35分ほどかかりました。(RTX4070使用)
1ファイルの学習にだいたい30秒と考えれば良さそうです。
完成例
これまた前回と同じくおっさん声で申し訳ないですが、合成音声と生声の比較です。
■合成音声
ふたたび、おっっさんの声で申し訳ないのですが、こちらがぜんかい、イタコーパスで作成した合成音声です そして、こちらが、今回、YouTubeの音声から作成した合成音声です 明らかに前回に比べてホワイトノイズが多いのですが、喋り方の癖は、本人の声にだいぶ近い感じがしてびっくりしています 特に読点で句切った文章の間に、ええええええー、などと言いよどむ感じなど、本人そっくりで笑ってしまいました…
なぜか、「前回」が発音できなかったので台本には「ぜんかい」と書きました。
また、「えー」という発音も短すぎたので「ええええええー」と超大袈裟に書いて何とか発音できました。
■生声録音
えー、繰り返しおっさんの声で申し訳ないのですが、こちらが生声を録音した音声になります やはり、えー、とか、ん-とか、言いよどみとかフィラーワードって言うんですかね 何だかわからないうちに使っていますね そういう部分も、こー、YouTubeの動画では、えー、何て言うんでしょう、 学習されてしまうのだなぁ、と驚いております
ぼくの結論:SBV2の場合は音素バランス文不要かも知れん
ケースバイケースではあると思いますが、既に自分の声を録音したデータが十分手元にあるのなら、がんばって音素バランス文を読み上げる作業をするより、とっととスライス&文字起こしを自動でやってもらってサクっと音声モデル作ってトライ&エラーのほうが良いかも、と感じました。
今回、ノイズはすごく気になりました。特にヘッドホンで聞くと明らかにひどい。
自分が作る解説動画やレビュー動画では声の音質なんてあまり気にしたことありませんでした。
聞き取れさえすれば良かろう、と雑音のある環境(空調とか鳴ったまま)で収録していたのですが、いざ学習後の合成音声を聞いてみるとノイズが強調されてしまうようで、これはちょっと長時間聞くのは辛そう。
今回はなーにも加工せずにinputsフォルダへほおりこみましたが、あらかじめノイズ低減してから学習すればもっとクオリティは上げられることでしょう。
ノイズの件を除けば、前回1時間以上かけて録音した音声よりも、解説動画での自分の喋り方の癖が反映されている今回のほうがクオリティが高いと感じました。
ある程度の長さの音声さえ用意すればこんな簡単に癖を再現できるのだから、そりゃ投資詐欺の電話で使われるハズよね…。
まぁだからと言って新しい技術を忌避するのは馬鹿らしい話なので、犯罪は犯罪として偉い人たちに法整備を頑張って頂くとして、ぼくはこの技術を活用してもっともっと楽しんでいきたいと思いました。










