[論文メモ] FREEVC: TOWARDS HIGH-QUALITY TEXT-FREE ONE-SHOT VOICE CONVERSION
テキストを利用しないone-shot可能なVITSベースのVoice Conversion(VC)
arxiv.org
github.com
よくVCではコンテンツとスタイル(話者情報)を分離して再合成するという形式が多い。しかしその多くはコンテンツ情報にスタイルがリークしていたり大量のアノテーション付きデータを必要としたりと問題がある。
またメルスペクトログラムなどの中間特徴を介したvocoderを用いて波形に再構成する(2ステージモデル)のでモデル不一致による劣化もある。
既存手法のVITSは1ステージモデルでvocoderの不一致が起きにくい。
しかし、VITSはコンテンツとスタイルの分離のためにテキストアノテーションのある大量の音声データを必要とするのと、many2manyなVCに限られる問題がある。
これをなんとかしたいというお気持ち
手法
テキストフリーかつone-shotでVCのできるFreeVCを提案。
ベースとなるモデルはVITS。モデルの全体像は図1参照
テキストの代わりとしてここでは自己教師あり学習、WavLMによる特徴を利用する。
WavLMは音声波形を1024次元の特徴に変換する。にはまだ話者情報が入っているのでInformation Bottleneck(IB)を用いてこれを排除する。
IBはを次元にしたあとでとに変換しを出力する。
VITSで本来はテキストから得る特徴をこのに置き換える。これによりテキストアノテーションが不要になる。
many2manyを解消するために固定の話者埋め込みを利用するのをやめ話者エンコーダを利用する。
話者エンコーダとしては学習済みモデルを固定で利用するのと、スクラッチで一緒に学習するのを試す。
なおエンコーダはLSTMベースのシンプルなものを利用。
学習
AutoVCでもbottleneckは利用されていて、bottleneckサイズのチューニングが重要と言われていた(大きすぎても小さすぎてもだめ)。
ここではvertical spectrogram-resize(SR)-basedなaugmentationを利用することでコンテンツ抽出を安定させる(図2)。
ランダムなについて、のときはメルスペクトログラムを周波数方向について縮小し、縮小した部分をパディングする、のときは周波数方向について拡大し、もとのサイズからはみ出た部分をカットする。
lossについてはVITSからテキストアライメントを取り除くだけ。
予測
VITSによるVCではPosterior EncoderとFlowを用いてコンテンツ情報を生成していたがFreeVCではWavLMから生成する(図2(b)参照)。
実験・結果
データセットはVCTKとLibriTTS。
細かい設定は論文参照。
提案手法としては
- FreeVC-s:事前学習しない話者エンコーダを利用
- FreeVC:学習済み話者エンコーダを利用
- FreeVC(w/o SR):学習済み話者エンコーダを利用しつつSR-basedなaugmentationをしない
を比較。
実験結果は表1
全体的に提案手法が良い結果。
話者エンコーダが学習済みかどうかはあまり影響がなさそう。
SR-based augmentationの効果はそれなりにありそう。
WER、CER、F0-PCCの比較結果が表2。
提案手法が全体に優れている。とくにF0-PCCが高い。
所感
VITSベースのVCで、以前似たようなことをやってみたがうまくいかなかった。information bottleneckの効果が大きそうな気がする。
予測時にposterior encoderを利用しないというのは少々面白い構造。どちらも入力はもと音声で話者情報が入り込んでしまう可能性があり、どちらがより話者情報が少ないかというかんじか?せっかくならposterior encoderからのVCも比較してほしかった。