[論文メモ] TGAVC: IMPROVING AUTOENCODER VOICE CONVERSION WITH TEXT-GUIDED AND ADVERSARIAL TRAINING
AutoencoderベースのVoice Conversionの改良
AutoVCはボトルネック部分の大きさを調整することで話者情報とコンテンツ情報を分離させるVoice Conversion(VC)手法で非常にシンプルで良いのだが、VAEのような制約がない分結果がそこまで良くない。
このAutoVCに少しガイドを追加することでより分離を促し性能を向上させる。
既存手法
問題設定は、non-parallelで複数話者の音声データからmany-to-manyのVCモデルの構築。
発話サンプルに対するラベルをとする。はテキスト情報、は話者情報
既存手法のAutoVCはコンテンツエンコーダ、スタイルエンコーダ、デコーダからなる(図1参照)。
学習時は元の発話サンプルからを使ってコンテンツ埋め込みを、同じ話者のことなる発話サンプルからを使ってスタイル埋め込みを取得し、これらを使ってを再構成する。
実際にVCとして利用するときはにターゲットの話者のサンプルを入れれば良い。
学習時のlossは再構成した音声をとして、
再構成loss:
コンテンツの再構成loss:
を最小化する。
AutoVCではコンテンツ埋め込みにスタイル情報が入らないようにAEのボトルネックにあたるの出力次元を慎重に調整している。
そして話者埋め込みを時間方向に複製して、コンテンツ埋め込みに合わせてデコードする。
VCにおいて、コンテンツとスタイルの分離が重要なのは事実だが、AutoVCの方法できれいに分離できているかは疑問。
手法
そこでテキスト情報を使ったガイドをすることでより分離を促したText Guided AutoVC(TGAVC)を提案(図2(a))。
TGAVCではAutoVCの3つのモジュールに加え、テキストエンコーダ、話者識別器を追加。
を使って、発話サンプルに対応するテキストラベルをテキスト埋め込みをとする。
を使って発話サンプルから得たコンテンツ埋め込みをとする。
はから予測した発話サンプルの話者がである確率。
このは話者情報を含んでおらず、コンテンツ埋め込みとして最も適している。
なので、学習時はをコンテンツ埋め込みとして再構成を行いつつをに近づける。
仕組み的にはTex-to-speech(TTS)と同じ。
テスト時のVCはAutoVCのときと同じ(図2(b))。
lossもほぼ同じ。
音声からのコンテンツ埋め込みに対しての話者分類のlossが追加され、コンテンツ埋め込みからの再構成は削除。
各モジュールの目的関数は以下
式(10)の通り、に関してははlossを下げるように学習するが、はこれを上げるように学習するDomain-Adversarialな学習を行う。
アーキテクチャは図3を参照
実験
データセットはAISHELL-3(中国語のアノテーション付き85時間218人の発話)。
比較対象はAutoVC、VQVC。
また、TGAVCをTTSとして学習・固定し、コンテンツエンコーダのみを学習したタイプをTGAVCsとする。
many-to-many
zero-shot
所感
発話からコンテンツ情報のみを抽出は難しいのでテキスト情報を使ってコンテンツ情報を抜き出すといった感じ。
テキスト情報があるなら別にAutoVCに沿う必要は無い気がする。
また、end2endの学習時にテキストエンコーダの出力からデコードしているがコンテンツエンコーダの出力をそれに似せてるとはいえドメインが異なるため品質に影響しそう。正直微妙であった。