Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis

2018/1/5
Deep Learning JP:
http://deeplearning.jp/seminar-2/

  • Be the first to comment

[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis

  1. 1. 1 DEEP LEARNING JP [DL Papers] http://deeplearning.jp/ “Parallel WaveNet: Fast High-Fidelity Speech Synthesis", Google Kei Akuzawa, Matsuo Lab M1
  2. 2. Agenda 1. 書誌情報 2. アブストラクト 3. (DLを使った)⾳声合成の概要 4. Parallel WaveNet 1. イントロ 2. WaveNet 3. ParallelWaveNet 4. Probability Density Distillation 5. 実験 5. 感想 ØDLを使った⾳声合成の概要とWaveNetの位置付けについても話します ØIAFおよびParallelWaveNetについて、書かれていない部分を妄想で補っているので、 間違いがありましたらご容赦ください
  3. 3. 書誌情報 • タイトル: Parallel WaveNet: Fast High-Fidelity Speech Synthesis • 著者: Aaron van den Oord + (Google) • 投稿先: arxiv 2017/11 (https://arxiv.org/abs/1711.10433) • 選定理由 • ⾳声合成に興味があった • GoogleAssistantに使われている技術 • 「⾃⼰回帰NNを順伝播型NNに蒸留」が気になった
  4. 4. アブストラクト • "WaveNet"はSOTAな⾳声合成⼿法である • しかし、⾃⼰回帰⽣成モデルなので、⽣成が遅い • ⾳声データだと、1秒の⾳声を⽣成するために16000回サンプリングが必要 • 提案⼿法"Probability Density Distillation": • ParallelWavenet(順伝播型)の確率密度を、Wavenet(⾃⼰回帰型)の確率密度に近づける • ParallelWaveNetは、旧WaveNetからほぼ精度を落とさずにreal-timeの20倍(旧 WaveNetの1000倍)早い⽣成が可能になる
  5. 5. ⾳声合成の概要 • ⾳声合成とは? => テキスト系列から⾳声系列へのseq2seq • 伝統的な統計的⾳声合成では、機械学習モデルはテキストから⾳響特徴量の予測 のみを⾏う 逆フーリエ変換スペクトル ⾳声波形 今⽇は寒いですね テキスト + ⾔語特徴量 機械学習モデル による予測 ⾳響特徴量 MGC, F0, etc 再構成 機械学習モデル Vocoder
  6. 6. ⾳声合成の概要 ⾳響特徴量について • 抽出⼿順: • 短時間(TTSでは5ms程度)の⾳声波形をフーリエ変 換することでスペクトルを得る • 5msなど、分析の対象となる時間幅をフレームと呼ぶ • スペクトルから⾳響特徴量を抽出する • 役割: • MFCC: 声道、⿐腔の形状の情報を持ち、声質、⾳ 素の分類に有⽤ • F0(基本周波数): 声の⾼さ、イントネーション、ア クセントなど • etc. フーリエ変換&特徴量抽出 ⾳響特徴量 ⾳声波形 5ms
  7. 7. ⾳声合成の概要 DNN初期 • STATISTICAL PARAMETRIC SPEECH SYNTHESIS USING DEEP NEURAL NETWORKS (Zen+(Google), ICASSP2013 ) • ⾳響特徴量フレーム⼀つ⼀つを順伝播型NNで 予測 • ⼊⼒(⾔語特徴量)と出⼒(⾳響特徴量)の系列⻑ が揃わない • 「⼀つの⾳素が何フレーム続くか」とい う情報を使って、⾔語特徴量を引き延ば す必要があった • 「⼀つの⾳素が何フレーム続くか」を別 のモデルで予測する必要があった
  8. 8. ⾳声合成の概要 towards End-to-End [Encoder-Decoder] • DNN初期の⼿法は、⼊⼒(⾔語特徴量)と出 ⼒(⾳響特徴量)の系列⻑を合わせるために 頑張る必要があった • 最近の⼿法では、機械翻訳と同様の EncoderDecoder(with attention)構造によって、 ⼊⼒と出⼒の系列⻑が異なってもそのまま訓 練できるようになった • Char2Wav(Sotelo+ 2017) • Tacotron(Wang+ 2017) • VoiceLoop(Taigman+ 2017) • DeepVoice3(Ping+ 2017) • Tacotron2(Shen+ 2017) (Tacotron2)
  9. 9. ⾳声合成の概要 towards End-to-End [波形⽣成] • 伝統的な⾳声合成モデルでは、機械学習モデルは⾳響特徴量の予測までを担い、 「⾳響特徴量から⾳声波形の予測」は"Vocoder"と呼ばれるツールに任せていた • Vocoderの例: WORLD, STRAIGHT • "Vocoder"によって⾳声合成の質が左右されたくない => ⾳声波形を直接⽣成すれ ばいいのでは? • WaveNet(Aaron+ 2016) • SampleRNN (Mehri+ 2017) • ただし、WaveNet⾃体は前述のEncoder-Decoder構造を持たないので、DNN初期の ような⼿法で⼊⼒と出⼒の系列⻑を合わせる必要がある • WaveNetとEncoder-Decoder構造組み合わせたらよくね? => Tacotron2
  10. 10. ⾳声合成の概要 towards End-to-End [波形⽣成] • WaveNetによる⽣成のイメージ ⾳声波形 今⽇は寒いですね テキスト ⾳響特徴量 F0 外部モデル WaveNet ⾔語特徴量 ⾳素 継続⻑
  11. 11. Agenda 1. 書誌情報 2. アブストラクト 3. (DLによる)⾳声合成の概要 4. Parallel WaveNet 1. イントロ 2. WaveNet 3. ParallelWaveNet 4. Probability Density Distillation 5. 実験 5. 感想
  12. 12. Parallel WaveNet: イントロ • やること: 1. 既存⼿法WaveNetは訓練が⾼速 2. 提案⼿法ParallelWaveNetはサンプリングが⾼速 3. 訓練済みWaveNetを教師として、ParallelWaveNetを蒸留により効率的に訓練する 4. そうして得たParallelWaveNetより⾼速なサンプリングが可能となる 構造 訓練 サンプリング WaveNet ⾃⼰回帰⽣成モデル 早い 遅い Parallel WaveNet ⾃⼰回帰⽣成モデル の双対表現(Inverse Autoregressive Flows) 遅い 早い
  13. 13. Parallel Wavenet: WaveNet • 詳細: https://www.slideshare.net/DeepLearningJP2016/dlwavenet-a-generative-model- for-raw-audio • WaveNetは⾃⼰回帰⽣成モデル => ⾼次元のデータの同時分布を条件付き分布の積に変形 𝑝 𝑥#, … , 𝑥& = ∏ 𝑝& *+# 𝑥* 𝑥,*, ; 𝜽 , 𝑥*: 時刻tでの⾳声波形の値, 𝜃: パラメータ
  14. 14. Parallel Wavenet: WaveNet • 構造: • Causal Convolution: 未来の情報を⾒ない • Dilated Convolution: 遠くを⾒る • Gated Activation: • 学習可能な⾮線形活性化関数 • 𝒛 = tanh(𝑊8,9 ∗ 𝒙) ⨀ 𝜎(𝑊?,9 ∗ 𝒙) • Conditioning: • テキスト、話者などの追加情報(𝒉)で条件付け • 𝒛 = tanh(𝑊8,9 ∗ 𝒙 + 𝑉8,9 ∗ 𝒉) ⨀ 𝜎(𝑊?,9 ∗ 𝒙 + 𝑉8,9 ∗ 𝒉) • オリジナルのWaveNetと、この論⽂での教師WaveNetの変更点: ⾼解像度化 • ⾳声のビット深度を8-bitから16-bitへ(65536クラス) Øモデルの出⼒𝑝 𝑥* 𝑥,*, ; 𝜽 を、多項分布からdiscretized mixture of loistics distributionへ • ⾳声を16kHzから24kHzへ(サンプリングレートを3/2倍) Ødilated convolutionのfilter sizeを2から3へ
  15. 15. Parallel Wavenet: Parallel WaveNet • Parallel WaveNetの前に、前提知識として以下2つを話します • Normalizing Flows: • 変分推論において、真の事後分布を近似するための、柔軟な事後分布を記述する⼿法 • Inverse Autoregressive Flows (IAF) • Normalizing Flowsの⼀種 • Parallel WaveNetはIAFを使⽤
  16. 16. Parallel Wavenet: Parallel WaveNet [Normalizing Flows] • Normalizing Flows (Rezende+, 2015): • 単純な多変量分布𝑝C(𝒛)を出発点とする(例えば、分散が単位⾏列のロジスティック分布) • 確率変数に対し以下の変換を⾏う: • 𝒙 = 𝑓(𝒛) , ただし𝑓は⾮線形でinvertibleな変換 • このときの確率密度関数: • log𝑝H 𝒙 = log𝑝C 𝒛 − log| K𝒙 K𝒛 | • よって、 𝑝C 𝒁 を介して複雑な多変量分布𝑝H 𝒙 からサンプリングを⾏なったり、尤度を計算 することができる • 変換を複数回⾏うと、さらに柔軟な分布を得ることが期待できる • 𝐳 𝐊 = 𝑓O ∘ ⋯ ∘ 𝑓R ∘ 𝑓# ∘ (𝒛 𝟎) • ただし、| K𝒙 K𝒛 |(⾏列式)の計算量は普通𝑂(𝑛V) => 効率的でない • | K𝒙 K𝒛 |の計算が効率的になるような𝑓を設計する必要がある => IAFへ
  17. 17. Parallel Wavenet: Parallel WaveNet [IAF] • Inverse Autoregressive Flows(Kingma+, 2017): • 𝒙 = 𝑓(𝒛)を以下のように設計する 𝑥* = 𝑧* X 𝑠 𝒛,*, 𝜽 + 𝜇 𝒛,*, 𝜽 , ただし𝒙 = 𝑥#, … , 𝑥& , 𝒛 = [𝑧#, … , 𝑧] • このとき, K^_ K`a = 𝑧* X Kb 𝒛cd,𝜽 K`a , 𝑖𝑓 𝑖 > 𝑗 𝑠 𝒛,*, 𝜽 , 𝑖𝑓 𝑖 = 𝑗 0, 𝑖𝑓 𝑖 < 𝑗 • よって K𝒙 K𝒛 は下三⾓⾏列となり、効率的に計算できる log K𝒙 K𝒛 = ∑ log K^d K`d & *+# = ∑ log& *+# 𝑠 𝒛,*, 𝜽
  18. 18. Parallel Wavenet: Parallel WaveNet [Normalizing Flows + VAE] • Normalizing Flows の使⽤例: VAE • 通常VAEでは、事後分布を 𝑞l 𝒛 𝟎 𝒙 ~ 𝑁(𝜇 𝒙 , 𝜎 𝒙 ) と仮定する • これにNormalizin Flowsによる変換をK回ほどこすと、柔軟な分布𝑞Oが得られる • 𝐳 𝐊 = 𝑓O ∘ ⋯ ∘ 𝑓R ∘ 𝑓# ∘ (𝒛 𝟎) • log𝑞O 𝒛 𝑲 𝒙 = log𝑞l 𝒛 𝟎 𝒙 − ∑ logO 9 | K𝒛 𝒌 K𝒛 𝒌q𝟏 | • 事後分布𝑞が柔軟であるほど, 変分下限が最⼤化できる!! • 𝐿 𝒙; 𝜽 = log𝑝t 𝒙 − 𝐷Ov[𝑞 𝒛 𝒙 || 𝑝 𝒛 𝒙 ] • VAE+IAFはPixelCNNと尤度評価でいい勝負(すごい) inverse autoregressive flow
  19. 19. Parallel Wavenet: Parallel WaveNet [Normalizing Flows + ⽣成モデル] • Normalizing Flowsは単体で⽣成モデルとして使うこともできる • 以下の設定を考える • 𝒛~𝐿𝑜𝑔𝑖𝑠𝑡𝑖𝑐(0, 𝑰) • 𝑥* = 𝑧* X 𝑠 𝒛,*, 𝜽 + 𝜇 𝒛,*, 𝜽 … ①, ただし𝒙 = 𝑥#, … , 𝑥& , 𝒛 = [𝑧#, … , 𝑧] • このとき、𝑥*~𝐿𝑜𝑔𝑖𝑠𝑡𝑖𝑐(𝜇 𝒛,*, 𝜽 , 𝑠 𝒛,*, 𝜽 ) • サンプリング: 早い • 𝒛~𝐿𝑜𝑔𝑖𝑠𝑡𝑖𝑐(0, 𝑰)から適当に𝒛をサンプリング • すべてのtについて、𝑥* = 𝑧* X 𝑠 𝒛,*, 𝜽 + 𝜇 𝒛,*, 𝜽 を並列計算できる • 訓練: 遅い • 𝒙が観測されたもとで、𝑥*の尤度を計算したい => 𝜇 𝒛,*, 𝜽 , 𝑠 𝒛,*, 𝜽 が欲しい =>𝒛,*が欲しい • ①を変形すると、𝑧* = ^d}~ 𝒛cd,𝜽 b 𝒛cd,𝜽 => これを𝑧#から逐次的に解けば𝒛,*が得られる • この計算は𝒛に関する⾃⼰回帰モデルなので、遅い
  20. 20. Parallel Wavenet: Parallel WaveNet [構造] • WaveNetと同様のCausal + Dilated Convolution • ⼊⼒: 𝐳~𝕃(0, 𝑰) • 出⼒: 𝜇 𝒛,𝒕, 𝜽 , 𝑠 𝒛,𝒕, 𝜽 • 出⼒分布: 𝑥*~𝕃 𝜇 𝒛,𝒕, 𝜽 , 𝑠 𝒛,𝒕, 𝜽 , 𝑤ℎ𝑒𝑟𝑒 𝑥* = 𝑧* ⋅ 𝑠 𝒛,𝒕, 𝜽 + 𝜇 𝒛,𝒕, 𝜽 𝜇 𝒛,𝒊, 𝜽 , 𝑠 𝒛,𝒊, 𝜽
  21. 21. Parallel Wavenet: Probability Density Distillation • Parallel WaveNetで直接尤度最⼤化をすると遅い(前述) • そこで、提案⼿法Probability Density Distillationは、以下のKL距離を最⼩化する 𝐷Ov(𝑝b 𝒙 | 𝑝& 𝒙 , 𝑤ℎ𝑒𝑟𝑒 𝑝b 𝒙 = Parallel WaveNet, 𝑝& 𝒙 = WaveNet • IAFの使い⽅をVAEとParallelWaveNetで⽐較: • VAEでは未知の分布𝑝 𝒛 𝒙 とのKL距離を暗黙的に最⼩化 • ここでは既知の分布𝑝& 𝒙 とのKL距離を直接最⼩化
  22. 22. Parallel Wavenet: Probability Density Distillation 並列化可能 並列化可能
  23. 23. Parallel Wavenet: Probability Density Distillation • 𝐻 𝑃•, 𝑃& = ∑ 𝔼‘’ 𝒙cd & *+# 𝐻(𝑝• 𝑥*|𝒙,* , 𝑝& 𝑥*|𝒙,* )のイメージ • ⽣徒(Parallel WaveNent)から𝒙のサンプリングを⾏い、それを教師(WaveNet)への⼊⼒として 𝑝& 𝑥*|𝒙,* を(すべてのtについて並列に)計算
  24. 24. Parallel Wavenet: Probability Density Distillation [追加的なloss] • Probability Density Distillation にいくつかのLossを追加 • Power Loss: 𝜙 𝑔 𝒛, 𝒄 − 𝜙 𝒚 R , 𝑤ℎ𝑒𝑟𝑒 𝜙 𝒙 = 𝑺𝑻𝑭𝑻 𝒙 R • 合成⾳声のpowerを全ての周波数帯で本物に近づける • Perceptual Loss: ⾳素識別器に真の⾳声、合成⾳声を与えてFeature Matching • Contrastive Loss: −𝛾𝐷Ov(𝑝b 𝒄𝒊 ||𝑝& 𝒄𝒋›𝒊 ) • 話者、テキストによる条件付け𝒄𝒊が異なる時のKL距離を最⼤化する
  25. 25. Parallel Wavenet: 実験 • 教師WaveNetの設定: • ⾳声データは7680timesteps(約320ms)に揃える • 10 x 3 = 30層のDilated CNN • ⽣徒ParallelWaveNetの設定 • IAFを4回適⽤する • 10 + 10 + 10 + 30 = 60層
  26. 26. Parallel Wavenet: 実験 • 伝統的⼿法よりMOSが向上 • 蒸留してもMOSは落ちない • ⾳声を16->24kHz, 8->16bit に変えたことによる効果もあると思われる
  27. 27. Parallel Wavenet: 実験 • Multi-Speaker(⼀つのモデルで、複数⼈の話者の⾳声を再現)でもよい精度 • ただ、⼀⼈当たりの訓練データ量が多いので、パラメータ共有のメリットを⾔え ていない気が個⼈的にしている
  28. 28. Parallel Wavenet: 実験 • 追加的なLossを使うことによりMOSが向上 • KL(Probability Density Distillation)単体だと⾃然な⾳声が⽣成されず、最低でも Power Lossと組み合わせる必要がある
  29. 29. 感想 • IAF⾃体は昔からある⼿法ですが、「⾃⼰回帰モデルの弱点を補うために、⾃⼰ 回帰モデルの双対表現であるIAFを使う」という発想はおそらくこの論⽂が初出 で、かっこいいです • KL単体の最⼩化ではうまくいかず、いろいなLossを追加したりしていて実験が⼤ 変そう
  30. 30. References • Zen, Heiga, Senior, Andrew, and Schuster, Mike. Statistical parametric speech synthesis using deep neural networks. In Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), pp. 7962–7966, 2013. • Jose Sotelo, Soroush Mehri, Kundan Kumar, Joao Felipe Santos, Kyle Kastner, Aaron Courville, and Yoshua Bengio. Char2wav: End-to-end speech synthesis. In ICLR workshop, 2017. • Y. Wang, R. Skerry-Ryan, D. Stanton, Y. Wu, R. J. Weiss, N. Jaitly, Z. Yang, Y. Xiao, Z. Chen, S. Bengio, Q. Le, Y. Agiomyrgiannakis, R. Clark, and R. A. Saurous, “Tacotron: Towards end-to-end speech synthesis,” in Proceedings of Inter- speech, Aug. 2017. • Taigman, Yaniv; Wolf, Lior; Polyak, Adam; Nachmani, Eliya, VoiceLoop: Voice Fitting and Synthesis via a Phonological Loop. arXiv preprint arXiv:1707.06588, 2017 • W.Ping,K.Peng,A.Gibiansky,S.O ̈.Arik,A.Kannan, S. Narang, J. Raiman, and J. Miller, Deep voice 3: 2000- speaker neural text-to- speech. arXiv preprint arXiv:1710.07654, 2017. • Jonathan Shen, Ruoming Pang, Ron J. Weiss, Mike Schuster, Navdeep Jaitly, Zongheng Yang, Zhifeng Chen, Yu Zhang, Yuxuan Wang, RJ Skerry-Ryan, Rif A. Saurous, Yannis Agiomyrgiannakis, Yonghui Wu, Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions. arXiv preprint arXiv:1712.05884, 2017. • Aaron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew Senior, and Koray Kavukcuoglu. Wavenet: A generative model for raw audio. arXiv preprint arXiv:1609.03499, 2016. • Soroush Mehri, Kundan Kumar, Ishaan Gulrajani, Rithesh Kumar, Shubham Jain, Jose Sotelo, Aaron Courville, and Yoshua Bengio. SampleRNN: An unconditional end-to-end neural audio generation model. arXiv preprint arXiv:1612.07837, 2016. • Danilo Jimenez Rezende and Shakir Mohamed. Variational inference with normalizing flows. arXiv preprint arXiv:1505.05770, 2015. • Diederik P Kingma, Tim Salimans, and Max Welling. Improving variational inference with inverse autoregressive flow. arXiv preprint arXiv:1606.04934, 2016.

×