티스토리 뷰
Paper/TTS
[Paper 리뷰] XTTS: A Massively Multilingual Zero-Shot Text-to-Speech Model
feVeRin 2024. 6. 30. 09:56반응형
XTTS: A Massively Multilingual Zero-Shot Text-to-Speech Model
- 대부분의 zero-shot multi-speaker text-to-speech 모델은 single language만 지원함
- XTTS
- 16개의 다양한 low/medium resource language로 task를 확장
- Multilingual training을 지원하고 voice cloning을 개선하여 빠른 training/추론 속도를 달성
- 논문 (INTERSPEECH 2024) : Paper Link
1. Introduction
- Zero-shot multi-speaker Text-to-Speech (ZS-TTS)는 few-second speech를 기반으로 unseen speaker에 대한 음성 합성을 목표로 함
- 대표적으로,
- SC-GlowTTS는 flow-based architecture를 통해 unseen speaker에 대한 similarity를 향상
- VALL-E는 ZS-TTS에 language modeling을 도입하고 EnCodec을 접목
- StyleTTS2의 경우, large speech-language model을 통해 style diffusion과 adversarial training을 적용
- P-Flow는 prompt text encoder와 low-matching decoder를 결합하는 방식을 활용
- BUT, 이러한 ZS-TTS 모델을 대부분 single language만 지원함
- 한편으로 multilingual TTS 모델로써 YourTTS, Mega-TTS2 등을 활용할 수 있지만, 지원 가능한 language 수가 극히 제한적임
- YourTTS는 3가지, Mega-TTS2는 2가지 language만을 사용함
- 대표적으로,
-> 그래서 다양한 low/medium language 합성을 지원하는 multilingual ZS-TTS 모델인 XTTS를 제안
- XTTS
- 총 16개의 language를 지원하는 multilingual ZS-TTS 모델
- English (EN), Spanish (ES), French (FR), German (DE), Italian (IT), Protuguese (PT), Polish (PL), Turkish (TR), Russian (RU), Dutch (NL), Czech (CS), Arabic (AR), Chinese (ZH), Hungarian (HU), Korean (KO), Japanese (JA) - Parallel training dataset 없이 cross-language ZS-TTS를 수행 가능
- 총 16개의 language를 지원하는 multilingual ZS-TTS 모델
< Overall of XTTS >
- Low/medium resource language를 지원하는 massively multilingual ZS-TTS 모델
- 결과적으로 다양한 language에 대해서 가장 우수한 성능을 달성
2. Method
- XTTS는 Tortoise 모델을 기반으로 하고, 크게 3가지 component로 구성됨
- VQ-VAE
- Vector Quantized-Variational AutoEncoder (VQ-VAE)는 mel-spectrogram을 input으로 하여 21.53Hz의 frame rate에서 8192개 code로 구성된 codebook으로 각 frame을 encoding 함
- 이때 VQ-VAE training 이후, 가장 자주 사용되는 첫 1024개의 code만 keeping 하여 codebook을 filtering 함
- 이러한 less frequent code를 filtering 함으로써 모델의 expressiveness를 향상할 수 있음
- Encoder
- XTTS는 decoder-only transformer로써 GPT-2 encoder를 채택함
- 먼저 6681-token custom Byte-Pair Encoding (BPE) tokenizer를 통해 얻은 text token을 input으로 receive 하고, output으로 VQ-VAE audio code를 예측함
- 이때 GPT-2 encoder는 conditioning encoder로 condition 됨
- Conditioning encoder는 mel-spectrogram을 input으로 receive 하고, 각 audio sample에 대해 32개의 1024-dimensional embedding을 생성함
- 구조적으로는 6개의 16-head Scaled Dot-Product Attention layer와 Perceiver Resampler로 구성되어 input audio length와 관계없이 fixed embedding을 생성함
- 한편으로 XTTS의 massive multilingual training에서 single-embedding을 사용하면 speaker cloning capability가 감소하는 것으로 나타남
- Korean, Japanese, Chinese language의 경우, Hangul-romanize, Cutlet, Pypinyin을 활용하여 각 text를 tokenization 이전에 romanize 함
- Decoder
- Decoder는 HiFi-GAN vocoder를 기반으로 구성되고, GPT-2 encoder의 latent vector를 receive 함
- 이때 VQ-VAE의 high compression rate로 인해, VQ-VAE code에서 audio를 직접 reconstruction 하면 pronunication issue와 artifact가 발생함
- 따라서 XTTS는 VQ-VAE code 대신 GPT-2 encoder latent space를 decoder input으로 사용 - 이후 decoder는 H/ASP의 speaker embedding으로 condition 되고, speaker embedding은 linear projection을 통해 각 upsampling layer에 추가됨
- 추가적으로 YourTTS와 같이 speaker similarity를 개선하기 위해 Speaker Consistency Loss (SCL)을 도입함
- 이때 VQ-VAE의 high compression rate로 인해, VQ-VAE code에서 audio를 직접 reconstruction 하면 pronunication issue와 artifact가 발생함
3. Experiments
- Settings
- Dataset : LibriTTS, LibriLight, Common Voice
- Comparisons : Tortoise, StyleTTS2, Mega-TTS2, HierSpeech++, YourTTS
- Results
- XTTS는 CER 측면에서 가장 우수한 성능을 달성
- English Evaluation
- HierSpeech++와 Mega-TTS2에 대해 user preference를 비교해 보면
- XTTS가 naturalness, acoustic quality 측면에서 더 선호되는 것으로 나타남
- Multilingual Evaluation
- XTTS는 모든 language에 대해서 가장 우수한 성능을 달성함
반응형
'Paper > TTS' 카테고리의 다른 글
댓글