[DL輪読会] Efficient Neural Audio Synthesis

[DL輪読会] Efficient Neural Audio Synthesis

WaveNetはSoTAな音声合成手法。
しかし、自己回帰生成モデルなので、生成が遅い。1秒の音声を生成するために24000回のサンプリングが必要。
提案手法”WaveRNN”。ネットワークを大幅に小さくした。
計算時間を短くする手法や、並列して生成可能な手法も提案。
モバイルCPUでもリアルタイムで音声合成可能にした。

830aad2f9b1bff6485ccde5accb63bd8?s=128

Dwango Media Village

June 01, 2018
Tweet

Transcript

  1.  DEEP LEARNING JP [DL Papers] http://deeplearning.jp/ &⒏DJFOU/FVSBM"VEJP4ZOUIFTJT *$.- )JSPTIJCB,B[VZVLJ

    %XBOHP.FEJB7JMMBHF
  2. Efficient Neural Audio Synthesis   一言で言うと   WaveNetを改修して、リアルタイムで波形生成可能なWaveRNNを提案   著者   Nal Kalchbrenner (DeepMind)

    · Erich Elsen (Google) · Karen Simonyan (DeepMind) ·   Seb Noury (DeepMind) · Norman Casagrande (DeepMind) · Edward Lockhart (DeepMind) ·   Florian Stimberg () · Aäron van den Oord (Google Deepmind) ·   Sander Dieleman (DeepMind) · koray kavukcuoglu (DeepMind)   ICML 2018   選択理由   最近リアルタイム声質変換をやっているので、どんな論文か気になった   URL: https://arxiv.org/pdf/1802.08435.pdf   IUUQTBSYJWPSHQEGQEG
  3. 目次   概要   背景   WaveNet   Parallel WaveNet   手法   WaveRNN   Sparse WaveRNN

      Subscale WaveRNN   実験・評価  
  4. 概要   WaveNetはSoTAな音声合成手法   しかし、自己回帰生成モデルなので、生成が遅い   1秒の音声を生成するために24000回のサンプリングが必要   提案手法”WaveRNN”   ネットワークを大幅に小さくした   計算時間を短くする手法や、並列して生成可能な手法も提案   モバイルCPUでもリアルタイムで音声合成可能にした  

  5. 背景: WaveNet   TTS(Text To Speech)分野でSoTA   音声波形を1サンプルずつ作成する   自己回帰モデルなのが特徴的   精度は高い一方、生成が遅い   Softmax分布を推定   分布の最大値を出力 

     IUUQTEFFQNJOEDPNCMPHXBWFOFUHFOFSBUJWFNPEFMSBXBVEJP
  6. 背景: Parallel WaveNet   訓練済みWaveNetを教師としてParallel WaveNetを訓練   自己回帰ではないため高速に生成可能   局所的な独立性を仮定している   順序モデルが崩壊してしまう   IUUQTBSYJWPSHQEGQEG

  7. 手法: WaveRNN   ネットワーク構造が小さい自己回帰モデル   1層のGRUと2層の全結合   Dual Softmax   1サンプル(16bit)推定を2段階に分ける   1段目で粗い8bitを推定   2段目で細かい8bitを推定   Nvidia P100

    GPUでリアルタイムの4倍早く生成できた   WaveNetは0.3倍程度   GPUのレジスタを使って頑張って高速化している   ૈ͍CJU ࡉ͔͍CJU
  8. 手法: WaveRNN   GPUを使ってリアルタイム音声合成できた   モバイルCPUを使いたい   もっと早くしたい   計算時間とオーバーヘッドを削減する手法を提案   Sparse WaveRNN   Subscale WaveRNN 

    
  9. 手法: Sparse WaveRNN   プルーニングする   訓練が進むと重みの大きさのスパース性が増加する   重みを大きさでソートして、小さいものからマスクをかけて省く   マスクをかける数はステップが進むに連れて増やす   ブロックごとにマスクをかけることで高速化   他にもGRUのシグモイド関数がモバイルCPUだと遅いのでソフトサイン関数にする、などの工夫   モバイルCPUでもリアルタイム音声合成可能になった 

    
  10. 手法: Subscale WaveRNN   系列データを飛ばし飛ばし生成することで、並列生成を可能にする   Bつ飛ばしで生成すれば、B並列で生成可能   #ฒྻ

  11. 手法: Subscale WaveRNN   1×N次元の時系列データをB×(N/B)次元に変形する   #ฒྻ

  12. 手法: Subscale WaveRNN   時系列的に過去のデータ(左下)から、Bつ飛ばしに生成する   #ฒྻ

  13. 手法: Subscale WaveRNN   時系列的に過去のデータ(左下)から、Bつ飛ばしに生成する   Fデータ生成後に、飛ばされたデータを並列して生成する   #ฒྻ

  14. 手法: Subscale WaveRNN   このxを生成するとき、生成済みのデータ(青と緑)はどれも条件として入力可能   xより左下のデータは過去、xより右にあるデータは未来のデータ  

  15. 手法: Subscale WaveRNN   生成後、1×N次元の時系列データに戻す  

  16. 実験条件   TTS(Text To Speech)タスク   24kHz、16bitサンプル   学習データは44時間の読み上げ音声   入力は ”conventional linguistic features”

    とピッチ   平均オピニオン評点(MOS)やABテストで主観評価   NLLで定性評価   Subscale WaveRNNには、10層のDilated CNNを用いる  
  17. 実験条件: Sparse WaveRNN  

  18. 評価: ABテスト   提案手法WaveRNNとのABテスト   Sparse WaveRNNは、SparseにしていないWaveRNNより劣る   Subscale WaveRNN(16並列生成が可能)は、WaveRNNと同等程度  

  19. 評価: NLL・MOS  

  20. まとめ   WaveNetと同程度のクオリティを持つ音声を高速に生成できるネットワーク、WaveRNNを提案   モバイルCPUでもリアルタイム音声合成できる手法、Sparse WaveRNNを提案   WaveRNNをより高速にする手法、Subscale WaveRNNを提案