제목: Diff-TTS: A Denoising Diffusion Model for Text-to-Speech
저자: Myeonghun Jeong, Hyeongju Kim, Sung Jun Cheon, Byoung Jin Choi, Nam Soo Kim
소속: Seoul National University, Neosapience
발표: INTERSPEECH 2021
논문: https://arxiv.org/abs/2104.01409
웹페이지: https://jmhxxi.github.io/Diff-TTS-demo/index.html
- 최근 Diffusion Model을 이용한 오디오 생성기법들[Chen21][Kong21]이 소개됨. 그런데 이 논문들에서는 숫자정도를 조건으로 넣어서 생성하는 것까지는 제안하였지만 TTS에 적용하지는 않았음. phoneme을 조건으로 넣어서 TTS시스템을 만들어보기로 함.
- 그렇게 해보니 훈련도 잘 되고 Tacotron2[Shen18]과 glow-TTS[Kim20]보다 더 좋은 결과를 만들어낼 수 있었음!
- 인퍼런스 속도를 높이기 위해 acclerated sampling을 썼고, 노이즈 정도를 조정해서 pitch variability를 조절할 수 있는 것은 보너스.
Story
TTS분야는 크게 autoregressive (AR) 과 non-AR로 나뉘는데, autoregressive는 고품질 오디오를 만들긴 하지만 인퍼런스 타임이 너무 오래 걸리고 robust 하지도 않음. 그래서 이를 해결하고자 여러 non-AR 모델들이 나왔는데 feed-forward 방식이나 flow-based 방식이나 전부 단점이 존재함. 그러는도중 이미지 분야와 사운드 분야에서 denoising diffusion model을 이용한 멋진 결과들이 나오고 있음. 이 흐름에 발맞춰 non-AR TTS 시스템을 제안하고자 함.
Denoising diffusion model for TTS
아무래도 diffusion model 이야기를 생략할 수는 없음.
간단하게 말해서 여기에서 diffusion process는 멜스펙트로그램($x_0$)을 가우시안 노이즈($x_T$)로 만드는 과정이고 마르코프 체인을 통해 모델링됨. 여기에서 각 스텝은 variance schedule $\beta$들로 조정됨
reverse process는 노이즈 분포로부터 멜스펙트로그램을 만들어내는 과정(TTS에서는 텍스트 정보를 바탕으로 변화됨). 역시 조건부 분포로 구성되어있는 마르코프 체인으로 모델링 됨.
이를 최적화하기 위해서는 멜스펙트로그램의 log-likelihood를 최적화해야겠지만, 이는 쉽지 않은 문제이므로 ELBO로 바꾸어서 풀게되고 [Ho20] 덕분에 우리는 멋진 closed form 솔루션을 가지고 있음.
인퍼런스때는 반복적으로 각 스텝에 더해졌던 노이즈를 제거하는 방식으로 원래 데이터로 돌아감.
여기에서 $\eta$ 파라미터는 variance에 대한 스케일을 조정하는 temperature term임.
Accelerated Sampling
diffusion model의 가장 큰 단점이라면 diffusion step을 늘리면 퀄리티가 좋아지지만 인퍼런스 시간은 그만큼 늘어난다는 것. [Song20]에서는 퀄리티의 손상이 별로 없으면서도 인퍼런스 속도를 빠르게 하기 위한 기술을 소개했는데 여기서도 그 기술을 사용함. 간단히 말해서 일정 단계씩 점프하는 방법.
Model Architecture
인코더는 phoneme 시퀀스로부터 contextual 정보를 뽑는 부분. [Vainer20]와 유사한 형태로 되어있음. 인코딩된 정보는 phoneme과 멜의 길이를 맞추기 위해서 length regulator[Ren21]로 들어가는데, 이때 alignment 정보는 Montreal forced alignment(MFA)[McAuliffe17]를 이용함. 디코더는 [Kong21]과 유사하게 구성됨. 디코더 중간에 인코딩된 phoneme정보가 함께 들어감.
Experiments
LJSpeech데이터셋을 이용하여 훈련 및 테스트함. 멜을 사운드로 바꾸는 보코더는 HiFi-GAN을 이용. Tacotron2[Shen18]와 Glow-TTS[Kim20]와 비교를 하였고 5-scale MOS결과 이들을 다 이기는 것으로 나타남. accelerated sampling을 적용하더라도 다른 베이스라인 모델들과 비슷한 성능이 나왔음.
파라미터 숫자도 다른 모델의 반절정도이기 때문에 더욱 효율적인 모델이라고 할 수 있음.
인퍼런스 속도는 LJSpeech 데이터셋에서 500문장을 생성하는 average real-time factor(RTF)로 측정했는데, accelerated sampling을 크게 하더라도 tacotron2[Shen18]보다 3배는 더 빠른 속도를 보였음. Glow-TTS[Kim20]가 워낙빠르긴 하지만 이 기술도 리얼라임보다 28배는 더 빨랐음. 그리고 이 기술은 품질과 속도에서 트레이드오프가 있으므로 원하는데로 선택할 수 있다는 장점이 있음.
또한 모델에서 사용되는 variances와 노이즈에 따라서 생성되는 스피치의 prosody가 변화하는 것을 발견했는데, 이는 적당한 temperature term을 사용하여 이러한 변화를 조정할 수 있다는 의미이기도 함. temperature term을 높을 수록 보다 diverse한 결과가 만들어졌음. 훈련은 한번만 시키더라도 생성과정에서 콘트롤이 가능하다는 것도 장점.
Diffusion model을 이용한 TTS는 왠지 잘될것이라 예상했지만... 역시나 잘됨!
- [McAuliffe17] M. McAuliffe, M. Socolof, S. Mihuc, M. Wagner, and M. Son- deregger, “Montreal forced aligner: Trainable text-speech align- ment using kaldi.” in Interspeech 2017
- [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. [논문리뷰]
- [Kim20] J.Kim, S.Kim, J.Kong, S.Yoon. Glow-TTS: A generative flow for text-to-speech via monotonic alignment search. NeurIPS 2020 [논문리뷰]
- [Ren21] Y.Ren, C,Hu, X.Tan, T.Qin, S.Zhao, Z.Zhao, T.-Y.Liu. FastSpeech 2: Fast and High-Quality End-to-End Text to Speech. ICLR 2021. [논문리뷰]
- [Song20] J. Song, C. Meng, and S. Ermon, “Denoising diffusion implicit models,” arXiv preprint arXiv:2010.02502, 2020
- [Vainer20] J. Vainer and O. Dusek, “Speedyspeech: Efficient neural speech synthesis,” arXiv preprint arXiv:2008.03802, 2020.
- [Chen21] N.Chen, Y.Zhang, H.Zen, R.J.Weiss, M.Norouzi, W.Chan. WaveGrad: Estimating gradients for waveform generation. ICLR 2021. [논문리뷰]
- [Kong21] Z.Kong, W.Ping, J.Huang, K.Zhao, B.Catanzaro. DiffWave: A versatile diffusion model for audio synthesis. ICLR 2021. [논문리뷰]