티스토리 뷰
Paper/TTS
[Paper 리뷰] SimpleSpeech: Towards Simple and Efficient Text-to-Speech with Scalar Latent Transformer Diffusion Models
feVeRin 2024. 7. 12. 09:35반응형
SimpleSpeech: Towards Simple and Efficient Text-to-Speech with Scalar Latent Transformer Diffusion Models
- Diffusion 기반의 non-autoregressive text-to-speech 모델은 높은 효율성이 요구됨
- SimpleSpeech
- Scalar quantization을 수행하는 speech codec인 SQ-Codec을 활용
- Complex speech signal을 finite, compact scalar latent space로 mapping 하는 역할 - 이후 SQ-Codec의 scalar latent space에 transformer diffusion model을 적용
- Scalar quantization을 수행하는 speech codec인 SQ-Codec을 활용
- 논문 (INTERSPEECH 2024) : Paper Link
1. Introduction
- 대부분의 Text-to-Speech (TTS) system은 small-scale high-quality labeled speech dataset에 의존적이므로, training 측면에서 prosody prediction, G2P conversion과 같은 복잡한 pipeline이 요구됨
- 한편으로 AudioLM과 같이 large-scale speech data를 사용하는 경우 TTS pipeline을 크게 단순화할 수 있음
- 특히 Language Model (LM)인 VALL-E는 pre-trained EnCodec을 활용하여 speech signal을 discrete token으로 mapping 하고 autoregressive model을 통해 speech token을 얻는 방식으로 동작함
- BUT, expressive한 음성 합성 성능에 비해 unstable 하고 느린 추론 속도에 대한 문제가 존재함 - 해당 문제를 해결하기 위해 NaturalSpeech, SoundStorm, VoiceBox와 같은 Non-AutoRegressive (NAR) 방식을 고려할 수 있음
- BUT, training pipeline이 복잡하고 phoneme-acoustic alignment에 의존적임
- 특히 Language Model (LM)인 VALL-E는 pre-trained EnCodec을 활용하여 speech signal을 discrete token으로 mapping 하고 autoregressive model을 통해 speech token을 얻는 방식으로 동작함
- 이때 alignment information에 대한 의존성을 제거하는 경우, NAR TTS model을 크게 단순화할 수 있지만 다음 문제를 해결해야 함:
- Large-scale speech-only dataset을 기반으로 training 되어야 함
- NAR 방식으로 고품질 음성을 합성할 수 있어야 함
- Specific duration model 없이 duration alignment 문제를 해결해야 함
- 한편으로 AudioLM과 같이 large-scale speech data를 사용하는 경우 TTS pipeline을 크게 단순화할 수 있음
-> 그래서 위 문제들을 해결해 NAR TTS model을 단순화한 SimpleSpeech를 제안
- SimpleSpeech
- Large-scale unlabeled speech data를 활용하여 NAR TTS system을 training 하고, finite/compact latent space에서 speech data를 모델링
- 특히 complex speech signal을 compact scalar latent space로 mapping 하는 Scalar-Quantization speech Codec (SQ-Codec)을 도입하고,
- 이후 SQ-Codec의 scalar latent space에 대해 Scalar Latent Transformer Diffusion model을 적용
- 기존의 phone-level duration 대신 sentence duration을 사용
- 이때 condition과 target sequence 간의 fine-grained alignment를 implicitly learning 하기 위해 in-context conditioning strategy를 채택
- Large-scale unlabeled speech data를 활용하여 NAR TTS system을 training 하고, finite/compact latent space에서 speech data를 모델링
< Overall of SimpleSpeech >
- SQ-Codec과 Scalar Latent Transformer를 기반으로 large-scale speech dataset을 효율적으로 모델링
- 결과적으로 기존 방식들보다 빠른 속도로 고품질의 음성 합성을 지원
2. Method
- SimpleSpeech는 크게 SQ-Codec과 Scalar Transformer Diffusion으로 구성됨
- Text Encoder and Speaker Encoder
- 먼저 논문은 SimpleSpeech를 training하기 위해 large-scale speech-only dataset을 활용함
- 이를 위해서는 speech sample에 대한 text label이 필요하므로, ASR model인 Whisper-base model을 사용하여 transcript를 얻음
- 이후 pre-trained language model을 사용하여 textual representation을 추출하고, 해당 textual representation을 TTS의 conditional information으로 활용함
- 이때 zero-shot voice cloning을 위해 XLSR-53의 첫 번째 layer를 사용하여 speaker timbre를 나타내는 global embedding을 추출
- 이를 위해서는 speech sample에 대한 text label이 필요하므로, ASR model인 Whisper-base model을 사용하여 transcript를 얻음
- Sentence Duration
- FastSpeech2, NaturalSpeech 등의 기존 TTS model은 주로 phone-level duration을 모델링하기 위해 duration predictor를 활용하므로 training pipeline이 복잡해짐
- 따라서 SimpleSpeech는 GPT-3.5-Turbo와 같은 LLM의 in-context learning을 사용하여 sentence-level duration을 모델링함
- LLM은 sentence의 word 수와 prior knowledge를 기반으로 sentence reading time을 쉽게 추정할 수 있기 때문 - 결과적으로 sentence-level duration을 얻은 다음, word와 latent feature 간의 alignment를 implicitly learning 하도록 하여 음성 합성에 대한 diversity를 향상함
- Training stage에서는 waveform length를 기반으로 duration을 직접 얻을 수 있음
- 여기서 논문은 StableAduio를 따라 timing module을 활용하여 duration을 global embedding으로 encode 함 - 추론 stage에서는 LLM에 의해 예측된 noisy sequence의 length를 따라 duration을 예측한 다음, timing module로 전달함
- Training stage에서는 waveform length를 기반으로 duration을 직접 얻을 수 있음
- 따라서 SimpleSpeech는 GPT-3.5-Turbo와 같은 LLM의 in-context learning을 사용하여 sentence-level duration을 모델링함
- SQ-Codec
- Residual Vector Quantization (RVQ) 기반의 audio codec은 복잡한 loss design이 필요함
- 따라서 논문은 RVQ를 대체하는 scalar quantization을 사용하여 복잡한 training trick 없이 reconstruction loss와 adversarial loss 만으로 training 되도록 함
- 이때 scalar quantization은 complex speech signal을 diffusion model에 적합한 finite, compact latent space로 mapping 할 수 있음
- $\mathbf{h}\in \mathcal{R}^{T*d}$가 codec encoder의 output feature를 나타낸다고 하자
- $T, d$ : 각각 frame 수, vector dimension - 그러면 모든 vector $\mathbf{h}_{i}$에 대해 parameter-free scalar quantization module을 사용하여 $\mathbf{h}_{i}$를 fixed scalar space로 quantization할 수 있음:
(Eq. 1) $\mathbf{h}_{i} =\text{torch.tanh}(\mathbf{h}_{i}),\,\,\, \mathbf{s}_{i} =\text{torch.round}(\mathbf{h}_{i}*S)/S$
- $S$ : scalar space의 scope를 결정하는 hyper-parameter
- 여기서 rounding operation을 통해 gradient를 얻기 위해, VQ-VAE와 같은 straight-through estimator를 사용 - 결과적으로 scalar quantization은 $\tanh$ function을 사용하여 feature value를 $[-1,1]$로 mapping 한 다음, rounding operation을 통해 range value를 $2*S+1$로 reduce함
- 이때 얻어지는 value domain을 scalar latent space라고 함
- $\mathbf{h}\in \mathcal{R}^{T*d}$가 codec encoder의 output feature를 나타낸다고 하자
- Encoder and Decoder
- SQ-Codec에서 encoder는 5개의 convolution block으로 구성되고 각 block은 2개의 causal 1D-convolutional layer와 1개의 downsampling layer를 가짐
- Downsample stride는 $[2,2,4,4,5]$로 설정되어 time-dimension을 따라 320배의 downsampling을 수행함 - Decoder는 encoder를 반전한 다음, stride convolution 대신 transposed convolution을 사용
- SQ-Codec에서 encoder는 5개의 convolution block으로 구성되고 각 block은 2개의 causal 1D-convolutional layer와 1개의 downsampling layer를 가짐
- Discriminator and Training Loss
- Multi-Scale Discriminator를 사용하여 SQ-Codec의 training을 수행함
- 그러면 loss function은 discriminator의 adversarial loss와 time/frequency domain 모두에 대한 reconstruction loss $\mathcal{L}_{rec}$로 구성됨
- $\mathcal{L}_{rec}$는 reconstructed wavefor과 ground-truth 간의 $L1$ loss, STFT spectrogram과 ground-truth 간의 MSE loss를 포함
- Scalar Latent Transformer Diffusion Models
- 앞선 SQ-Codec을 기반으로 speech data를 scalar latent space에 mapping한 다음, latent diffusion model을 활용하여 speech data 모델링을 수행함
- 이때 scalar quantization은 각 element의 value range를 효과적으로 제한하므로, simple sampling space를 얻을 수 있음 - 구조적으로 scalar latent transformer diffusion model은:
- Transformer-based Diffusion Backbone
- GPT2-like transformer backbone을 사용하여 12개의 attention layer, 8개의 attention head, 768 model dimension을 가짐 - In-Context Conditioning
- Time step $t$와 condition $c$의 feature를 input sequence의 prefix sequence로 append 하여 사용하고, final block 이후에는 output sequence에서 conditioning sequence를 제거함
- 이를 통해 구조 변경 없이 standard GPT-like structure를 활용할 수 있음 - Scalar Latent Diffusion
- Latent Diffusion Model (LDM)은 complex data distribution에 효과적이지만, SimpleSpeech에서는 SQ-Codec으로 얻어진 finite/compact scalar latent space를 고려해야 함
- 따라서 Scalar Latent Diffusion network는 Gaussian distribution을 scalar latent space로 transfer 하도록 training 됨
- 이때 DDPM의 training strategy를 따라 MSE loss를 적용함 - 한편으로 final output이 scalar latent space에 속하는지 확인하기 위해 scalar quantization operation을 통해 final prediction을 제한함:
(Eq. 2) $\hat{\mathbf{x}}_{0}=SQ(\theta(\mathbf{x}_{T},T,c))$
- $\theta$ : neural network, $T$ : timestep
- $\mathbf{x}_{T}$ : Gaussian distribution의 sampling feature, $c$ : condition information
- Transformer-based Diffusion Backbone
3. Experiments
- Settings
- Dataset : LibriSpeech
- Comparisons
- Codec : EnCodec, DAC, HiFi-Codec
- TTS : VALL-E, Pheme TTS, XTTS, E3TTS, NaturalSpeech
- Results
- Performance of SQ-Codec Model
- 기존 codec 모델과 비교하여 논문의 SQ-Codec이 가장 우수한 성능을 보임
- Ablation Study of SQ-Codec Model
- SQ-Codec은 $S, d$의 크기를 늘릴수록 성능이 좋아지는 것으로 나타남
- Performance of SimpleSpeech
- 기존 TTS 모델과 비교하여 SimpleSpeech는 가장 우수한 성능을 달성함
- MOS 측면에서도 NaturalSpeech, E3TTS 수준의 성능을 보임
- Ablation Study of SimpleSpeech
- Ablation study 측면에서 기존 component를 대체하는 경우 성능 저하가 발생함
반응형
'Paper > TTS' 카테고리의 다른 글
댓글