티스토리 뷰
Paper/TTS
[Paper 리뷰] YourTTS: Toward Zero-Shot Multi-Speaker TTS and Zero-Shot Voice Conversion for Everyone
feVeRin 2024. 2. 5. 17:52반응형
YourTTS: Towards Zero-Shot Multi-Speaker TTS and Zero-Shot Voice Conversion for Everyone
- Zero-Shot multi-speaker Text-to-Speech를 위해 multilingual approach가 필요
- YourTTS
- VITS를 기반으로 multi-speaker, multilingual task로 확장
- Low-resource zero-shot 환경에서 우수한 합성 품질을 달성하고 1분 미만으로 fine-tuning이 가능
- 논문 (ICML 2022) : Paper Link
1. Introduction
- 대부분의 Text-to-Speech (TTS) 모델은 single speaker의 음성에만 특화되어 있음
- 이때 Zero-Shot multi-speaker TTS (ZS-TTS)는 학습 중에 사용되지 않은 몇 초의 음성만으로 새로운 speaker에 맞는 음성을 합성하는 task를 의미
- ZS-TTS task를 위해 여러 방법들이 제시되고 있음
- Tacotron2는 Generalized End-to-End (GE2E) Loss로 학습된 speaker encoder에 target speaker에 대한 speaker embedding을 적용
- Attentron은 attention mechanism을 활용해 다양한 reference sample에서 style을 추출
- ZSM-SS는 speaker embedding, pitch, energy 등으로 normalization architecture를 condition 함
- SC-Glow-TTS는 ZS-TTS task를 위해 flow-based model을 활용
- 여러 방식들이 제안되었지만 ZS-TTS task에서 seen/unseen speaker 사이의 similarity 차이는 해결되지 않음
- 특히 ZS-TTS 모델은 학습을 위해 많은 양의 speaker를 필요로 하므로 low-resource language에서 고품질 합성이 어려움
- 이때 학습에 사용된 seen speaker와는 target speaker가 characteristic 차이가 클 경우 더 어려워짐 - ZS-TTS task와 비슷하게 multilingual TTS도 multiple language 학습을 목표로 발전했음
- Multilingual TTS 모델의 경우 동일한 음성을 유지하면서 target language를 변경하는 code-switching을 활용함
- 따라서 이러한 방식은 하나의 language에 대한 speaker를 다른 language의 speaker로 변환할 수 있으므로 ZS-TTS에서 유용할 수 있음
- 특히 ZS-TTS 모델은 학습을 위해 많은 양의 speaker를 필요로 하므로 low-resource language에서 고품질 합성이 어려움
-> 그래서 multi-speaker, multilingual 학습을 가능하게 하는 Zero-Shot TTS 모델인 YourTTS를 제안
- YourTTS
- VITS를 기반으로 multi-speaker task로 모델을 확장
- Low-resource zero-shot 환경에서 우수한 합성 품질을 달성하고 1분 미만의 시간으로 fine-tuning이 가능
- 일반적인 영어 TTS에서도 우수한 성능을 달성
< Overall of YourTTS >
- Zero-Shot multi-speaker TTS에 multilingual approach를 도입
- 학습 시 target language에서 하나의 speaker 만을 사용하여 높은 similarity를 가지는 zero-shot conversion이 가능
- 추가적으로 YourTTS는 model을 fine-tuning 하는데 1분 미만의 시간만을 필요로 함
2. YourTTS Model
- YourTTS는 VITS를 기반으로 zero-shot multi-speaker, multilingual 학습을 위해 모델을 수정
- 우선 YourTTS는 phoneme 대신 raw text를 input으로 사용
- 이를 통해 Grapheme-to-Phoneme 변환이 없는 language에 대해 보다 realistic 한 결과를 얻을 수 있음
- 구조적으로 YourTTS는
- VITS와 마찬가지로 transformer-based text encoder를 채택
- 이때 multilingual training을 위해,
- Trainable 4-dimensional language embedding을 각 input character의 embedding에 concatenate
- Transformer block 수를 10개로 늘리고, hidden channel 수를 196개로 늘림
- decoder로는 4개의 affine coupling layer stack을 사용함 - Vocoder로는 HiFi-GAN을 사용
- 이때 multilingual training을 위해,
- YourTTS는 end-to-end 학습을 위해 Variational AutoEncoder (VAE)를 통해 TTS 모델을 vocoder와 연결함
- 이를 위해 posterior encoder를 채택
- Posterior encoder는 16개의 non-casual WaveNet residual block으로 구성
- Posterior encoder는 linear spectrogram을 input으로 하여 latent variable을 예측 - 해당 latent variable은 vocoder와 flow-based decoder의 입력으로 사용되므로 mel-spectrogram과 같은 intermediate representation이 필요하지 않음
- 이러한 end-to-end 학습을 통해 vocoder와 TTS 모델이 각각 학습되는 two-stage 방식에 비해 YourTTS는 더 우수한 성능을 달성할 수 있음
- 추가적으로 input text로부터 다양한 rhythm의 음성을 합성할 수 있도록 stochastic duration predictor도 사용됨
- 이를 위해 posterior encoder를 채택
- Zero-shot multi-speaker 생성을 위해,
- Flow-based decoder, posterior encoder, external speaker embedding의 모든 affine coupling layer를 conditioning 함
- Coupling layer의 residual block과 posterior encoder에서 Global conditioning을 적용 - External speaker embedding은 text encoder output, decoder output과 더한 다음, duration predictor와 vocoder로 전달됨
- 이때 element-wise summation 이전에 차원을 일치시키기 위해 linear projection layer를 사용
- Flow-based decoder, posterior encoder, external speaker embedding의 모든 affine coupling layer를 conditioning 함
- Final loss로써, Speaker Consistency Loss (SCL)을 채택
- Pre-trained speaker encoder를 사용하여 생성된 audio에 대한 cosine similarity를 최대화하는 ground-truth speaker embedding을 추출
- 이때 SCL은:
$L_{SCL} = -\frac{\alpha}{n} \cdot \sum_{i}^{n} cos-sim \left( \phi(g_{i}), \phi(h_{i})\right)$
- $\phi(\cdot)$ : speaker embedding을 output 하는 function
- $cos-sim$ : cosine similarity function
- $\alpha$ : 양의 실수, $n$ : batch size
- $g$ : ground-truth audio, $h$ : 생성된 speaker audio
- VITS와 마찬가지로 transformer-based text encoder를 채택
- 학습 과정에서
- Posterior encoder는 linear spectrogram과 speaker embedding을 input으로 사용해 latent variable $z$를 예측
- 이후 latent variable과 speaker embedding은 HiFi-GAN vocoder의 input으로 사용됨
- 이때 end-to-end 학습을 위해 constant length를 가지는 partial sequence를 $z$로부터 random sampling - Flow-based decoder는 prior $P_{Z_{p}}$와 관련된 latent $z$와 speaker embedding을 condition 함
- 여기서 $P_{Z_{p}}$ 분포를 text encoder output과 align 하기 위해 Monotonic Alignment Search (MAS)를 사용 - Duration predictor는 input speaker와 language embedding, MAS로 얻어진 duration을 input으로 사용함
- 이때 stochastic duration predictor는 phoneme duration의 log-likelihood의 variational lower bound로 최적화됨
- Posterior encoder는 linear spectrogram과 speaker embedding을 input으로 사용해 latent variable $z$를 예측
- 추론 과정에서
- 추론 시에는 MAS가 사용되지 않고, $P_{Z_{p}}$ 분포는 text encoder에 의해 예측되고 stochastic duration predictor의 inverse transform을 통해 변환됨
- 이를 통해 latent variable $z_{p}$는 분포 $P_{Z_{p}}$에서 sampling 됨 - Inverted flow-based decoder는 latent $z_{p}$와 speaker embedding을 input으로 하여 latent $z_{p}$를 vocoder input으로 사용되는 latent $z$로 변환
- 추론 시에는 MAS가 사용되지 않고, $P_{Z_{p}}$ 분포는 text encoder에 의해 예측되고 stochastic duration predictor의 inverse transform을 통해 변환됨
3. Experiments
- Settings
- Dataset : VCTK, LibriTTS(English), TTS-Portuguese Corpus (Portuguese), M-AILABS (French)
- Comparisons : Attentron, SC-GlowTTS
- YourTTS Variations
- System 1 : VCTK 만으로 학습 (monolingual)
- System 2 : VCTK, TTS-Portuguese로 학습 (bilingual)
- System 3 : VCTK, TTS-Portuguese, M-AILABS로 학습 (trilingual)
- System 4 : System 3을 기반으로 LibriTTS로 추가 학습
- Results
- VCTK에서는 MOS 측면에서 System 1, 2가 우수한 합성 품질을 보임
- 이때 SCL을 추가적으로 도입하는 경우 similarity가 향상됨 - LibriTTS에서는 System 4가 우수한 합성 품질을 보임
- MOS 측면에서는 System 1이 더 뛰어난 것으로 측정되었는데, 이는 System 1을 합성하는 데 사용된 VCTK dataset이 다른 dataset 보다 품질이 높기 때문 - Protuguese dataset인 MLS-PT에서는 System 3가 가장 우수한 것으로 나타남
- YourTTS는 speaker identity를 encoder에 제공하지 않으므로 encoder에서 예측한 분포는 speaker-independent 함
- 따라서 YourTTS는 posterior encoder, decoder, HiFi-GAN을 사용하여 voice conversion을 수행할 수 있음
- 이때 external speaker embedding으로 YourTTS를 condition 하므로 모델은 zero-shot voice conversion 환경에서 unseen speaker를 모방할 수 있음
- Intra-lingual Results
- English-to-English (EN-EN)의 결과를 살펴보면, YourTTS는 4.20 MOS의 합성 품질을 달성
- 대조적으로 AutoVC, NoiseVC 모델은 각각 3.54 MOS, 3.38 MOS를 기록 - Portuguese-to-Portuguese (PT-PT)에서도 YourTTS는 3.64의 우수한 합성 품질을 보임
- English-to-English (EN-EN)의 결과를 살펴보면, YourTTS는 4.20 MOS의 합성 품질을 달성
- Cross-lingual Results
- PT-EN conversion의 경우 상대적으로 MOS가 떨어지는 경향을 보임
- 이는 Portuguese 학습에 필요한 data가 충분하지 않기 때문 - 반대로 EN-PT conversion에서는 학습에 필요한 충분한 english dataset이 있기 때문에 큰 성능 저하가 발생하지 않음
- PT-EN conversion의 경우 상대적으로 MOS가 떨어지는 경향을 보임
- Speaker adaptation에 대한 실험 결과를 비교해 보면
- English에서는 male, female speaker에 상관없이 모두 우수한 합성 품질을 보임
- Portuguese에서는 zero-shot 환경에서 male, female speaker에 대한 합성 품질의 차이가 존재
- 이때 Fine-tuning을 적용하여 similarity를 높일 수 있음
반응형
'Paper > TTS' 카테고리의 다른 글
댓글