[論文メモ] ECAPA-TDNN for Multi-speaker Text-to-speech Synthesis
より強い話者エンコーダを用いることで、複数話者のText-to-speech(TTS)の精度を向上させた。
既存のTTSでは話者エンコーダとしてd-vectorやx-vectorといった話者分類タスクを事前に学習したモデルの中間特徴を用いるが、これらだと自然性や話者性があまりよくない(特にデータセットに無い話者)。
その理由は既存の話者エンコーダのキャパシティが低いこと。だからもっと強くすればいいよねというお気持ち。
手法
話者エンコーダとしてECAPA-TDNNを用いる。これはTDNNでVoxcelebデータセットのSOTA的モデル。
ECAPA-TDNNの特徴は
- Squeeze-and-Excitation (SE) blockの利用
- Res2Netのskip connection
- 複数階層の特徴を集約
Res2Netはこちら
arxiv.org
acoustic modelはFastSpeech2を利用。
vocoder modelはHifiGANを利用
学習についてはまずECAPA-TDNNの発話レベルの話者分類の学習を行う。
TTSの学習時はこの発話レベルの話者特徴をacoustic modelの形に合うように線形変換し、足し合わせる。
実験・結果
データセットはVCTKとLibriTTS。
サンプリングレートは22050Hzにし、80次元のメルスペクトログラムを利用した。
比較対象はx-vector。
x-vectorとECAPA-TDNNはVoxceleb1とVoxceleb2で事前学習。
結果は以下。
各話者エンコーダで抽出した10人の200の発話特徴量をt-SNEで可視化。
両エンコーダともに分離はできている。ただECAPA-TDNNのが連続的な分布で、これは同じ話者でも各発話の僅かな違いが反映されているとのこと。
既存研究で話者埋め込みは連続的な分布の方がより良いパフォーマンスが出るという報告もある。
なにより、話者分類とTTSは目的が違うのを忘れてはいけない。
所感
よくあるTTSの論文で話者エンコーダのアーキテクチャを変更したもの。
確かに、話者エンコーダの目的が話者分類ではなく音声にしたときに話者性を高めるものであることを忘れてはいけない。