[論文メモ] CYFI-TTS: CYCLIC NORMALIZING FLOW WITH FINE-GRAINED REPRESENTATION FOR END-TO-END TEXT-TO-SPEECH
ICASSP2023
https://ieeexplore.ieee.org/document/10095323
VITSの改良
VITSはE2EなTTS(VCもできるけど)モデルでテキストから複数話者の発話を生成できるが、テキストが同じでも発音は人によって異なるためここに情報のギャップが発生する。それをなんとかしたいというお気持ち。
手法
テキストと音声のギャップを解決するためにcyclic normalizing flow(CNF)とtemporal multiresolution upsampler(TMRU)を使ったCyFi-TTSを提案。
CyFi-TTSのCyはcycleから、FiはTMRUがfine-grained representationsを取得するもので、そのfineから(なんでじゃ)。
全体像は図1参照
TMRU
TMRUはprior(テキスト)からより細かい特徴を得るためのモジュール。これによって音声とのギャップを埋める。
TMRUとCyFI-TTSのアーキテクチャは図2参照。
アライメントを、prior encoderの出力をとする。はテキスト(音素)長、は音声の長さ、は特徴量の次元。
アライメントをガウシアンで平滑化しにし、それをtex: \boldsymbol{z}_{c}]に適用することでを得る。
このままだと音声長が合わないのでアップサンプリングを含むブロックを回適用することで徐々に大きくし特徴量間のギャップを減らす。
各ブロックはアップサンプリングとカーネルサイズの異なるconv、そしてsnake1dを持つ。
snake1dはBigVGANで提案されたモジュールで以下のsnake functionを使った1dのconv。
は学習可能なパラメータ。
Cyclic Normalizing Flow
Cyclic Normalizing Flow(CNF)は学習のlossの1つ。
VITSは発話からのフレームレベル特徴からフレームレベルの発話を生成する学習時のメインフロー(図2(a)の左側)と実行時に利用するテキストから特徴を生成するフロー(図2(a)のTRMUを除く右側)の2つからなる。
学習時、normalizing flow(NF)により情報を落としたとを近づけるためにKLダイバージェンスを利用する。
]
実行時はNFのreverse flowでをにしてHifiGAN部分に入力しTTSを実現する。
しかし、NFはは学習しているが、は学習していない(結果的にできるが)。
そこでテキストからの特徴についてNFを通したcycle consistencyを導入する。
をNFにreverse flowしたを再度NFで得られたが元のに一致するようにするKLダイバージェンス。
NFをとして
]
これがCNF。
ただよくわからないのがはNFなので、とは一致するのでは?ということ。
ちょっと意味がわからない。
他のlossはVITSと同じで、最終的なlossは以下
はdurationの、はGANの、は再構成、はfeature-matchingのそれぞれloss。は係数。
実験・結果
学習用データセットはLJSpeechでサンプリングレートは22050Hz。
比較対象はVITS、PortaSpeech、BVAE-TTS。
学習データセットの内挿データセットについての結果が表1
CERやWERはGT等に劣るが、MOSはGT相当。他手法よりはどの指標も良い結果。
外挿データセットについての結果が表2。
他手法よりはどの指標も良い結果。
VITSとのCMOS評価
スペクトラムの可視化結果が以下の図4。
VITSに比べ高周波の構造がきれいに見える。低周波はあまり変わらないように見える。
ablation studyとしてTRMUとCNFの効果を確認。
これを見る限りどちらも性能に貢献している。
所感
TRMUはそれなりに理解できる。テキストからの特徴をVITSのようにただ並べるとテキストの接続部分や終端のフィードアウト等が上手く表現できなそう。TRMUほどでは無いが平滑化だけでも効果がありそう。
CNFは正直意味がわからない。NFなのに行って帰って来くると値が異なるとはこれ如何に。Githubでも質問が飛んでいる(2023/6/9)。
github.com
Dropoutの可能性を聞いている。確かに可能性はありそう。
ablation studyでもCNFの効果が示されているのでなにかはありそう。
また少し似た手法としてNaturalSpeechがあり(2じゃないほう)、これについて触れてはいるが比較に入れてないのが少々気になる(ソースコードは公開されてる)。