[dl輪読会]parallel wavenet: fast high-fidelity speech synthesis
Post on 21-Jan-2018
1.007 Views
Preview:
TRANSCRIPT
1
DEEP LEARNING JP[DL Papers]
http://deeplearning.jp/
“Parallel WaveNet: Fast High-Fidelity Speech Synthesis",Google
KeiAkuzawa,MatsuoLabM1
Agenda
1. 書誌情報2. アブストラクト3. (DLを使った)⾳声合成の概要4. ParallelWaveNet
1. イントロ2. WaveNet3. ParallelWaveNet4. ProbabilityDensityDistillation5. 実験
5. 感想
ØDLを使った⾳声合成の概要とWaveNetの位置付けについても話しますØIAFおよびParallelWaveNetについて、書かれていない部分を妄想で補っているので、
間違いがありましたらご容赦ください
書誌情報• タイトル:ParallelWaveNet:FastHigh-FidelitySpeechSynthesis• 著者:AaronvandenOord+(Google)• 投稿先:arxiv 2017/11 (https://arxiv.org/abs/1711.10433)
• 選定理由• ⾳声合成に興味があった• GoogleAssistantに使われている技術• 「⾃⼰回帰NNを順伝播型NNに蒸留」が気になった
アブストラクト• "WaveNet"はSOTAな⾳声合成⼿法である
• しかし、⾃⼰回帰⽣成モデルなので、⽣成が遅い• ⾳声データだと、1秒の⾳声を⽣成するために16000回サンプリングが必要
• 提案⼿法"ProbabilityDensityDistillation":• ParallelWavenet(順伝播型)の確率密度を、Wavenet(⾃⼰回帰型)の確率密度に近づける
• ParallelWaveNetは、旧WaveNetからほぼ精度を落とさずにreal-timeの20倍(旧WaveNetの1000倍)早い⽣成が可能になる
⾳声合成の概要• ⾳声合成とは? => テキスト系列から⾳声系列へのseq2seq• 伝統的な統計的⾳声合成では、機械学習モデルはテキストから⾳響特徴量の予測
のみを⾏う
逆フーリエ変換スペクトル
⾳声波形今⽇は寒いですね
テキスト + ⾔語特徴量
機械学習モデルによる予測
⾳響特徴量
MGC, F0, etc再構成
機械学習モデル Vocoder
⾳声合成の概要 ⾳響特徴量について• 抽出⼿順:
• 短時間(TTSでは5ms程度)の⾳声波形をフーリエ変換することでスペクトルを得る• 5msなど、分析の対象となる時間幅をフレームと呼ぶ
• スペクトルから⾳響特徴量を抽出する
• 役割:• MFCC:声道、⿐腔の形状の情報を持ち、声質、⾳
素の分類に有⽤• F0(基本周波数):声の⾼さ、イントネーション、ア
クセントなど• etc.
フーリエ変換&特徴量抽出⾳響特徴量
⾳声波形
5ms
⾳声合成の概要 DNN初期• STATISTICALPARAMETRICSPEECHSYNTHESISUSINGDEEPNEURALNETWORKS(Zen+(Google),ICASSP2013)
• ⾳響特徴量フレーム⼀つ⼀つを順伝播型NNで予測
• ⼊⼒(⾔語特徴量)と出⼒(⾳響特徴量)の系列⻑が揃わない• 「⼀つの⾳素が何フレーム続くか」とい
う情報を使って、⾔語特徴量を引き延ばす必要があった
• 「⼀つの⾳素が何フレーム続くか」を別のモデルで予測する必要があった
⾳声合成の概要 towardsEnd-to-End[Encoder-Decoder]• DNN初期の⼿法は、⼊⼒(⾔語特徴量)と出
⼒(⾳響特徴量)の系列⻑を合わせるために頑張る必要があった
• 最近の⼿法では、機械翻訳と同様のEncoderDecoder(withattention)構造によって、⼊⼒と出⼒の系列⻑が異なってもそのまま訓練できるようになった• Char2Wav(Sotelo+2017)• Tacotron(Wang+2017)• VoiceLoop(Taigman+2017)• DeepVoice3(Ping+2017)• Tacotron2(Shen+2017)
(Tacotron2)
⾳声合成の概要 towardsEnd-to-End[波形⽣成]
• 伝統的な⾳声合成モデルでは、機械学習モデルは⾳響特徴量の予測までを担い、「⾳響特徴量から⾳声波形の予測」は"Vocoder"と呼ばれるツールに任せていた• Vocoderの例:WORLD,STRAIGHT
• "Vocoder"によって⾳声合成の質が左右されたくない =>⾳声波形を直接⽣成すればいいのでは?• WaveNet(Aaron+2016)• SampleRNN (Mehri+2017)
• ただし、WaveNet⾃体は前述のEncoder-Decoder構造を持たないので、DNN初期のような⼿法で⼊⼒と出⼒の系列⻑を合わせる必要がある• WaveNetとEncoder-Decoder構造組み合わせたらよくね? =>Tacotron2
⾳声合成の概要 towardsEnd-to-End[波形⽣成]
• WaveNetによる⽣成のイメージ
⾳声波形今⽇は寒いですね
テキスト
⾳響特徴量
F0
外部モデル WaveNet
⾔語特徴量
⾳素継続⻑
Agenda
1. 書誌情報2. アブストラクト3. (DLによる)⾳声合成の概要4. ParallelWaveNet
1. イントロ2. WaveNet3. ParallelWaveNet4. ProbabilityDensityDistillation5. 実験
5. 感想
ParallelWaveNet:イントロ• やること:
1. 既存⼿法WaveNetは訓練が⾼速2. 提案⼿法ParallelWaveNetはサンプリングが⾼速3. 訓練済みWaveNetを教師として、ParallelWaveNetを蒸留により効率的に訓練する4. そうして得たParallelWaveNetより⾼速なサンプリングが可能となる
構造 訓練 サンプリングWaveNet ⾃⼰回帰⽣成モデル 早い 遅い
Parallel WaveNet ⾃⼰回帰⽣成モデルの双対表現(InverseAutoregressive Flows)
遅い 早い
ParallelWavenet:WaveNet
• 詳細:https://www.slideshare.net/DeepLearningJP2016/dlwavenet-a-generative-model-for-raw-audio• WaveNetは⾃⼰回帰⽣成モデル=>⾼次元のデータの同時分布を条件付き分布の積に変形𝑝 𝑥#, … , 𝑥& = ∏ 𝑝&
*+# 𝑥* 𝑥,*, ; 𝜽 , 𝑥*:時刻tでの⾳声波形の値,𝜃:パラメータ
ParallelWavenet:WaveNet
• 構造:• CausalConvolution:未来の情報を⾒ない• DilatedConvolution:遠くを⾒る• GatedActivation:
• 学習可能な⾮線形活性化関数• 𝒛 = tanh(𝑊8,9 ∗ 𝒙)⨀𝜎(𝑊?,9 ∗ 𝒙)
• Conditioning:• テキスト、話者などの追加情報(𝒉)で条件付け• 𝒛 = tanh(𝑊8,9 ∗ 𝒙 + 𝑉8,9 ∗ 𝒉)⨀𝜎(𝑊?,9 ∗ 𝒙 + 𝑉8,9 ∗ 𝒉)
• オリジナルのWaveNetと、この論⽂での教師WaveNetの変更点:⾼解像度化• ⾳声のビット深度を8-bitから16-bitへ(65536クラス)
Øモデルの出⼒𝑝 𝑥* 𝑥,*, ; 𝜽 を、多項分布からdiscretizedmixtureofloistics distributionへ
• ⾳声を16kHzから24kHzへ(サンプリングレートを3/2倍)Ødilatedconvolutionのfiltersizeを2から3へ
ParallelWavenet:ParallelWaveNet
• ParallelWaveNetの前に、前提知識として以下2つを話します• NormalizingFlows:
• 変分推論において、真の事後分布を近似するための、柔軟な事後分布を記述する⼿法
• InverseAutoregressiveFlows(IAF)• NormalizingFlowsの⼀種
• ParallelWaveNetはIAFを使⽤
ParallelWavenet:ParallelWaveNet [NormalizingFlows]
• NormalizingFlows(Rezende+,2015):• 単純な多変量分布𝑝C(𝒛)を出発点とする(例えば、分散が単位⾏列のロジスティック分布)
• 確率変数に対し以下の変換を⾏う:• 𝒙 = 𝑓(𝒛) ,ただし𝑓は⾮線形でinvertibleな変換
• このときの確率密度関数:
• log𝑝H 𝒙 = log𝑝C 𝒛 − log| K𝒙K𝒛|
• よって、 𝑝C 𝒁 を介して複雑な多変量分布𝑝H 𝒙 からサンプリングを⾏なったり、尤度を計算することができる
• 変換を複数回⾏うと、さらに柔軟な分布を得ることが期待できる• 𝐳𝐊 = 𝑓O ∘ ⋯ ∘ 𝑓R ∘ 𝑓# ∘ (𝒛𝟎)
• ただし、| K𝒙K𝒛|(⾏列式)の計算量は普通𝑂(𝑛V) =>効率的でない
• | K𝒙K𝒛|の計算が効率的になるような𝑓を設計する必要がある =>IAFへ
ParallelWavenet:ParallelWaveNet [IAF]
• InverseAutoregressiveFlows(Kingma+,2017):
• 𝒙 = 𝑓(𝒛)を以下のように設計する𝑥* = 𝑧* X 𝑠 𝒛,*, 𝜽 + 𝜇 𝒛,*, 𝜽 ,ただし𝒙 = 𝑥#,… , 𝑥& , 𝒛 = [𝑧#, … , 𝑧\]
• このとき,
K^_K`a
=𝑧* X
Kb 𝒛cd,𝜽K`a
, 𝑖𝑓𝑖 > 𝑗
𝑠 𝒛,*, 𝜽 , 𝑖𝑓𝑖 = 𝑗0, 𝑖𝑓𝑖 < 𝑗
• よって K𝒙K𝒛
は下三⾓⾏列となり、効率的に計算できる
log K𝒙K𝒛
= ∑ log K^dK`d
&*+#
= ∑ log&*+# 𝑠 𝒛,*, 𝜽
ParallelWavenet:ParallelWaveNet [NormalizingFlows+VAE]
• NormalizingFlowsの使⽤例:VAE• 通常VAEでは、事後分布を 𝑞l 𝒛𝟎 𝒙 ~𝑁(𝜇 𝒙 , 𝜎 𝒙 )と仮定する
• これにNormalizin Flowsによる変換をK回ほどこすと、柔軟な分布𝑞Oが得られる• 𝐳𝐊 = 𝑓O ∘ ⋯ ∘ 𝑓R ∘ 𝑓# ∘ (𝒛𝟎)• log𝑞O 𝒛𝑲 𝒙 = log𝑞l 𝒛𝟎 𝒙 − ∑ logO
9 | K𝒛𝒌K𝒛𝒌q𝟏
|
• 事後分布𝑞が柔軟であるほど,変分下限が最⼤化できる!!• 𝐿 𝒙; 𝜽 = log𝑝t 𝒙 − 𝐷Ov[𝑞 𝒛 𝒙 ||𝑝 𝒛 𝒙 ]
• VAE+IAFはPixelCNNと尤度評価でいい勝負(すごい)
inverseautoregressiveflow
ParallelWavenet:ParallelWaveNet [NormalizingFlows+⽣成モデル]
• NormalizingFlowsは単体で⽣成モデルとして使うこともできる• 以下の設定を考える
• 𝒛~𝐿𝑜𝑔𝑖𝑠𝑡𝑖𝑐(0, 𝑰)• 𝑥* = 𝑧* X 𝑠 𝒛,*, 𝜽 + 𝜇 𝒛,*, 𝜽 …①,ただし𝒙 = 𝑥#, … , 𝑥& , 𝒛 = [𝑧#, … , 𝑧\]• このとき、𝑥*~𝐿𝑜𝑔𝑖𝑠𝑡𝑖𝑐(𝜇 𝒛,*, 𝜽 , 𝑠 𝒛,*, 𝜽 )
• サンプリング:早い• 𝒛~𝐿𝑜𝑔𝑖𝑠𝑡𝑖𝑐(0, 𝑰)から適当に𝒛をサンプリング• すべてのtについて、𝑥* = 𝑧* X 𝑠 𝒛,*, 𝜽 + 𝜇 𝒛,*, 𝜽 を並列計算できる
• 訓練:遅い• 𝒙が観測されたもとで、𝑥*の尤度を計算したい=>𝜇 𝒛,*, 𝜽 , 𝑠 𝒛,*, 𝜽 が欲しい=>𝒛,*が欲しい• ①を変形すると、𝑧* =
^d}~ 𝒛cd,𝜽b 𝒛cd,𝜽
=>これを𝑧#から逐次的に解けば𝒛,*が得られる
• この計算は𝒛に関する⾃⼰回帰モデルなので、遅い
ParallelWavenet:ParallelWaveNet [構造]
• WaveNetと同様のCausal+DilatedConvolution• ⼊⼒:𝐳~𝕃(0, 𝑰)• 出⼒:𝜇 𝒛,𝒕, 𝜽 , 𝑠 𝒛,𝒕, 𝜽• 出⼒分布:𝑥*~𝕃 𝜇 𝒛,𝒕, 𝜽 , 𝑠 𝒛,𝒕, 𝜽 , 𝑤ℎ𝑒𝑟𝑒𝑥* = 𝑧* ⋅ 𝑠 𝒛,𝒕, 𝜽 + 𝜇 𝒛,𝒕, 𝜽
𝜇 𝒛,𝒊, 𝜽 , 𝑠 𝒛,𝒊, 𝜽
ParallelWavenet:ProbabilityDensityDistillation
• ParallelWaveNetで直接尤度最⼤化をすると遅い(前述)
• そこで、提案⼿法ProbabilityDensityDistillationは、以下のKL距離を最⼩化する𝐷Ov(𝑝b 𝒙 | 𝑝& 𝒙 , 𝑤ℎ𝑒𝑟𝑒𝑝b 𝒙 = ParallelWaveNet, 𝑝& 𝒙 = WaveNet
• IAFの使い⽅をVAEとParallelWaveNetで⽐較:• VAEでは未知の分布𝑝 𝒛 𝒙 とのKL距離を暗黙的に最⼩化• ここでは既知の分布𝑝& 𝒙 とのKL距離を直接最⼩化
ParallelWavenet:ProbabilityDensityDistillation
並列化可能
並列化可能
ParallelWavenet:ProbabilityDensityDistillation
• 𝐻 𝑃�, 𝑃& = ∑ 𝔼�� 𝒙cd&*+# 𝐻(𝑝� 𝑥*|𝒙,* , 𝑝& 𝑥*|𝒙,* )のイメージ
• ⽣徒(ParallelWaveNent)から𝒙のサンプリングを⾏い、それを教師(WaveNet)への⼊⼒として𝑝& 𝑥*|𝒙,* を(すべてのtについて並列に)計算
ParallelWavenet:ProbabilityDensityDistillation[追加的なloss]
• ProbabilityDensityDistillationにいくつかのLossを追加
• PowerLoss: 𝜙 𝑔 𝒛, 𝒄 − 𝜙 𝒚 R,𝑤ℎ𝑒𝑟𝑒𝜙 𝒙 = 𝑺𝑻𝑭𝑻 𝒙 R
• 合成⾳声のpowerを全ての周波数帯で本物に近づける
• PerceptualLoss:⾳素識別器に真の⾳声、合成⾳声を与えてFeatureMatching
• ContrastiveLoss:−𝛾𝐷Ov(𝑝b 𝒄𝒊 ||𝑝& 𝒄𝒋�𝒊 )• 話者、テキストによる条件付け𝒄𝒊が異なる時のKL距離を最⼤化する
ParallelWavenet:実験• 教師WaveNetの設定:
• ⾳声データは7680timesteps(約320ms)に揃える• 10x3=30層のDilatedCNN
• ⽣徒ParallelWaveNetの設定• IAFを4回適⽤する• 10+10+10+30=60層
ParallelWavenet:実験• 伝統的⼿法よりMOSが向上• 蒸留してもMOSは落ちない• ⾳声を16->24kHz,8->16bitに変えたことによる効果もあると思われる
ParallelWavenet:実験• Multi-Speaker(⼀つのモデルで、複数⼈の話者の⾳声を再現)でもよい精度• ただ、⼀⼈当たりの訓練データ量が多いので、パラメータ共有のメリットを⾔え
ていない気が個⼈的にしている
ParallelWavenet:実験• 追加的なLossを使うことによりMOSが向上• KL(ProbabilityDensityDistillation)単体だと⾃然な⾳声が⽣成されず、最低でもPowerLossと組み合わせる必要がある
感想• IAF⾃体は昔からある⼿法ですが、「⾃⼰回帰モデルの弱点を補うために、⾃⼰
回帰モデルの双対表現であるIAFを使う」という発想はおそらくこの論⽂が初出で、かっこいいです
• KL単体の最⼩化ではうまくいかず、いろいなLossを追加したりしていて実験が⼤変そう
References• Zen,Heiga,Senior,Andrew,andSchuster,Mike.Statisticalparametricspeechsynthesisusingdeepneuralnetworks.In
ProceedingsoftheIEEEInternationalConferenceonAcoustics,Speech,andSignalProcessing(ICASSP),pp.7962–7966,2013.• JoseSotelo,SoroushMehri,KundanKumar,JoaoFelipeSantos,KyleKastner,AaronCourville,andYoshuaBengio.Char2wav:
End-to-endspeechsynthesis.InICLRworkshop,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,andR.A.Saurous,“Tacotron:Towardsend-to-endspeechsynthesis,”inProceedingsofInter-speech,Aug.2017.
• Taigman, Yaniv; Wolf, Lior; Polyak, Adam; Nachmani, Eliya,VoiceLoop:VoiceFittingandSynthesisviaaPhonologicalLoop.arXivpreprintarXiv:1707.06588,2017
• W.Ping,K.Peng,A.Gibiansky,S.O.Arik,A.Kannan,S.Narang,J.Raiman,andJ.Miller,Deepvoice3:2000-speakerneuraltext-to-speech.arXivpreprintarXiv:1710.07654,2017.
• JonathanShen, RuomingPang, RonJ.Weiss, MikeSchuster, NavdeepJaitly, ZonghengYang, ZhifengChen, YuZhang, YuxuanWang, RJSkerry-Ryan, RifA.Saurous, YannisAgiomyrgiannakis, YonghuiWu,NaturalTTSSynthesisbyConditioningWaveNetonMelSpectrogramPredictions.arXivpreprintarXiv:1712.05884,2017.
• AaronvandenOord,SanderDieleman,HeigaZen,KarenSimonyan,OriolVinyals,AlexGraves,NalKalchbrenner,AndrewSenior,andKorayKavukcuoglu.Wavenet:Agenerativemodelforrawaudio.arXivpreprintarXiv:1609.03499,2016.
• SoroushMehri,KundanKumar,IshaanGulrajani,RitheshKumar,ShubhamJain,JoseSotelo,AaronCourville,andYoshuaBengio.SampleRNN:Anunconditionalend-to-endneuralaudiogenerationmodel.arXivpreprintarXiv:1612.07837,2016.
• DaniloJimenezRezendeandShakirMohamed.Variationalinferencewithnormalizingflows.arXivpreprintarXiv:1505.05770,2015.
• DiederikPKingma,TimSalimans,andMaxWelling.Improvingvariationalinferencewithinverseautoregressiveflow.arXivpreprintarXiv:1606.04934,2016.
top related