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

>100 Views

January 05, 18

スライド概要

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

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP [DL Papers] “Parallel WaveNet: Fast High-Fidelity Speech Synthesis", Google Kei Akuzawa, Matsuo Lab M1 1 http://deeplearning.jp/

2.

Agenda 1. 書誌情報 2. アブストラクト 3. (DLを使った)⾳声合成の概要 4. Parallel WaveNet 1. 2. 3. 4. 5. イントロ WaveNet ParallelWaveNet Probability Density Distillation 実験 5. 感想 ØDLを使った⾳声合成の概要とWaveNetの位置付けについても話します ØIAFおよびParallelWaveNetについて、書かれていない部分を妄想で補っているので、 間違いがありましたらご容赦ください

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.

アブストラクト • "WaveNet"はSOTAな⾳声合成⼿法である • しかし、⾃⼰回帰⽣成モデルなので、⽣成が遅い • ⾳声データだと、1秒の⾳声を⽣成するために16000回サンプリングが必要 • 提案⼿法"Probability Density Distillation": • ParallelWavenet(順伝播型)の確率密度を、Wavenet(⾃⼰回帰型)の確率密度に近づける • ParallelWaveNetは、旧WaveNetからほぼ精度を落とさずにreal-timeの20倍(旧 WaveNetの1000倍)早い⽣成が可能になる

5.

⾳声合成の概要 • ⾳声合成とは? => テキスト系列から⾳声系列へのseq2seq • 伝統的な統計的⾳声合成では、機械学習モデルはテキストから⾳響特徴量の予測 のみを⾏う 機械学習モデル Vocoder テキスト + ⾔語特徴量 ⾳声波形 今⽇は寒いですね 機械学習モデル による予測 スペクトル ⾳響特徴量 MGC, F0, etc 再構成 逆フーリエ変換

6.

⾳声合成の概要 ⾳響特徴量について • 抽出⼿順: • 短時間(TTSでは5ms程度)の⾳声波形をフーリエ変 換することでスペクトルを得る ⾳声波形 • 5msなど、分析の対象となる時間幅をフレームと呼ぶ • スペクトルから⾳響特徴量を抽出する • 役割: • MFCC: 声道、⿐腔の形状の情報を持ち、声質、⾳ 素の分類に有⽤ • F0(基本周波数): 声の⾼さ、イントネーション、ア クセントなど • etc. 5ms フーリエ変換&特徴量抽出 ⾳響特徴量

7.

⾳声合成の概要 DNN初期 • STATISTICAL PARAMETRIC SPEECH SYNTHESIS USING DEEP NEURAL NETWORKS (Zen+(Google), ICASSP2013 ) • ⾳響特徴量フレーム⼀つ⼀つを順伝播型NNで 予測 • ⼊⼒(⾔語特徴量)と出⼒(⾳響特徴量)の系列⻑ が揃わない • 「⼀つの⾳素が何フレーム続くか」とい う情報を使って、⾔語特徴量を引き延ば す必要があった • 「⼀つの⾳素が何フレーム続くか」を別 のモデルで予測する必要があった

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.

⾳声合成の概要 towards End-to-End [波形⽣成] • 伝統的な⾳声合成モデルでは、機械学習モデルは⾳響特徴量の予測までを担い、 「⾳響特徴量から⾳声波形の予測」は"Vocoder"と呼ばれるツールに任せていた • Vocoderの例: WORLD, STRAIGHT • "Vocoder"によって⾳声合成の質が左右されたくない => ⾳声波形を直接⽣成すれ ばいいのでは? • WaveNet(Aaron+ 2016) • SampleRNN (Mehri+ 2017) • ただし、WaveNet⾃体は前述のEncoder-Decoder構造を持たないので、DNN初期の ような⼿法で⼊⼒と出⼒の系列⻑を合わせる必要がある • WaveNetとEncoder-Decoder構造組み合わせたらよくね? => Tacotron2

10.

⾳声合成の概要 towards End-to-End [波形⽣成] • WaveNetによる⽣成のイメージ 外部モデル WaveNet テキスト 今⽇は寒いですね ⾳響特徴量 F0 ⾔語特徴量 ⾳素 継続⻑ ⾳声波形

11.

Agenda 1. 書誌情報 2. アブストラクト 3. (DLによる)⾳声合成の概要 4. Parallel WaveNet 1. 2. 3. 4. 5. イントロ WaveNet ParallelWaveNet Probability Density Distillation 実験 5. 感想

12.

Parallel WaveNet: イントロ • やること: 1. 2. 3. 4. 既存⼿法WaveNetは訓練が⾼速 提案⼿法ParallelWaveNetはサンプリングが⾼速 訓練済みWaveNetを教師として、ParallelWaveNetを蒸留により効率的に訓練する そうして得たParallelWaveNetより⾼速なサンプリングが可能となる 構造 訓練 サンプリング ⾃⼰回帰⽣成モデル 早い 遅い Parallel WaveNet ⾃⼰回帰⽣成モデル の双対表現(Inverse Autoregressive Flows) 遅い 早い WaveNet

13.

Parallel Wavenet: WaveNet • 詳細: https://www.slideshare.net/DeepLearningJP2016/dlwavenet-a-generative-modelfor-raw-audio • WaveNetは⾃⼰回帰⽣成モデル => ⾼次元のデータの同時分布を条件付き分布の積に変形 𝑝 𝑥# , … , 𝑥& = ∏&*+# 𝑝 𝑥* 𝑥,* , ; 𝜽 , 𝑥* : 時刻tでの⾳声波形の値, 𝜃: パラメータ

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.

Parallel Wavenet: Parallel WaveNet • Parallel WaveNetの前に、前提知識として以下2つを話します • Normalizing Flows: • 変分推論において、真の事後分布を近似するための、柔軟な事後分布を記述する⼿法 • Inverse Autoregressive Flows (IAF) • Normalizing Flowsの⼀種 • Parallel WaveNetはIAFを使⽤

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𝒙 |(⾏列式)の計算量は普通𝑂(𝑛V ) K𝒛 => 効率的でない K𝒙 |の計算が効率的になるような𝑓を設計する必要がある K𝒛 => IAFへ

17.

Parallel Wavenet: Parallel WaveNet [IAF] • Inverse Autoregressive Flows(Kingma+, 2017): • 𝒙 = 𝑓(𝒛)を以下のように設計する 𝑥* = 𝑧* X 𝑠 𝒛,* , 𝜽 + 𝜇 𝒛,* , 𝜽 , ただし𝒙 = 𝑥# , … , 𝑥& , 𝒛 = [𝑧# , … , 𝑧\ ] • このとき, K^_ K`a 𝑧* X = • よって log Kb 𝒛cd ,𝜽 K`a , 𝑖𝑓 𝑖 > 𝑗 𝑠 𝒛,* , 𝜽 , 0, K𝒙 K𝒛 𝑖𝑓 𝑖 = 𝑗 𝑖𝑓 𝑖 < 𝑗 は下三⾓⾏列となり、効率的に計算できる K𝒙 K𝒛 = ∑&*+# log K^d K`d = ∑&*+# log 𝑠 𝒛,* , 𝜽

18.

Parallel Wavenet: Parallel WaveNet [Normalizing Flows + VAE] • Normalizing Flows の使⽤例: VAE • 通常VAEでは、事後分布を 𝑞l 𝒛𝟎 𝒙 ~ 𝑁(𝜇 𝒙 , 𝜎 𝒙 ) と仮定する • これにNormalizin Flowsによる変換をK回ほどこすと、柔軟な分布𝑞O が得られる • 𝐳𝐊 = 𝑓O ∘ ⋯ ∘ 𝑓R ∘ 𝑓# ∘ (𝒛𝟎 ) • log𝑞O 𝒛𝑲 𝒙 = log𝑞l 𝒛𝟎 𝒙 − ∑O 9 log | K𝒛𝒌 | K𝒛𝒌q𝟏 • 事後分布𝑞が柔軟であるほど, 変分下限が最⼤化できる!! • 𝐿 𝒙; 𝜽 = log𝑝t 𝒙 − 𝐷Ov [𝑞 𝒛 𝒙 || 𝑝 𝒛 𝒙 ] • VAE+IAFはPixelCNNと尤度評価でいい勝負(すごい) inverse autoregressive flow

19.

Parallel Wavenet: Parallel WaveNet [Normalizing Flows + ⽣成モデル] • Normalizing Flowsは単体で⽣成モデルとして使うこともできる • 以下の設定を考える • 𝒛~𝐿𝑜𝑔𝑖𝑠𝑡𝑖𝑐(0, 𝑰) • 𝑥* = 𝑧* X 𝑠 𝒛,* , 𝜽 + 𝜇 𝒛,* , 𝜽 … ①, ただし𝒙 = 𝑥# , … , 𝑥& , 𝒛 = [𝑧# , … , 𝑧\ ] • このとき、𝑥* ~𝐿𝑜𝑔𝑖𝑠𝑡𝑖𝑐(𝜇 𝒛,* , 𝜽 , 𝑠 𝒛,* , 𝜽 ) • サンプリング: 早い • 𝒛~𝐿𝑜𝑔𝑖𝑠𝑡𝑖𝑐(0, 𝑰)から適当に𝒛をサンプリング • すべてのtについて、𝑥* = 𝑧* X 𝑠 𝒛,* , 𝜽 + 𝜇 𝒛,* , 𝜽 を並列計算できる • 訓練: 遅い • 𝒙が観測されたもとで、𝑥* の尤度を計算したい => 𝜇 𝒛,* , 𝜽 , 𝑠 𝒛,* , 𝜽 が欲しい =>𝒛,* が欲しい • ①を変形すると、𝑧* = ^d }~ 𝒛cd ,𝜽 b 𝒛cd ,𝜽 => これを𝑧# から逐次的に解けば𝒛,* が得られる • この計算は𝒛に関する⾃⼰回帰モデルなので、遅い

20.

Parallel Wavenet: Parallel WaveNet [構造] • WaveNetと同様のCausal + Dilated Convolution • ⼊⼒: 𝐳~𝕃(0, 𝑰) • 出⼒: 𝜇 𝒛,𝒕 , 𝜽 , 𝑠 𝒛,𝒕 , 𝜽 • 出⼒分布: 𝑥* ~𝕃 𝜇 𝒛,𝒕 , 𝜽 , 𝑠 𝒛,𝒕 , 𝜽 , 𝑤ℎ𝑒𝑟𝑒 𝑥* = 𝑧* ⋅ 𝑠 𝒛,𝒕 , 𝜽 + 𝜇 𝒛,𝒕 , 𝜽 𝜇 𝒛,𝒊 , 𝜽 , 𝑠 𝒛,𝒊 , 𝜽

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.

Parallel Wavenet: Probability Density Distillation 並列化可能 並列化可能

23.

Parallel Wavenet: Probability Density Distillation • 𝐻 𝑃• , 𝑃& = ∑&*+# 𝔼‘’ 𝒙cd 𝐻(𝑝• 𝑥* |𝒙,* , 𝑝& 𝑥* |𝒙,* )のイメージ • ⽣徒(Parallel WaveNent)から𝒙のサンプリングを⾏い、それを教師(WaveNet)への⼊⼒として 𝑝& 𝑥* |𝒙,* を(すべてのtについて並列に)計算

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.

Parallel Wavenet: 実験 • 教師WaveNetの設定: • ⾳声データは7680timesteps(約320ms)に揃える • 10 x 3 = 30層のDilated CNN • ⽣徒ParallelWaveNetの設定 • IAFを4回適⽤する • 10 + 10 + 10 + 30 = 60層

26.

Parallel Wavenet: 実験 • 伝統的⼿法よりMOSが向上 • 蒸留してもMOSは落ちない • ⾳声を16->24kHz, 8->16bit に変えたことによる効果もあると思われる

27.

Parallel Wavenet: 実験 • Multi-Speaker(⼀つのモデルで、複数⼈の話者の⾳声を再現)でもよい精度 • ただ、⼀⼈当たりの訓練データ量が多いので、パラメータ共有のメリットを⾔え ていない気が個⼈的にしている

28.

Parallel Wavenet: 実験 • 追加的なLossを使うことによりMOSが向上 • KL(Probability Density Distillation)単体だと⾃然な⾳声が⽣成されず、最低でも Power Lossと組み合わせる必要がある

29.

感想 • IAF⾃体は昔からある⼿法ですが、「⾃⼰回帰モデルの弱点を補うために、⾃⼰ 回帰モデルの双対表現であるIAFを使う」という発想はおそらくこの論⽂が初出 で、かっこいいです • KL単体の最⼩化ではうまくいかず、いろいなLossを追加したりしていて実験が⼤ 変そう

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 Interspeech, 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-tospeech. 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.