[論文メモ] Speech Representation Disentanglement with Adversarial Mutual Information Learning for One-shot Voice Conversion

arxiv.org

INTERSPEECH 2022

間違っているかもしれないので注意。

ピッチやコンテンツなどを相互情報量を最小化することによって分離させOne-shot Voice Conversionの精度を向上させる。

Voice Conversion(VC)の精度向上のためには発話に含まれるピッチやコンテンツなどといった情報をきれいに分離するのが一番効果的で、そのために相互情報量ベースの分離手法を提案。

手法

リズム、ピッチ、コンテンツ、話者の4つに分離するために4つのエンコーダを用意しそれぞれの出力に制約を設ける。
各エンコーダはリズムエンコーダ E_r、ピッチエンコーダ E_p、コンテンツエンコーダ E_c、話者エンコーダ E_t

ピッチ以外各特徴はメルスペクトログラム \boldsymbol{S}をエンコーダに入力して得られる。
ピッチ特徴は正規化したピッチ \boldsymbol{P}によって得られる。

 \boldsymbol{Z}_Xが各特徴で RR(\cdot)はランダムリサンプリング。

メインのデコーダ D_sは上記4つの特徴を入力としてメルスペクトログラムを生成する。

 D_pはピッチデコーダで学習時のみ利用する。

また各エンコーダの出力した特徴に役割をもたせるために2つの話者分類のモジュール C_1, C_2を追加する。

デコーダと分類モジュールのアーキテクチャは図2参照。


メインのlossはメルスペクトログラムの再構成とピッチの再構成。

各特徴に関しては以下

 E_tについて

話者エンコーダ E_tには話者についての情報のみがエンコードされて欲しいのでクラス分類を学習する。

 \boldsymbol{\theta}_{e_{c_1}} E_tのパラメータ、 \boldsymbol{\theta}_{c_1}はクラス分類モジュールのパラメータ、 \mathbb{I}(\cdot)はカッコ内がTrueのとき1になる2値関数、 p'_kはクラス確率。

 E_r, E_p, E_c について

これらがエンコードした特徴に話者情報が含まれてほしくないので C_2を使ったクラス分類のlossを追加。

 \boldsymbol{\theta}_{c_2}は各エンコーダのパラメータ。
 C_2にはGradient Reversal Layerがあることに注意(勾配が反転する)。


相互情報量の最小化も行う。既存手法のvCLUBという方法の相互情報量を用いる
arxiv.org

 q_{\theta}(Y|X)は変分近似。
サンプル \boldsymbol{x}_i, \boldsymbol{y}_i \in \{ \boldsymbol{Z}_{r_i}, \boldsymbol{Z}_{p_i}, \boldsymbol{Z}_{c_i}について


この式(9)を最小化することで各特徴がお互いの情報をなるべく含まないようになる。
最終的なlossは以下


実験・結果

データセットはVCTKコーパスを分割して利用。




所感

SpeechSplit(AutoVCの著者たちの論文)に相互情報量によるlossを追加した+ピッチデコーダぐらいの印象。
Gradient Reversal Layerを使うなど少々強引な気もする。
ピッチやコンテンツをどうやってきれいに分離させるかの一つとしてはありか。