音声AIの情報を纏めるWikiです

データセットの前処理

音声AIにおいても、画像生成AIと同様に適切なデータセットを用意することが大切。RVCは無音部分やBGMでも学習用ノイズになることに注意。
  • 音声データを区切る
必ず音声データは発話(=文)ごとに区切って、無音部分は削除する。
ただ単に長時間の音声データを入力しても全く精度は良くならない。
この部分が一番重要なのでここに時間を一番費やすべき。

という意見もあるが、無音部分はRVCの前処理段階で自動的に切れるし、長い音声を突っ込んでも発話で区切って突っ込んでも前処理段階で同じぶつ切りにされるので、
そこまで無音や音声ファイルの長さにこだわらなくてもよいだろう。
そもそも無音部分を学習させないと無音部分で音が出たり入力した音声がノイズ扱いされる変なモデルになるので、無音カットはやらなくてよい。無音部分がノイズという上の情報は誤りだと思われる。

ただ環境音等のノイズや、リバーブ・エコーがかかったセリフ等があるとそれが亡霊のようにくっつくので、そういう変なデータがないかはできればチェックすべし(n敗)

Pythonを用いて処理する方法
Pythonを用いた発話分割【AIボイスチェンジャーの学習で役立つ】
  • 音質を上げる
ノイズリダクションを掛けるのが音質を上げるのに有効。
音楽系の前処理とは違い、機械学習系の場合だとディザは掛けないのが一般的?ディザのような処理をかけると、それを高周波ノイズとして学習してしまうため。

パラメーター


前提として、「エポック数」が同じデータセットで何回学習を回すかの指標であり、バッチサイズは一度に複数学習することにより同じエポック数にかかる時間を下げてくれる効果がある。
画像生成AIのときはバッチサイズも重要という意見もあるが、バッチサイズを上げても質に変化があるようには聞こえない。バッチサイズは特にこだわりがなければ上げられるだけ上げて学習速度を上げ、
10エポックごとぐらいに保存しておいてそれぞれのモデルで異なるエポックで試してみるとよいだろう。

一応過学習という状況もRVCでは起きる(ことがある)(という体感がある人が多い)(と思われる)。
体感では、十分良いデータセットでは、回しすぎるとその人の発音の仕方に引っ張られて子音のところのノイズが増したり、
全体的なノイズ耐性が少なくなったり、母音にザラつきが生じ発音がちょっとこもったりする。
回せば回すほどよいというわけではなく、「発音のクリアさ」と「その人の声の特徴が出ているか」というトレードオフの二つがちょうどいい塩梅のところを、いくつかのエポック数から探すとよいだろう。

エポック数決定に際して英語圏では次のドキュメントがよく引用される(が正直あてにならないことが多く、複数エポックを自分でボイチェンで使いながら試すのが一番):
https://docs.google.com/document/d/1heKuaedmHNBTXv...

このページへのコメント

「必ず音声データは発話(=文)ごとに区切って」というのは区切ったものを.wavファイルで分離するということ?

それとも文ごとに一定時間無音の時間を差し込むだけでいいの?

4
Posted by 名無し(ID:tUldwW4SYg) 2023年05月06日(土) 23:41:09 返信

歌から学習させたい場合はどういう区切りがいいのかな

0
Posted by 名無し(ID:wXsKZKkU9w) 2023年05月01日(月) 20:37:43 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます