こしあん
2023-01-12

論文まとめ:StyleTTS: A Style-Based Generative Model for Natural and Diverse Text-to-Speech Synthesis


906{icon} {views}

ざっくりいうと

  • 1対多の音声合成が可能なText-to-Speechモデル
  • StyleGANに触発され、スタイルや音韻、アラインメントをモデル内で分離し、デコーダーでAdaINで挿入
  • VITSよりも豊かなバリエーションを伴った合成結果を示し、単一話者モデルからZeroshot適応が可能

はじめに

  • TTSは本質的に1対多のマッピング問題
    • 同じテキストでも、文脈、感情、方言などにより、様々な話し方が可能
  • 変分推論などいくつものアプローチが提案されているが、異なる話者の話し方や感情のトーンを適切にモデル化し、取り入れることは依然として困難
  • 非自己回帰型並列 TTS モデルは、自己回帰型モデルと比較していくつかの利点がある。
    • 並列実装を十分に活用して高速な音声合成を可能
    • 長い発話やOOD(out-of-distribution)発話に対してより頑健
    • 音素の継続時間、ピッチ、エネルギーが音声から独立して予測可能
  • 現在のモデルの限界:自己回帰方式に対する並列TTSの改善と、表現力豊かな音声合成を可能にするスタイルの活用は、ほとんど別々に行われていること

StyleTTS

モデル構造

Input:音素列とReference Sound
Output:メルスペクトログラム(ボコーダーは別)

  • Text Encoder:入力が音素t、出力がテキストの特徴量h_text
  • Text Aligner:入力が音素t、出力がメルスペクトログラムと音素のアライメントd_align。モデルはTacorton 2のデコーダーの後ろ
  • Style Encoder:後のAdaINブロックに差し込むためのスタイルエンコーダー。Residual Blockからなる。
  • Pitch Extractor:ピッチF0について、直接Hzを抽出する。独自のピッチ抽出器をデコーダとともに学習させる
  • Decoder:出力はメルスペクトログラム。Styleの部分をAdaINで挿入する
  • Discriminator:VITSのDiscriminatorを使った
  • Duration Predictor:音素の長さの予測。AdaINのあるBidirectional LSTM

損失関数

2段階に損失関数を分けて訓練

  • 1段階の損失関数の構成
    • Mel reconstruction:メルスペクトログラムのL1ロス
    • TMA objects(s2s, mono):アラインメントをクロスアテンションで表現し、そのロスを作りたい
      • s2s:音素のクロスエントロピー(分類問題と同じ)
      • mono:アラインメントをDPで考え(VITSと思想は同じ)たときのロス
    • Adversarial Loss:メルスペクトログラムに対するGANのロス。VITSと同様
  • 2段階の損失関数の構成
    • Duration prediction:音素の長さ
    • Prosody prediction:この論文の新たな仕組みとして、メルスペクトログラムを時系列方向に伸縮するData Augmentationを行い、アライメント、ピッチ、エネルギーを抽出する(音速が変わってもアラインメント以外は変わらないから)
      • P_p:prosody predictorの出力
      • P_n:エネルギーの出力
    • Decoder reconstruction:AugmentationされたメルスペクトログラムのReconstruction

実験

単一話者からなるデータセットLJSpeechで訓練。VITSより良い結果となった

Zeroshotな話者適応生成も可能だった。Styleベクトルのt-SNEを見たところ、感情を分離 or 話者IDの分離をしつつ学習していた。

参照の音声を変えて合成したところ、Question・Suprisedといった感情を伴った音声合成が可能だった。参照音声の感情により、合成音声のメルスペクトログラムやピッチが変わっている。

  • Synthesizedで読ませたテキスト:How much variation is there? Let’s find it out.
  • Referenceで人間が読んだもの:
    • 左:Did England let nature take her course?
    • 右:It’s true! I am shocked! My dreams!

効いている損失関数について

  • w/ 0% hard:Transferable Monotonic Aligner (TMA)部分。勾配が伝わらず音素アラインメントの学習がうまくいかなかった
  • w/o L_s2s:音素のクロスエントロピーをなくす
  • w/o discriminator:GANベースをやめる

所感

  • StyleGANを知っている人間にとっては馴染み深いモデル構造だった
  • 特殊な学習方法や膨大な学習データを使っているわけでもないのに、単一話者の学習データから、別の人間のZeroshot適応ができるのが不思議で仕方ない
  • ボコーダーが別途必要で、PretrainedなHiFi-GANを使っているが、日本語に適用したときにこのボコーダーでいいのだろうか


Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内

技術書コーナー

北海道の駅巡りコーナー


Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です