-
WaveGlow: A Flow-based Generative Network for Speech Synthesis 리뷰논문 리뷰 2021. 10. 13. 19:33
2021.10.13 - [논문 리뷰] - WaveNet: A Generative Model for Raw Audio 리뷰
WaveNet: A Generative Model for Raw Audio 리뷰
들어가며 WaveNet은 Neural Vocoder 에서 중요한 역할을 하는 논문이다. 많은 뉴럴 보코더들이 WaveNet 기반으로 만들어졌으며, WaveNet의 단점(Generation 속도, 병렬 처리 등)을 개선하기 위해 여러 후속 논
artificial-intelligent.tistory.com
2021.10.13 - [논문 리뷰] - Glow: Generative Flow with Invertible 1x1 Convolutions 리뷰
Glow: Generative Flow with Invertible 1x1 Convolutions 리뷰
들어가며 오늘은 WaveNet-Glow-WaveGlow 3부작의 두번째 주제가 될 Glow 에 대한 글이다 2021.10.13 - [논문 리뷰] - WaveNet: A Generative Model for Raw Audio 리뷰 WaveNet: A Generative Model for Raw Audio..
artificial-intelligent.tistory.com
WaveNet, Glow에 이은 마지막 WaveGlow논문이다. WaveNet 보코더의 단점인 합성 시간이 매우 느리다는 단점을 Glow 방법을 이용하여 극복해낸 논문이다. 논문의 매우 많은 부분이 Glow 와 겹치므로 많은 개념을 생략한다.
WaveGlow는 gaussian distribution 에서 sampling 하여 음성으로 합성해내는 생성모델이다. 이 gaussian distribution을 원하는 형태의 distribution으로 변환시킨다.
다음 식에서와 같이 normal distribution 에서 latent vector 라고 할 수 있는 z(이전 Glow 포스팅 참조)를 sampling 하여 뽑아낸 다음 이를 normalizing flow 방법을 통해 원하는 data x 로 변환시키는 식이다.
WaveGlow 논문에서는 mel-spectrogram이 x가 가지는 distribution의 조건이 된다. wavenet 논문을 참고하길 바란다.
glow 를 학습할때는 log-likelihood 를 minimize 하여 학습한다고 하였다. WaveGlow도 동일하게 log-likelihood를 minimize 하여 학습하게 된다. 그 식은 다음과 같다.
f-1 변환의 jacobian 의 determinant가 식에 포함된다. jacobian 변환은 어떤 변환이 있을때, 그 변환이 미시적으로 선형변환을 이루게 됨을 나타낼 수 있고, 행렬의 determinant가 행렬의 vector 들이 이루는 volume의 크기를 의미함을 생각해볼때, jacobian 변환으로 인한 변화율을 나타냄을 알 수 있다.
glow에서는 channel 별로 shuffle 하여 flow 과정을 거치게 된다. waveglow에서는 채널이 1개인 wave form을 다루므로, 이를 어떻게 변형시킬지 생각해봐야한다. WaveGlow에서는 8개의 audio sample을 그룹화 하여 처리한다. 이를 squeeze 라고 부른다.
전체적인 모델 구조는 Glow와 WaveGlow가 유사하다. 다만, Glow에서의 NN() 대신에 WaveGlow 에서는 WN() 모듈이 존재하고 이 모듈에 condition 으로 upsampled mel-spectrogram 이 들어가게 된다. ( 1초에 대한 mel-spectrogram의 length가 1초에 대한 wav length 보다 짧으므로 upsample 시킨다)
Fig.1 을 보면 xa와 xb중 x'b만 변환되는것을 볼 수 있다. 이렇게 하는 이유는 xa 와 x'b를 통해 xb를 구할 수 있기 때문이다. 또한, WN() 모듈은 invertable 할 필요가 없음을 알 수 있다. (암호학의 block cipher 와 매우 비슷한 형태인 것 같다) WN() 은 WaveNet 모듈이다. 하지만, wavenet 처럼 causal convolution을 이용하지 않고, 일반적인 convolution을 이용하게 된다. (그래서 autoregressive model 이 아닌가보다)
affine coupling layer 의 log-determinant는 다음과 같다.
affine coupling layer를 한번 거친 후 shuffle 없이 한번더 affine coupling layer를 거친다면 마지막까지 xa 부분은 변화 없이 xb 부분만 변환이 일어날 것 이다. 이를 방지해주기 위해 한번의 변환이 일어난 후에 shuffle을 해주는데, 이 역할을 하는것이 invertible 1x1 convolution 이다. 해당 연산의 log-determinanat는 다음과 같다.
affine coupling layer 의 log-determinant 와 invertible 1x1 convolution의 log-determinant, 그리고 log-likelihood를 더한 objective function은 다음과 같다.
'논문 리뷰' 카테고리의 다른 글
Deep Speech & Deep Speech2 간단 리뷰 (0) 2022.01.15 Listen, Attend and spell (0) 2022.01.01 VQVC+: One-Shot Voice Conversion by Vector Quantization and U-Net architecture 리뷰 (0) 2021.10.13 Glow: Generative Flow with Invertible 1x1 Convolutions 리뷰 (0) 2021.10.13 WaveNet: A Generative Model for Raw Audio 리뷰 (0) 2021.10.13