본문 바로가기

audio/audio generation

[논문리뷰] WaveNet: A Generative Model for Raw Audio (arxiv16)

논문제목: WaveNet: A Generative Model for Raw Audio

저자: Aaron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew Senior, Koray Kavukcuoglu

소속: Google DeepMind, Google

논문: https://arxiv.org/abs/1609.03499

웹페이지: https://www.deepmind.com/blog/wavenet-a-generative-model-for-raw-audio

 

- 딥마인드 van den Oord가 PixelRNN[Oord16a]과 PixelCNN[Oord16b] 만들고 나서 이 기술을 그대로 오디오 시그널에 적용한 논문. 따로 학회에서 발표도 안하고 딥마인드 블로그에 소개된 논문이었는데, van den Oord의 대표 논문이 되버렸음. 원래 이 친구 이전에 음악 추천 관련 논문도 내고 음악에도 관심이 많았던 듯. 
- 과거데이터를 이용하여 새로운 데이터를 만들어내는 autoregressive 오디오 생성 모델. 이미지에 비해 샘플수가 무척 많은 오디오에 적용하기 위하여 dilated causual convolution 제안. 이를 통해 더욱 큰 receptive fields를 보장함.
- 스피커, 혹은 언어관련 정보로 컨디션을 걸어서 스피커 변환, TTS 등에도 적용할 수 있음. 음악도 만듬.

 

Story

최근에 NN을 사용한 autoregressive generative model의 결과가 좋음. 예를 들어 이미지[Oord16a][Oord16b]에서나 텍스트[Jozefowicz16]에서 소타결과물이 나오곤 함. 그런데 이 기술을 오디오에 적용하는 것은 어려운 문제임(샘플수가 너무 많음ㅠㅜ). 그래서 이 논문에서는 처음으로 이 문제를 한번 풀어보고자함. 기본적으로 PixelCNN의 방식을 수정해서 사용할 건데 어차피 자기가 만든 방식이니ㅎ

 

Dilated Causal Convolutions

일단 순서에 딱 맞게 (미래의 데이터는 못봄) 데이터를 생성하는 causual convolution을 이용. PixelCNN에서 masked convolution에 해당하는데 오디오 데이터는 1D이기 때문에 구현이 더 쉬움. 과거의 데이터로 샘플 하나 만들고, 그거 다시 넣어서 또 만들고 하는 방식. recurrent가 아니기 때문에 더 빠름. 하지만 오디오 샘플의 수가 너무 많아서 레이어를 하나씩 다 쌓을 수는 없는데, 이를 연결을 스킵하는 방식으로 만듬. 풀링이나 스트라이드와 비슷하긴 하지만, 인풋과 아웃풋의 크기가 동일하다는 차이점이 있음. 사실 예전부터 시그널 프로세싱이나 이미지 세그멘테이션에서도 사용되었던 방식이었음

 

 

Softmax Distributions

오디오 샘플의 conditional distribution을 모델링하기위해서 softmax distribution을 이용함. 이것도 PixelCNN에서 제안했던 내용. 기존에 Gausian Mixture등보다 더 좋은 결과를 보임. 16비트 오디오 (65536)의 값이 너무 크기때문에 이를 $\mu$-law companding transformation을 이용하여 256으로 줄임. 단순한 linear quantization보다 훨씬 더 좋은 결과를 보임.

 

Gated Activation Units

PixelCNN에서 사용했던 gated activation unit을 이용함. tanh 필터링을 하고 거기에 sigmoid 게이트($\sigma$)를 곱함. 오디오 시그널 모델링에서 relu보다 더 좋은 성능을 보임.

 

Residual and Skip Connections

네트워크는 residual과 parameterized skip connection을 이용함. 수렴도 더 잘되고 모델도 더 깊이 만들 수 있기 때문.

 

Conditional WaveNets

웨이브넷에도 additional input $h$를 더해서 컨디션을 걸 수 있음. 먼저 모든 타임스텝에 하나의 $h$을 사용할 수 있음(global conditioning). TTS에서 스피커의 정보등이 이런 것에 해당함. 또한 타임스텝별로 $h$를 변경할 수도 있음(local conditioning). TTS모델에서 사용되는 linguistic features등이 이에 해당됨. 

 

Experiments

MultipSpeaker Speech Generation: 여러 스피커들의 스피치를 만드는 실험. 데이터는 VCTK (44시간 데이터, 109명의 스피커)를 이용. receptive field를 넓혔다고 하더라도 최대 길이는 300ms정도(2-3 phonemes). 109명의 스피커 데이터를 전부 사용하니 검증셋 성능도 더 좋아짐. 공통된 representation을 잘 배우는 듯. 보이스외에 숨을 쉬는 부분이나 입의 움직임으로 인한 소리등도 잘 배우는 듯.

 

TTS: 구글의 North American English(24.6시간)와 Mandarin Chinese(34.8시간) TTS 스피치 데이터베이스를 이용함. TTS니 linguistic features가 필요하고 $F_0$도 이용하여 훈련함. receptive fild size는 240ms. HMM과 LSTM-RNN모델을 만들어서 비교함. 퀄리티 테스트는 subjective paired comparison tests와 mean opinion score(MOS; 5 Likert scale)을 이용함. 결과 좋음.

같이 비교한 모델은 LSTM-RNN을 사용한 parametric 모델[Zen16]과 HMM을 사용한 concatenative 모델[Gonzalvo16]임. 사실 둘다 구글에서 예전에 만들어서 사용하고 있던 모델들임.

 

Music: 음악 생성에서는 MagnaTagATune (200시간 music audio, 29sec clips with tags)과 YouTube 비디오로부터 구한 60시간의 피아노 솔로 음악 데이터 이용. 음악에서는 receptive field를 넓히는게 중요했음. 

 

ASR: 음성인식에도 사용할 수 있음. TIMIT데이터셋으로 실험. 18.8PER이 나왔는데 TIMIT에 raw audio를 이용한 모델중에 가장 좋은 값임.

 

Supplimentary

TTS Background에 대해서 설명을 하는데, 2장 분량에 TTS 핵심이 쏙 담겨져 있음. 뜻밖의 고퀄. 저자중에 Heiga Zen 이 있는데 이분이 오랫동안 speech synthesis하시고 계신 분. 아마도 이 분이 적으신 것 같은데 옛날 리퍼런스부터 정리가 잘 되어있음.

 

PixelCNN을 오디오에 적용시킨 논문이지만, PixelCNN보다 훨씬 더 유명한 논문이 되어버림.
이젠 클래시컬 대접을 받는 논문.

 

  • [Jozefowicz16] Jozefowicz, Rafal, Vinyals, Oriol, Schuster, Mike, Shazeer, Noam, and Wu, Yonghui. Exploring the limits of language modeling. CoRR, abs/1602.02410, 2016. URL http://arxiv.org/abs/ 1602.02410.
  • [Gonzalvo16] Gonzalvo, Xavi, Tazari, Siamak, Chan, Chun-an, Becker, Markus, Gutkin, Alexander, and Silen, Hanna. Recent advances in Google real-time HMM-driven unit selection synthesizer. In Interspeech, 2016.
  • [Oord16a] van den Oord, Aaron, Kalchbrenner, Nal, and Kavukcuoglu, Koray. Pixel recurrent neural networks. arXiv preprint arXiv:1601.06759, 2016a.
  • [Oord16b] van den Oord, Aaron, Kalchbrenner, Nal, Vinyals, Oriol, Espeholt, Lasse, Graves, Alex, and Kavukcuoglu, Koray. Conditional image generation with PixelCNN decoders. CoRR, abs/1606.05328, 2016b. URL http://arxiv.org/abs/1606.05328     
  • [Zen16] Zen, Heiga, Agiomyrgiannakis, Yannis, Egberts, Niels, Henderson, Fergus, and Szczepaniak, Prze- mysław. Fast, compact, and high quality LSTM-RNN based statistical parametric speech synthesizers for mobile devices. In Interspeech, 2016.