티스토리 뷰
Paper/Vocoder
[Paper 리뷰] FastFit: Towards Real-Time Iterative Neural Vocoder by Replacing U-Net Encoder with Multiple STFTs
feVeRin 2024. 3. 21. 11:17반응형
FastFit: Towards Real-Time Iterative Neural Vocoder by Replacing U-Net Encoder with Multiple STFTs
- U-Net encoder를 multiple Short-Time Fourier Transform (STFT)로 대체하여 sample 품질을 유지하면서 더 빠른 합성 속도를 얻을 수 있음
- FastFit
- 각 encoder block을 STFT로 대체하고 decoder block의 temporal resolution과 동일한 parameter를 사용해 skip connection으로 연결
- 이를 통해 high-fidelity의 sample을 유지하면서 parameter 수와 생성 속도를 절반으로 줄임
- 논문 (INTERSPEECH 2023) : Paper Link
1. Introduction
- Neural vocoder는 short-/long-term dependency를 모델링하여 주어진 input condition을 따르는 음성을 생성함
- Vocoder에서 Generative Adversarial Network (GAN)과 Denoising Diffusion Probabilistic Model (DDPM)의 도입은 큰 성공을 보이고 있음
- 특히 DDPM은 GAN 보다 훨씬 뛰어난 합성 품질을 보이지만, 반복적인 denoising으로 인해 느린 속도를 보임 - U-Net과 같은 symmetric architecture는 이러한 iteration-style 모델에 자주 활용됨
- WaveGrad의 경우 skip connection을 활용한 encoder를 추가하여 품질을 향상했음
- BUT, 모델의 size가 2배로 늘어나고 합성 속도가 절반 이상 저하되는 문제가 있음
- Vocoder에서 Generative Adversarial Network (GAN)과 Denoising Diffusion Probabilistic Model (DDPM)의 도입은 큰 성공을 보이고 있음
-> 그래서 vocoder의 효율성을 향상하기 위해, U-Net encoder를 multiple STFT로 대체하는 FastFit를 제안
- FastFit
- iSTFTNet에서 영감을 받아 GAN-based vocoder를 U-Net으로 확장한 다음,
- 각 encoder block을 skip connection shape에 해당하는 parameter가 있는 STFT로 대체
- 이러한 모델 수정을 통해 U-Net의 skip connection 이점을 유지하면서 STFT의 낮은 계산 비용을 활용
< Overall of FastFit >
- 각 encoder block을 STFT로 대체하고 parameter를 skip connection으로 연결
- WaveFit의 iteration-style principle을 도입하여 U-Net의 이점과 STFT의 효율성을 모두 활용
- 결과적으로 기존 대비 절반 수준의 parameter 수만으로 우수한 합성 품질과 2배 이상의 추론 가속 효과를 얻음
2. Method
- FastFit은 initial point $y_{T}$에서 시작함
- 여기서 각 iteration step $t=T, T-1, ..., 1$에서 denoising mapping이 $y_{t}$에 적용되어 denoised signal $y_{t-1}$을 얻음
- 이때 $\theta$로 parameterize된 모델 $\mathcal{F}$는 $y_{t}$의 noise component를 예측하도록 training 됨
- $\mathcal{F}_{\theta}$는 $\mathcal{F}_{\theta}(y_{t}, c, z, t)$로써, log mel-spectrogram $c$, latent noise $z\sim\mathcal{N}(0,I)$, current step $t$로 condition 됨 - 결과적으로 objective는 final output $y_{0}$를 포함하여 각 iteration에서 $y_{t}$를 target waveform $x$에 가깝게 만드는 것
- Improving the Architecture of the Residual Block
- FastFit의 U-Net 모델은 intermediate latent $w$에 대한 mapping, step embedding $t_{emb}$에 대한 step embedding network를 갖춘 $N$개의 encoder/decoder block으로 구성됨
- 각 $n$-th decoder block은 $h_{t}[N+n-1], c,w,t_{emb}$와 $h_{t}[N-n]$을 input으로 사용하여 $h_{t}[N+n]$을 계산
- $t_{emb}$는 broadcast 되도록 condition 되고, $c$와 각 dilated convolution 다음에 add 됨 - 구조적으로, 각 decoder block은 UnivNet generator를 기반으로 3가지 수정 사항을 반영함
- Noise $z$를 inject 하기 위해 각 residual connection 다음에 Adaptive Layer Normalization (AdaLN)을 추가함
- Snake activation function을 활용
- Periodic frequency form으로 각 layer output을 제어하고 out-of-distribution robustness를 확보할 수 있음 - 생성 속도 향상을 위해 gated activation unit을 제거함
- UnivNet에서 해당 layer는 품질 향상에 큰 영향이 없는 대신, layer의 channel 수를 2배로 늘리는 경향이 있음
- Encoder block은 구조적으로 decoder block과 유사하지만,
- Residual connection이 없고 upsampling layer가 stride convolution을 사용하는 downsampling으로 대체됨
- 각 $n$-th decoder block은 $h_{t}[N+n-1], c,w,t_{emb}$와 $h_{t}[N-n]$을 input으로 사용하여 $h_{t}[N+n]$을 계산
- Replacing U-Net Encoder with Multiple STFTs
- Real-time iterative vocoder를 구현하기 위해, U-Net encoder를 multiple STFT로 대체함
- 각 decoder block의 temporal resolution과 동일한 frame shift interval을 사용하여 각 STFT에 대한 parameter로 skip connection을 연결함
- iSTFTNet과 같이 Fourier transform의 point 수와 Hann window length는 해당 frame shift interval의 4배로 설정
- Channel size를 일치시키기 위해, 각 encoder/decoder block 사이에 convolution layer를 사용함 - STFT의 계산 속도는 neural encoder의 계산 속도 보다 빠르기 때문에 FastFit은 parameter 수를 거의 절반으로 줄이고, 생성 속도를 2배로 높일 수 있음
- 이때 U-Net architecture를 통한 high performance skip connection은 여전히 유지되기 때문에, 해당 대체로 인한 음성 품질 저하는 크게 발생하지 않음 - 이때 STFT의 optimal representation으로써 Cartesian form을 활용함
- 실수/허수 channel을 concatenation 한 것
- 각 decoder block의 temporal resolution과 동일한 frame shift interval을 사용하여 각 STFT에 대한 parameter로 skip connection을 연결함
- Denoising Mapping and Training Losses
- WaveFit에서 사용된 denoising mapping과 loss function을 활용함
- 먼저 denoised signal $y_{t-1}$은 다음과 같이 계산됨:
(Eq. 1) $\tilde{y}_{t}=y_{t}-\mathcal{F}_{\theta}(y_{t},c,z,t) $
(Eq. 2) $y_{t-1}=(P_{c}/(P_{\tilde{y}_{t}}+s))\tilde{y}_{t}$
- $s=10^{-8}$ : numerical error를 방지하기 위한 constant - Denoising mapping은 $y_{t}$에서 $\mathcal{F}_{\theta}$에 의해 예측된 noise component를 substracting 하여 $\tilde{y}_{t}$를 얻고, $\tilde{y}_{t}$의 power를 $P_{c}$로 adjust 함
- $P_{\tilde{y}_{t}}$와 $P_{c}$는 각각 $\tilde{y}_{t}$와 $c$의 power spectrogram을 계산한 다음, element-wise mean을 취하여 얻어짐
- $c$의 power spectrogram은 $c$에 mel-compression matrix의 pseudo-inverse를 곱하고, 이를 제곱하여 얻어짐 - 각 step에서 signal의 power를 $c$의 constant power로 scaling 함으로써 모든 $t$에 대해 denoising이 repeat 되고, final output $y_{0}$가 얻어질 때까지 $y_{t-1}$의 power를 constant 하게 유지할 수 있음
- $P_{\tilde{y}_{t}}$와 $P_{c}$는 각각 $\tilde{y}_{t}$와 $c$의 power spectrogram을 계산한 다음, element-wise mean을 취하여 얻어짐
- FastFit은 least squares GAN (LSGAN)의 GAN loss와 discriminator $D$를 사용하여 adversarilly train 되고, 이때 overall loss $\mathcal{L}_{disc}, \mathcal{L}_{gen}$은 다음과 같이 정의됨:
(Eq. 3) $\mathcal{L}_{disc}=\frac{1}{TK}\sum_{t=0}^{T-1}\sum_{k=0}^{K-1}\left[ \mathbb{E}_{x}[(D_{k}(x)-1)^{2}]+\mathbb{E}_{y_{t}}[D_{k}(y_{t})^{2}]\right]$
(Eq. 4) $\mathcal{L}_{gen}=\frac{1}{T}\sum_{t=0}^{T-1}\left[ \lambda_{aux}\mathcal{L}_{aux}(y_{t},x)+\frac{1}{K}\sum_{k=0}^{K-1}\left[ \mathbb{E}_{y}[(D_{k}(y_{t})-1)^{2}]+\lambda_{fm}\mathcal{L}_{fm}(D_{k};y_{t},x) \right]\right]$
- $K$ : sub-discriminator의 수
- Auxiliary loss $\mathcal{L}_{aux}$로써 MR-STFT loss를 사용하고, $\lambda_{aux}=2.5$로 설정
- $\mathcal{L}_{fm}$은 scaled feature matching loss로써, $\lambda_{fm}=\lambda_{aux} \frac{\mathcal{L}_{aux}}{\mathcal{L}_{fm}}$ - Initial point $y_{T}$는 아래와 같이 정의된 SpecGrad의 noise generation algorithm을 통해 sampling 됨:
(Eq. 5) $y_{T}=\mathbf{G}^{+}\mathbf{M}\mathbf{G}_{\epsilon}$
- $\epsilon \sim \mathcal{N}(0,I)$, $\mathbf{G}, \mathbf{G}^{+}$ : 각각 STFT, iSTFT, $\mathbf{M}$ : prior adaptation을 위해 $c$로부터 계산된 filter
- SpecGrad의 경우 $c$에 mel-compression matrix의 pseudo-inverse를 곱하여 얻은 spectrogram에서 cepstrum-based spectral envelope를 추정하여 $\mathbf{M}$으로 사용함
- 이와 달리, FastFit은 $c$의 spectrogram을 $\mathbf{M}$으로 직접 사용함
- 먼저 denoised signal $y_{t-1}$은 다음과 같이 계산됨:
3. Experiments
- Settings
- Results
- Ablation Study
- FastFit은 AdaLN 없이 training 되는 경우, 성능이 저하되는 것으로 나타남
- Skip connection을 제거하는 경우에도 마찬가지로 성능 저하가 발생
- Representation으로 사용된 magnitude spectrogram은 FastFit에서 사용된 Cartesian form과 정량적인 metric 측면에서는 큰 차이를 보이지 않음
- 다만 주관적인 품질 측면에서 일부 저하가 발생함
- Polar form의 경우 training이 초기에 collapse 되는 경향이 나타남
- Comparison with Baselines
- 제안된 FastFit은 parameter 수가 기존 대비 절반임에도 불구하고 2배 이상의 합성 속도를 보임
- 합성 품질 측면에서도 큰 차이를 보이지 않음
- Application to Text-to-Speech Synthesis
- TTS 모델에 각 vocoder를 적용해 보았을 때, 합성 결과를 비교해 보면
- 마찬가지로 FastFit이 가장 우수한 합성 품질을 보임
반응형
'Paper > Vocoder' 카테고리의 다른 글
댓글