티스토리 뷰
Paper/TTS
[Paper 리뷰] FLY-TTS: Fast, Lightweight and High-Quality End-to-End Text-to-Speech Synthesis
feVeRin 2024. 7. 8. 09:37반응형
FLY-TTS: Fast, Lightweight and High-Quality End-to-End Text-to-Speech Synthesis
- Fast, Lightweight Text-to-Speech 모델에 대한 요구사항이 커지고 있음
- FLY-TTS
- Decoder를 Fourier spectral coefficient를 생성하는 ConvNeXt block으로 대체하고, inverse STFT를 적용하여 waveform을 합성
- Model size를 compress 하기 위해 text encoder와 flow-based model에 grouped parameter-sharing을 도입
- 추가적으로 합성 품질 향상을 위해 large pre-trained WavLM을 통해 adversarial training 함
- 논문 (INTERSPEECH 2024) : Paper Link
1. Introduction
- Text-to-Speech (TTS)는 input text를 speech waveform으로 변환하는 것을 목표로 함
- 특히 Glow-TTS, VITS, NaturalSpeech 등의 최신 TTS 모델은 합성된 음성의 naturalness를 크게 향상함
- BUT, 해당 TTS 모델들을 실적용하기에는 다음의 한계가 있음:
- Edge/mobile device에 배포하기에는 model size가 상당히 큼
- 느린 추론 속도로 인해 low-resource 환경에서 사용하기 어려움
- 일반적으로 model size가 클수록 성능이 향상되지만 trade-off가 존재함
-> 그래서 앞선 문제들을 해결할 수 있는 Fast, Lightweight, high-qualitY-TTS 모델인 FLY-TTS를 제안
- FLY-TTS
- VITS를 기반으로 뛰어난 합성 품질을 유지하면서 추론 속도와 model size를 줄이는 것을 목표로 함
- 특히 VITS의 HiFi-GAN decoder는 추론 속도에 대한 주요 bottleneck이므로 ConvNeXt block을 도입해 Fourier spectral coefficient를 생성하고, inverse STFT를 적용해 raw waveform reconstruction 속도를 향상
- Text encoder, Flow-based model에는 grouped parameter-sharing을 적용해 model size를 크게 절감
- Model compression으로 인한 합성 품질 저하를 완화하기 위해 adversarial training을 위한 discriminator로써 large pre-trained WavLM을 채택
- 이를 통해 self-supervised representation을 generator에 제공함으로써 음성 품질을 향상 가능
- VITS를 기반으로 뛰어난 합성 품질을 유지하면서 추론 속도와 model size를 줄이는 것을 목표로 함
< Overall of FLY-TTS >
- Fourier coefficient를 생성하는 ConvNeXt decoder와 grouped paramter-sharing을 활용한 경량 TTS 모델
- 결과적으로 기존 TTS 모델 수준의 합성 품질을 유지하면서 훨씬 적은 parameter 수와 빠른 추론 속도를 달성
2. Method
- FLY-TTS는 end-to-end TTS 모델인 VITS를 기반으로 구성됨
- 먼저 VITS는 input condition
가 주어졌을 때, target datac 의 log-likelihoodx 의 variational lower bound를 최대화하는 conditional VAE:pθ(x|c)
(Eq. 1)logpθ(x|c)≥Eqϕ(z|x)[logpθ(x|z)−logqϕ(z|x)pθ(z|c)]
- : latent variable,z : conditionpθ(z|c) 가 주어졌을 때c 의 prior distributionz
- :pθ(x|z) 가 주어졌을 때 likelihood,z : 근사 posterior distributionqϕ(z|x) - VITS는 각각
에 해당하는 posterior encoder, prior encoder, decoder로 구성되고, adversarial training을 위한 discriminator를 도입해 합성 품질을 향상함qϕ(z|x),pθ(z|c),pθ(x|z) - Prior Encoder
- Prior encoder 는 input phonemeEprior 를 receive 하고 prior distribution을 예측함c
- 구조적으로는 input processing을 위한 text encoder와 prior distribution의 flexibility를 향상하는 normalizing flow 로 구성fθ - Posterior Encoder
- Posterior encoder 는 linear spectrum에서 동작하여 근사 posterior distribution의 평균/분산을 예측함Eposterior
- 해당 module은 training에서만 사용되므로 추론 속도에는 영향을 주지 않음 - Decoder
- Decoder 는 latentEdecoder 로부터 waveform을 생성함z
- 일반적으로 HiFi-GAN generator로 구성됨 - Discriminator
- Discriminator 는 HiFi-GAN을 따라 구성됨D
- Adversarial training을 위한 Multi-Period Discriminator, Multi-Scale Discriminator를 포함
- Prior Encoder
- 결과적으로 해당 VITS 구조를 기반으로 FLY-TTS는 몇 가지 수정을 통해 lightweight TTS 모델을 구축함
- 먼저 VITS는 input condition

- Grouped Parameter-Sharing
- Parameter-sharing은 parameter efficiency를 향상하기 위해 사용됨
- 논문에서는 model size와 expressiveness power 간의 trade-off를 만족하기 위해 prior encoder의 text encoder와 flow-based model에 grouped parameter-sharing을 적용함
- 먼저 VITS의 original text encoder는 multi-layer transformer encoder로 구성됨
- 해당 transformer layer에는 redundancy가 존재하므로 parameter-sharing을 통해 성능을 크게 저하시키기 않으면서 model size를 줄일 수 있음
- 따라서 group parameter-sharing strategy를 적용해, 동일한 parameter를 sequential
layer에 할당하는 방식으로 총m1 개의 layer 만을 사용하도록 함g1×m1
- 여기서 은 group 수이고,g1 이면 grouped parameter-sharing은 complete parameter-sharing이 됨g1=1
- 한편 flow-based model 역시 large memory footprint로 인한 문제가 존재함
- 따라서 앞선 text encoder의 grouped parameter-sharing과 마찬가지로, flow
의f1,f2,...,fK step을K=g2×m2 group으로 나눔g2
- 이때 각 group은 flow step을 포함m2 - 추가적으로 PortaSpeech와 같이 affine coupling layer의 모든 module의 parameter를 share 하지 않음
- 대신 NanoFlow를 따라 WaveNet으로 구성된 projection layer의 parameter만을 share 하여 각 module 간의 parameter independence를 유지함
- 따라서 앞선 text encoder의 grouped parameter-sharing과 마찬가지로, flow
- ConvNeXt-based Decoder
- VITS decoder는 HiFi-GAN vocoder를 기반으로 transposed convolution을 통해 representation
로부터 waveform을 합성함z - 따라서 VITS에는 upsampling process의 time-consuming nature로 인해 추론 속도에 대한 bottleneck이 존재함
- 이를 해결하기 위해, 논문은 Vocos를 따라 ConvNeXt block을 backbone으로 하여 동일한 temporal resoultion의 Fourier time-frequency coefficient를 생성함
- 이후 inverse STFT (iSTFT)를 적용해 raw waveform을 합성하여 계산 비용을 크게 줄임 - 구조적으로 ConvNeXt module은
depthwise convolution과 2개의7×7 pointwise convolution, GELU activation으로 구성됨1×1 - 구체적으로 latent variable
가 주어지면, feature sequencez 를 얻기 위해 sampling을 수행함S=[s1,s2,...,sT],si∈RD
- : hidden representation dimension,D : acoustic frame 수T - 이후 feature는 iSTFT의 frequency bin 수
과 match 되도록 embedding layer를 통과함N - 결과적으로 ConvNeXt block의 stacked layer는 Fourier time-frequency coefficient
를 생성함:M=[m1,m2,...,mT],P=[p1,p2,...,pT]
(Eq. 2)[M,P]=ConvNeXts(Embed(S))
- : complex Fourier coefficient의 amplitude,mi∈RN : phasepi∈RN
- 구체적으로 latent variable
- iSTFT transform은 waveform
를 얻기 위해 사용됨:ˆy
(Eq. 3)ˆy=iSTFT(M,P) - 실제로 iSTFT 구현에는 Fast Fourier Transform (FFT) algorithm이 적용됨
- 이때 Fourier transform coefficient의 temporal resolution 는 raw waveform의 sample 수보다 훨씬 작으므로 합성 속도를 가속할 수 있음T
- Pre-trained Speech Model for Adversarial Training
- VALL-E, AudioLM에서와 같이 pre-trained large speech model은 rich acoustic, semantic information을 포함하므로 고품질 합성을 지원할 수 있음
- BUT, generator에 pre-trained large speech model을 적용하면 일반적으로 상당한 computational overhead가 발생하므로 빠른 합성에는 적합하지 않음
- 따라서 FLY-TTS는 adversarial training을 위한 discriminator로써 pre-trained WavLM을 활용해 해당 문제를 회피함
- 이를 통해 generator의 model size, 추론 속도에 영향을 주지 않으면서 self-supervised model에서 학습된 rich acoustic, semantic information을 반영하여 generator를 업데이트할 수 있음 - 구조적으로 WavLM은 wav2vec2를 backbone으로 하여 convolutional feature encoder와 transformer encoder로 구성된 self-supervised model
- 이때 speech waveform은 16kHz로 resampling 된 다음, WavLM을 통해 intermediate feature를 추출함
- 이후 prediction head는 feature를 기반으로 discriminative prediction을 수행함
- Prediction head는 StyleTTS2를 따라 Leaky ReLU activation을 사용하는 convolution network로 구성됨
- 여기서 FLY-TTS는 additional adversarial loss로써 least square loss를 사용함:
(Eq. 4)Ladv(Dw)=E(y,z)[(Dw(y)−1)2+(Dw(ˆy))2]
(Eq. 5)Ladv(G)=Ez[(Dw(ˆy)−1)2]
- : WavLM discriminator,Dw : FLY-TTS generatorG
- : real speech,y : synthesis speechˆy=G(z) - 결과적으로 WavLM으로 인한 computational overhead를 완화하기 위해 WavLM의 parameter를 수정하고 prediction head만 업데이트하므로 overfitting의 위험도 줄일 수 있음
3. Experiments
- Settings
- Dataset : LJSpeech
- Comparisons : VITS, MB-iSTFT-VITS
- Results
- RTF, parameter 수 측면에서 FLY-TTS는 기존보다 훨씬 효율적임

- 합성 품질 면에서도 FLY-TTS는 VITS 수준의 성능을 달성함

- Ablation study 측면에서 ConvNeXt와 WavLM discriminator가 대체되는 경우, 성능 저하가 발생함

반응형