티스토리 뷰

반응형

AdaSpeech: Adaptive Text to Speech for Custom Voice


  • TTS adaptation에서 custom voice를 활용하기 위해서는 2가지 과제가 있음
    - Adaptation 모델은 source speech data와 상당히 다른 다양한 acoustic condition을 처리할 수 있어야 함

    - 음성 품질을 유지하면서 적은 memory 사용량을 가지도록 각 target speaker에 대한 adaptation parameter가 작아야 함
  • AdaSpeech
    • 고품질 합성과 효율적인 voice customization을 지원하는 adaptive TTS 모델
    • 다양한 acoustic condition을 처리하기 위해 utterance, phoneme level 모두에서 acoustic information을 모델링
    • 음성 품질과 adaptation parameter 간의 trade-off를 위해 mel-spectrogram decoder에 conditional layer normalization을 도입
  • 논문 (ICRL 2021) : Paper Link

1. Introduction

  • Text-to-Speech (TTS)는 text에서 natural, intelligible voice를 합성하는 것을 목표로 함
    • TTS 모델은 single-speaker recording에 대해 우수한 성능을 달성하고 multi-speaker corpora를 사용하여 multi-speaker TTS 시나리오로 확장되고 있음
    • 특히 custom voice는 다양한 application에서 사용되고 있고, 이때 TTS 모델은 일반적으로 adaptation data가 거의 없는 personalized voice에 adapt 해야 함
      - BUT, adapted voice의 naturalness, similarity를 반영할 수 있는 data는 거의 없음
    • 추가적으로 custom voice에는 몇 가지 과제가 존재
      1. User custom recording은 TTS 모델 학습에 사용된 source data와 acoustic condition이 상당히 다름
        - For example, adaptation data는 다양한 speaking prosody, style, emotion 등을 가짐

        - 결과적으로 acoustic condition의 mismatch로 인해 모델을 generalize 하기 어렵고 adaptation 품질이 저하됨
      2. Source TTS 모델을 새로운 음성에 adapt 할 때, fine-tuning parameter와 음성 품질 간의 trade-off가 존재함
        - Adaptation parameter가 많을수록 품질은 향상되지만, 모델은 더 많은 memory 비용을 요구함
    • 기존의 TTS adaptation 방식들은 위 문제를 완전히 해결하지 못함
      - Fine-tuning 방식은 합성 품질을 향상할 수는 있지만 adaptation parameter 수가 크게 증가됨
      - Speaker embedding, speaker encoder를 사용하는 방법은 parameter 측면에서 효율적이지만 adapataion 품질이 나쁨

-> 그래서 효율적이고 고품질의 voice customization을 지원하는 adaptive TTS 모델인 AdaSpeech를 제안

 

  • AdaSpeech
    • Custom voice를 위해 3-stage pipeline을 활용
      1. Pre-training stage에서는
        - Large-scale multi-speaker dataset를 통해 TTS 모델을 학습하여 TTS 모델이 adaptation에 도움이 되는 다양한 text와 speaking voice를 cover 하도록 함
      2. Fine-tuning stage에서는
        - Source TTS 모델은 다양한 acoustic condition의 제한된 adaptation data에 대한 일부 parameter 만을 fine-tuning 함
      3. Inference stage에서는
        - TTS 모델의 unadapted part (모든 custom voice에 대해 share 하는 parameter)와 adapted part (특정 custom voice에 대한 adapted parameter)를 모두 사용하여 추론을 수행함
    • 이를 위해 non-autoregressive TTS 모델을 기반으로 AdaSpeech를 설계
      1. Acoustic condition modeling
        - Pre-training과 fine-tuning에서 utterance-/phoneme-level 모두에 대한 acoustic condition을 모델링
        - 두 개의 acoustic encoder를 사용하여 target speech로부터 utterance-/phoneme-level vector를 추출
        - 이후 mel-spectrogram decoder의 input으로 사용하여 global/local acoustic condition을 represent 함
      2. Conditional layer normalization
        - Layer normalization에서 scale, bias vector를 생성하기 위한 conditional information으로 speaker embedding을 사용하여 mel-spectrogram decoder를 수정
        - Fine-tuning 시에는 conditional layer normalization에 관련된 parameter만을 adapt 하여 memory 사용량을 줄이면서 고품질의 합성이 가능

< Overall of AdaSpeech >

  • 다양한 acoustic condition을 처리하기 위해 utterance, phoneme level 모두에서 acoustic information을 모델링
  • Mel-spectrogram decoder에 conditional layer normalization을 도입하여 품질과 memory 효율성을 향상
  • 결과적으로 우수한 adaptation 성능을 달성

2. AdaSpeech

  • AdaSpeech의 structure는 non-autoregressive TTS 모델인 FastSpeech2를 backbone으로 사용함
    • 기본적인 backbone은 phoneme encoder, mel-spectrogram decoder, variance adaptor로 구성됨
    • 이때 AdaSpeech는 custom voice 문제를 해결하기 위해 2가지 additional component를 설계
      1. Acoustic conditional modeling을 통해 다양한 granularity로 adaptation speech의 다양한 acoustic condition을 capture 함
      2. Decoder에서 conditional layer normalization을 사용하여 적은 parameter 만으로도 효율적인 adaptation과 높은 품질을 지원

Overall of AdaSpeech

- Acoustic Condition Modeling

  • Adaptation data는 다양한 prosody, style, accent 등을 가질 수 있으므로 acoustic condition은 source speech data와 크게 다를 수 있음
    • 이를 해결하기 위해서는 source TTS 모델의 adaptability (generalizability)를 향상해야 함
      - 특히 기존의 방식들은 acoustic condition이 충분히 제공되지 않기 때문에 모델이 training data를 memorize 하고 overfit 되는 경향이 있음
      - 따라서 AdaSpeech는 acoustic condition을 input으로 제공하여 더 나은 generalization과 text-to-speech mapping을 학습하도록 함
    • 다양한 granularity로 acoustic condition을 모델링하기 위해, 아래 그림과 같이 acoustic condition을 다양한 level로 categorize 함
      1. Speaker level
        - Speaker의 전체적인 characteristic을 capture 하기 위한 coarse-grained acoustic condition
      2. Utterance level
        - Speaker의 각 utterance의 fine-grained acoustic condition
      3. Phoneme level
        - Accent, pitch, prosody 등과 같은 utterance의 각 phoneme에 대한 fine-grained acoustic condition
    • 이때 speaker ID (embedding)의 경우 multi-speaker TTS에서 speaker-level acoustic condition을 capture하기 위해 일반적으로 사용되므로, AdaSpeech도 기본적으로 speaker embedding을 포함
    • Utterance-level, phoneme-level acoustic condition modeling
      1. Utterance level modeling
        - Acoustic encoder를 사용하여 reference speech에서 vector를 추출한 다음, 이를 expand 하고 phoneme hidden sequence에 추가하여 utterance-level acoustic condition을 제공함
        - Utterance-level acoustic encoder는 convolution layer와 mean pooling layer로 구성됨
        - Reference speech는 학습 시에는 target speech를 사용하고 추론 시에는 random chosen speech를 사용
      2. Phoneme level modeling
        - 또 다른 acoustic encoder를 사용하여 target speech에서 phoneme-level vector를 추출하고, 이를 phoneme hidden sequence에 추가하여 phoneme-level acoustic condition을 제공함
        - 음성에서 phoneme-level information을 추출하기 위해 phoneme과 mel-spectrogram sequence 간의 alignment에 따라 동일한 phoneme에 해당하는 frame을 average 하여 phoneme sequence length로 변환
        - 추론 시에는 phoneme-level acoustic predictor를 사용하여 phoneme-level vector를 예측
    • AdaSpeech의 acoustic condition modeling은 source TTS 모델을 다양한 adaptation data에 대해 잘 adapt 시킴으로써 합성 품질을 보장할 수 있음

(a) Acoustic Condition Modeling (b) Utterance-level encoder (c) Phoneme-level encoder (d) Phoneme-level predictor

- Conditional Layer Normalization

  • 적은 adaptation parameter를 사용하면서 높은 adaptation 품질을 달성하는 것은 어려움
    • 특히 AdaSpeech의 backbone인 FastSpeech2는 transformer block을 기반으로 함
      - 각 transformer block은 self-attention network와 feed-forward network로 이루어짐
      - Self-attention의 query, key, value의 matrix mulitplication과 two-layer feed-forward network는 모두 parameter-intensive 하므로 adaptation에 비효율적임
    • 이때 layer normalization을 self-attention, feed-forward network에 도입하면, lightweight learnable scale vector $\gamma$와 bias vector $\beta$를 통해 최종 예측에 큰 영향을 줄 수 있음:
      $LN(x)=\gamma \frac{x-\mu}{\sigma}+\beta$
      - $\mu, \sigma$ : 각각 hidden vector $x$의 평균, 분산
  • Small conditional network를 사용하여 해당 speaker characteristic으로 layer normalization에서 scale, bias vector를 결정할 수 있다면,
    • 새로운 음성에 adapting 할 때 해당 conditional network를 fine-tuning 할 수 있고, 결과적으로 adaptation 품질을 보장하면서 adaptation parameter를 줄일 수 있음
    • 따라서 conditional network는 speaker embedding $E^{s}$를 input으로 사용하고, 각각 scale, bias vector를 output 하는 2개의 linear layer $W_{c}^{\gamma}, W_{c}^{\beta}$로 구성됨:
      (Eq. 1) $\gamma_{c}^{s}=E^{s}*W_{c}^{\gamma},\,\, \beta_{c}^{s}=E^{s}*W_{c}^{\beta}$
      - $s$ : speaker ID, $c \in [C]$ : decoder에 $C$개의 conditional layer normalization를 가지고 각각은 서로 다른 conditional matrix를 사용함
    • 각 layer에는 transformer의 self-attention 및 feed-forward network에 해당하는 2개의 conditional layer normalization이 있고, 최종 output에는 additional layer normalization이 있으므로, decoder layer의 수는 $(C-1)/2$

Conditional Layer Normalization

- Pipeline of AdaSpeech

  • 아래의 [Algorithm 1]을 따라 AdaSpeech의 pre-training, fine-tuning, inference를 수행
    • Fine-tuning 시에는 decoder의 각 conditional layer normalization과 speaker embedding $E^{s}$의 두 matrix $W_{c}^{\gamma}, W_{c}^{\beta}$만 fine-tuning
      - 이때 utterance-level, phoneme-level acoustic encoder와 phoneme-level acoustic predictor를 포함한 다른 parameter들은 fix 됨
    • 추론 시에는 각 conditional layer normalization의 $W_{c}^{\gamma}, W_{c}^{\beta}$는 큰 parameter를 가지기 때문에 직접 사용되지 않음
      - 대신 $E^{s}$가 추론에서 fix 되어 있다는 점을 활용하여 (Eq. 1)에 따라 speaker embedding $E^{s}$로부터 각 scale/bias vector $\gamma_{c}^{s}, \beta_{c}^{s}$를 계산
      - 이를 통해 AdaSpeech는 memory를 효과적으로 절약할 수 있음

AdaSpeech의 Pre-training, Fine-tuning, Inference Algorithm

3. Experiments

- Settings

  • Dataset : LibriTTS, VCTK, LJSpeech
  • Comparisons
    - GT : ground-truth
    - GT mel+Vocoder : ground-truth mel-spectrogram을 기반으로 MelGAN vocoder를 적용
    - Baseline (spk emb) : adaptation 시 speaker embedding을 fine-tuning 하는 FastSpeech2
    - Baseline (decoder) : adaptation 시 전체 decoder를 fine-tuning 하는 FastSpeech2 

- Results

  • The Quality of Adaptive Voice
    • 전체적으로 cross-domain dataset (LJSpeech & VCTK)에 adaptation 하는 것이 in-domain dataset (LibriTTS)에 adaptation 하는 것보다 더 어려움
    • Baseline (spk emb)와 비교하여 AdaSpeech는 더 우수한 MOS, SMOS 결과를 보임
    • 마찬가지로 Baseline (decoder)와 비교했을 때도, AdaSpeech는 더 높은 MOS, SMOS를 보임
      - 특히 parameter 측면에서 AdaSpeech는 더 효율적인 구성을 가짐

합성 품질 비교

  • Ablation Study
    • Utterance-level, phoneme-level acoustic modeling, layer normalization을 제거해 보면,
    • 모든 경우에서 AdaSpeech의 성능이 저하됨

Ablation Study 결과

  • Analyses on Acoustic Condition Modeling
    • t-SNE를 통해 LibriTTS에서 여러 speaker에 대한 utterance-level acoustic encoder에서 추출된 vector를 분석해 보면
    • 동일한 speaker의 서로 다른 utternace는 cluster 되어 있지만, acoustic condition 측면에서 차이를 보임
    • 아래 그림에서 따로 표시된 분홍색, 파란색 점의 경우, 짧고 emotional 한 utterance에 해당하므로 서로 다른 speaker에 속하더라도 서로 가깝게 나타남
  • Varying Adaptation Data
    • VCTK, LJSpeech에서 다양한 adaptation data에 대한 합성 품질을 비교해 보면
    • Adaptation data가 감소하면 MOS가 저하되는 것으로 나타남
      - 특히 adaptation data가 10 sentence 미만인 경우 더 크게 저하됨

(a) Acoustic Modeling, (b) Adaptation Data에 대한 결과

  • Analyses on Conditional Layer Normalization
    • Conditional Layer Noramlization (CLN)의 효과를 비교해 보면
    • CLN을 LN+fine-tune scale/bias, LN+fine-tune others로 각각 대체했을 때 성능이 저하되는 것으로 나타남
      - 결과적으로 CLN을 사용하는 것이 AdaSpeech 성능 향상에 유용

Conditional Layer Normalization에 대한 합성 품질 비교

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Total
Today
Yesterday