[論文メモ] Towards Improved Zero-shot Voice Conversion with Conditional DSVAE

arxiv.org

既存のコンテンツと話者分離系のVoice Conversion(VC)の改良

既存コンテンツと話者分離系手法でバックボーンにdisentangled sequential variational autoencoder (DSVAE) を使う手法がある。
DSVAEは時不変な情報と時変な情報を洗剤空間で分離する手法。
しかし、DSVAEはコンテンツをランダムに初期化された分布に埋め込むため音声の構造がうまく表現できない。

DSVAEは各エンコーダで話者とコンテンツをエンコードし、それらをconcatして音声にする。

入力  Xと出力 \hat Xは両方メルスペクトログラムで音声にするときはVocoderを利用する(HiFi-GAN V1)。
はじめの層を共有したコンテンツエンコーダ  E_Cと話者エンコーダ E_Sは入力 Xからコンテンツ埋め込み z_cと話者埋め込みz_sの事後分布、それぞれ、 q_{\theta}(z_c|X) q_{\theta}(z_s|X)を予測する。
そして各分布から z_c z_sをサンプリングしデコーダ Dによってメルスペクトログラム \hat X = D(z_c, z_s)を得る。
DSVAEの目的関数は以下。

DSVAEではコンテンツの事前分布  p_{\theta}をランダムに初期化された分布を利用しているが、これがコンテンツ埋め込みの学習に適していないと指摘。
同じ発話の z_cをt-SNEで可視化した結果が図2。(a)がDSVAEが学習したコンテンツ埋め込み、(c)がメルスペクトログラムそのまま。DSVAEの埋め込みはランダムな分布になっている。

ちょっとよくわからないが、同じ発話の特徴は近くにあってほしいということ?でもコンテンツならそうならなくない?何か勘違いしてるかも?

手法

事前分布を調整したconditional DSVAE(C-DSVAE)を提案。
 p_{\theta}(z_c) p_{\theta}(z_c|Y(X))モデリングすることで音声構造を保持させる。ここでは Y(X)をコンテンツバイアスと呼ぶ。

コンテンツバイアスとしていくつか実験。

1) Align
Kaldi toolkitによる42音素を利用

2) BEST-RQ
VQ-VAEによる量子化ベクトルを利用

3) Mel
メルスペクトログラムにkmeansを適用し、クラスタセンターをラベルとして利用

4) WavLM
事前に学習したWavLMを利用(HuBERT系?)

実験・結果

データセットはVCTKコーパス
各種法によるコンテンツ埋め込みを可視化したのが図2。
各種法によるコンテンツ埋め込みを利用して音素分類をした結果が表2。

図2で可視化した結果、よく分離されているものほど音素分類の結果も良い。

VCの結果

所感

確かに、事前分布の選択は大事だよねという気持ち。
音素ラベルのあるデータセットを使って、音素ラベルを事前分布にした実験もしてほしかった。
図2のお気持ちがちょっとわかっていないので何か勘違い、もしくは知識不足かもしれない。
WavLMの結果が良いがWavLMをよく知らないので勉強しておく。