본문 바로가기

audio/audio generation (tts)

[논문리뷰] WaveGrad: Estimating Gradients for Waveform Generation (ICLR21)

제목: WAVEGRAD: Estimating Gradients for Waveform Generation
저자: Nanxin Chen, Yu Zhang, Heiga Zen, Ron J. Weiss, Mohammad Norouzi, William Chan
소속: Johns Hopkins University, Google Research, Brain Team
발표: ICLR 2021
논문 및 웹페이지: https://wavegrad.github.io/

- 요즘 이동네에서 핫한 생성 기술 score matching & diffusion probabilistic models을 바탕으로 audio를 만들어냄. 
- [Ho20]에서 제안한 discrete refinement step index로도 만들어보고 노이즈레벨을 나타내는 continuous scalar로도 만들어봤는데, 후자가 더 효율적이었음. 이렇게 하니 6번만 반복해도 고퀄 오디오를 생성할 수 있었음.

 

Story

딥러닝 기술들은 speech synthesis 분야 역시 많이 발전시킴. 특히 autoregressive 모델들이 좋은 결과를 만들어내고 있는데, 사실 이 모델들은 느리다는 치명적인 단점이 있음. 리얼타임에는 쓸수가 없음. 그래서 non-autoregressive 모델들(normalizing flows, gan, energe score, VAE등등) 도 많이 제안이 되었는데,  이들은 확실히 빠르긴 하지만 퀄리티 측면에서 부족한 면이 있었음
그런데 2019-2020년경쯤 나온 생성 모델 중 score matching & diffusion probabilistic models를 이용한 이미지 생성 결과가 제법 좋음[Song19][Song20a][Ho20]. 아직 오디오 분야에는 적용되지 않은 듯 하여 얼른 적용해보도록 함. 

Estimating Gradients for Waveform Generation

일단 Stein score function은 이렇게 생겼음. data log-density $\log p(y)$의 그래디언트임. 

요 값들이 있으면 Langevin dynamics을 이용하여 샘플링을 할 수 있는데, 사실 잘보면 stochastic gradient ascent 방식임. 여기서 $z$가 랜덤($\mathcal{N}(0, I)$).

뉴럴네트워크써서 Stein score function을 얻어내고 Langevin dynamics써서 inference하는 방식이 score matching 방식. 기본적인 objective는 이렇게 생겼음($q$는 noise distribution).

[Song19]에서는 여기에 weight를 넣은 방식을 제안했는데, 매스텝 다른 레벨의 가우시안 노이즈로 데이터를 perturbed한다는 의미임. 


WaveGrad as a Diffusion Probabilistic Model

알고보니 score matching과 diffusion probabilistic model과 비슷한 것이었음[Ho20]. 그리고 여기에서는 뒤에 모델 쓸거임. diffusion probabilistic model은 일단 conditional distribution 으로 표현함. $y_0$는 웨이브폼인데, $x$는 여러 형태의 조건이 될 수 있음(liguiqstic features, mel, tacotron-style, ...). 이는 여러 latent variables ($y_1 \cdots y_N$) ($N$이 사실 iterations) 형태로 나타낼 수 있음.

$q(y_{1:N} | y_0)$을 보통 diffusion process(forward process)라고 부르고 마코프체인을 통해서 만들어짐. 

이때 매 iteration마다 가우시안 노이즈가 다른 레벨로 더해지게 됨. 여기서 노이즈레벨을 조정하는 $\beta$값들을 noise schedule이라고 부름.

[Ho20]에서는 diffusion provess가 closed form으로도 계산될 수 있다는 사실을 보임.

이러면 $\epsilon$으로 파라미터를 바꿔 뉴럴 네트워크를 훈련하면 됨. 그런데 이 오브젝트를 잘 보면 score matching과 닮았음.



Noise Schedule and Conditioning on Noise Level

score matching에서는 noise distribution을 잘 선택하는 것이 무척 중요함. diffusion model에서도 $\beta$를 잘 이용해서 noise schedule을 해야함. 오디오만들 때도 역시나 중요. 노이즈가 너무 많으면 디테일을 살리기가 힘들지만, 그렇다고 노이즈가 너무 없으면 모델이 수렴이 잘 안됨. [Song20a]에서 이에 대해 제안한 것이 있는데 여기서도 그걸 사용하게 됨.

또한 $N$(iteration수)도 중요한데, 너무 많이 하면 품질은 좋아지지만 시간이 오래걸림. [Song19]에서는 32x32이미지 만드는데 10번, [Ho20]에서는 256x256이미지 만드는데 1000번 반복했음. 그런데 오디오는 뭐..스케일이 다름. 예제로 사용한 샘플링레잇은 24kHz임.

일단, [Ho20]모델에서 iteration index $n$을 사용한 부분을 continuous noise level $\bar{\alpha}$로 바꾸었음.

사실 이는 score matching에서 시그마의 역할과 비슷한 거임. 그리고 n은 $Uniform()$에서 뽑으면 되었는데 $\bar{\alpha}$는 그렇게 하니 결과가 좋지 않았음. 그래서 각 iteration마다 해당하는 $\bar{\alpha}$값들이 미리 다 계산하고 그것을 샘플링해서 사용함. 이렇게 하면 일단 훈련이 한번 되면, 인퍼런스할 때 여러 $N$을 사용할 수 있다는 장점도 있음. 사실 이 논문과 동시에 ICLR에 똑같은 목적의 논문[Kong21]이 나왔음. 하지만 그 논문에서는 여전히 descrete iteration index를 사용하고 있다고 여기서 제안한 continous 방법이 더 좋다고 그 논문을 조용히 깜.

 

전체 아키텍처는 다음과 같음. 사실 GAN-TTS[Binkowski20]의 네트워크와 거의 유사함.


Experiments

구글에서 자체적으로 가지고 있는 데이터(385시간 영어 데이터, 84명의 스피커)로 모델을 훈련시킴. 멜스펙트로그램으로 훈련시켰지만 인퍼런스에서는 Tacotron 2[Shen18]로 만들어진 멜스펙트로그램으로 예측함. 이렇게 해도 큰 문제가 없었음. 이러면 더 좋은거임. 훈련을 일단 시켜놓으면 여러 형태의 조건으로도 인퍼런스를 할 수 있기 때문임. [Kong21]에서는 인퍼런스에 멜을 사용하는데, 이 논문에서 사용하는 방식이 더 현실적인 TTS세팅이라고 하며 다시한번 그 논문을 깜.

 

모델은 Base(15M 파라미터)와 Large(23M 파라미터) 두 가지 버전을 만듬. 평가는 WaveRNN[Kalchbrenner18], Parallel WaveGAN[Yamamoto20], MelGAN[Kumar19], Multi-band MelGAN[Yang20b], GAN-TTS[Binkowski20]와 비교하였음. 실험은 얼마나 자연스럽게 들리는가에 대한 5단계의 MOS(Mean Opinion Score)로 측정.

결과적으로 좋다고 소문난 autoregressive방식인 WaveRNN[Kalchbrenner18]과 거의 대등한 퀄리티의 결과, 하지만 WaveRNN이 100배는 더 느림. 다른 non-autoregressive 모델들은 전부 이김. Large버전이 좀더 좋긴 했지만 Base버전도 충분히 좋음. 



Discussion

여러 실험의 결과 인퍼런스가 잘되려면 다음과 같아야 한다는 사실을 알 수 있었음
- $y_N$과 $\mathcal{N}(0,I)$의 KL-divergence가 작아야 할 필요가 있음. 만약에 이 값이 크다면 훈련과 인퍼런스에서 미스매치가 생김. KL을 작게 만들려면 베타값들이 충분히 클 필요가 있음
- 베타는 작은 값으로 시작해야함. 그래야지 백그라운드 노이즈를 없애고 오디오에 디테일을 살릴 수 있음.
그외 노이즈 스케줄링을 비롯한 여러 실험에 대한 결과를 논문에서 찾아볼 수 있음.

 

 

역시 요즘의 대세는 Score Matching & Diffusion Model 인가?
이렇게 생성기술의 패러다임이 다시한번 바뀌는건가?

 

  • [Binkowski20] M.Binkowski, J.Donahue, S.Dieleman, A.Clark, E.Elsen, N.Casagrande, L.C.Cobo, K.Simonyan. High fidelity speech synthesis with adversarial networks. ICLR 2020. [논문리뷰]
  • [Ho20] Jonathan Ho, Ajay Jain, and Pieter Abbeel. Denoising Diffusion Probabilistic Models. In NeurIPS, 2020
  • [Kalchbrenner18] N.Kalchbrenner, E.Elsen, K.Simonyan, S.Noury, N.Casagrande, E.Lockhart, F.Stimberg, A.van den Oord, S.Dieleman, K.Kavukcuoglu. Efficient neural audio synthesis. ICML 2018. [논문리뷰]
  • [Kumar19] K.Kumar, R.Kumar, T.de Boissiere, L.Gestin, W.Z.Teoh, J.Sotelo, A.de Brebisson, Y.Bengio, A. Courville. MelGAN: Generative adversarial networks for conditional waveform synthesis. NeurIPS 2019. [논문리뷰]
  • [Kong21] Z.Kong, W.Ping, J.Huang, K.Zhao, B.Catanzaro. DiffWave: A versatile diffusion model for audio synthesis. ICLR 2021. [논문리뷰]
  • [Shen18] J.Shen, R.Pang, R.J.Weiss, M.Schuster, N.Jaitly, Z.Yang, Z.Chen, Y.Zhang, Y.Wang, RJ S.Ryan, R.A.Saurous, Y.Agiomyrgiannakis, Y.Wu. Natural TTS synthesis by conditioning WaveNet on mel spectrogram predictions. ICASSP 2018. [논문리뷰]
  • [Yang19] Yang Song and Stefano Ermon. Generative Modeling by Estimating Gradients of the Data Distribution. In NeurIPS, 2019.
  • [Yang20a] Yang Song and Stefano Ermon. Improved Techniques for Training Score-Based Generative Models. In NeurIPS, 2020.
  • [Yang20b] Geng Yang, Shan Yang, Kai Liu, Peng Fang, Wei Chen, and Lei Xie. Multi-band MelGAN: Faster Waveform Generation for High-Quality Text-to-Speech. arXiv preprint arXiv:2005.05106, 2020a.
  • [Yamamoto20] R.Yamamoto, E.Song, and J.M.Kim. Parallel WaveGAN: A fast waveform generation model based on generative adversarial networks with multi-resolution spectrogram. ICASSP 2020. [논문리뷰]