티스토리 뷰

반응형

VALL-E: Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers


  • Text-to-Speech를 위해 language modeling을 활용할 수 있음
  • VALL-E
    • Neural audio codec에서 파생된 discrete code를 사용하여 training 된 language model
    • 기존의 continuous signal regression이 아닌 conditional language modeling으로 text-to-speech를 접근
    • 특히 in-context learning capability를 제공하여 unseen speaker를 3초 이내의 acoustic prompt를 통해 personalized speech를 합성 가능
  • 논문 (Microsoft 2023) : Paper Link

1. Introduction

  • 기존의 cascaded text-to-speech (TTS) 모델은 일반적으로 intermediate representation으로써 mel-spectrogram을 활용하는 acoustic model과 vocoder로 구성됨
    • 한편으로 최신의 VITS는 single/multi-speaker 합성이 가능하지만, training을 위해서는 여전히 고품질의 clean speech가 요구됨
      - 즉, training set의 size가 상대적으로 작으므로 generalization의 한계가 존재함
    • 따라서 zero-shot scenario에서는 unseen speaker에 대해 similarity와 naturalness가 크게 저하되는 경향이 있음
      - 이를 해결하기 위해 기존에는 speaker adaptation, speaker encoding 등의 복잡한 pre-designed feature나 heavy structure engineering이 사용됨
    • BUT, zero-shot TTS의 궁극적인 성능 향상을 위해서는 최대한 크고 다양한 data로 training 하는 것이 필수적임
      - 실제로 160GB, 570GB, 1TB의 uncompressed data를 활용하여 language model의 성능이 크게 개선되고 있음

VALL-E와 기존 TTS 모델 비교

-> 그래서 large-scale multi-speaker speech data를 기반으로 한 language model-based TTS framework인 VALL-E를 제안

 

  • VALL-E
    • Zero-shot 합성을 위해 3초 이내의 recording에 대한 acoustic token과 phoneme prompt를 기반으로 conditioning을 수행해 speaker와 content information을 constraint함
    • 이후 생성된 acoustic token은 neural codec decoder로 전달되어 final waveform을 생성
      1. 특히 audio codec에서 파생된 discrete acoustic token을 사용하면 TTS를 conditional codec language modeling으로 처리할 수 있고, GPT와 같은 prompting-based large-model technique을 적용 가능 
      2. 추가적으로 acoustic token을 사용하면 추론 중에 sampling을 통해 다양한 합성 결과를 얻을 수 있음
    • 이때 training을 위해 7000명 이상의 unique speaker와 60k hours의 음성으로 구성된 large-scale data를 활용
      - 이러한 large data training을 통해 높은 generalization을 달성 가능

< Overall of VALL-E >

  • 기존 TTS의 mel-spectrogram을 audio codec code로 대체한 language model을 통해 strong in-context learning capability를 달성
  • Large-scale의 semi-supervised data를 사용하여 generalized TTS framework를 구축
  • 결과적으로 VALL-E는 동일한 input text에 대해 다양한 output을 생성할 수 있고, zero-shot scenario에서도 speaker similarity가 높은 음성을 생성 가능

2. Background: Speech Quantization

  • Audio는 일반적으로 16-bit integer value로 store 되므로 generative model은 raw audio를 합성하기 위해 time step 당 216=65536의 probability를 output 해야 함
    • 특히 audio sampling rate가 1만을 초과하는 경우, sequence length가 상당히 길어지므로 raw audio 합성을 더욱 어려워짐
    • 이를 해결하기 위해서는 integer value와 sequence length를 compress 하는 speech qunatization이 필요함
      1. 대표적으로 μ-law quantization은 각 time step을 256개의 value로 quantize 하여 고품질의 raw audio를 reconstruct 할 수 있음
      2. 그 외에도 vq-wav2vec, HuBERT 등의 self-supervised speech model을 활용할 수도 있음
        - Self-supervised model의 code는 content reconstruction이 가능하고, WaveNet보다 빠른 추론 속도를 보임
        - 특히 AudioLM은 해당 self-supervised model의 k-means token과 neural codec의 acoustic token을 모두 활용하여 고품질의 음성 합성 성능을 달성
    • 따라서 논문에서는 AudioLM의 방법론을 따라 neural codec을 활용하여 음성을 discrete token으로 represent 함
      - 이때 compression을 지원하는 audio codec은 waveform을 discrete acoustic token으로 encoding 하여 unseen speaker에 대해서도 고품질의 reconstruction이 가능함
    • 이러한 audio codec을 통한 quantization은 다음의 장점을 가짐:
      1. 풍부한 speaker, acoustic information을 포함하고 있으므로, reconstruction 시 기존 HuBERT code보다 speaker identity를 더 잘 유지할 수 있음
      2. VQ-based method와 같이 spectrum에서 동작하는 vocoder에 대한 추가적인 training이 필요 없음 
        - 대신 discrete token을 waveform으로 변환하는 off-the-shelf codec decoder를 사용하면 됨
      3. μ-law transformation을 처리하는 time step을 줄일 수 있음
    • 결과적으로 VALL-E는 pre-trained neural codec인 EnCodec을 tokenizer로 채택함
      1. EnCodec은 convolutional encoder-decoder model으로써, 24kHz input waveform에 대해 sampling rate가 320× 줄어든 75Hz의 embedding을 생성함
      2. 이후 각 embedding은 Residual Vector Quantization (RVQ)에 의해 모델링 됨
        - 아래 그림과 같이 1024 entry가 있는 8 hierarchy quantizer를 사용
        - 즉, 24kHz audio reconstruction을 위한 6k bitrate의 EnCodec에 해당
      3. 최종적으로 모든 quantizer의 discrete code를 사용하여 EnCodec의 convolutional decoder는 real-valued embedding을 생성하고, 24kHz의 waveform을 reconstruction 함
    • 여기서 EnCodec에 10초의 waveform이 주어지면 discrete representation은 750×8 entry를 가지는 matrix가 됨
      - 750=24000×10320 : downsampled time step, 8 : quantizer 수
    • 한편으로 높은 bitrate는 더 많은 quantizer 수와 더 나은 reconstruction 품질에 해당함
      - e.g.) 12k bitrate에 대한 EnCodec은 16개의 quantizer가 필요하고, 10초의 waveform은 750×16 entry를 가지는 matrix가 됨

Neural Audio Codec

3. VALL-E

- Problem Formulation: Regarding TTS as Conditional Codec Language Modeling

  • y를 audio sample, x={x0,x1,...,xL}을 해당하는 phoneme transcription이라고 했을 때, dataset D={xi,yi}와 같이 주어짐
    • 먼저 pre-trained neural codec을 사용해 각 audio sample을 EnCodec(y)=CT×8의 discrete acostic code로 encoding 함
      1. 여기서 C : two-dimensional acoustic code matrix, T : downsampled utternace length
      2. 이후 각 acoustic code matrix row-vector ct는 frame t에 대한 8개의 code를 represent 하고, 각 acoustic code matrix의 column-vector c:,jj-th codebook의 code sequence를 represent 함
        - 이때 j{1,...,8}
      3. Quantization 이후, neural codec decoder는 DeCodec(C)ˆy와 같이 waveform을 reconstruction 함
    • 특히, zero-shot TTS를 위해서는 unseen speaker에 대해 고품질 음성을 합성하는 모델이 필요하므로, 논문은 zero-shot TTS를 conditional codec language modeling task로 취급함
    • 이를 위해 max의 optimization objective를 가지고 phoneme sequence x와 acoustic prompt matrix C~T×8에 따라 condition 된 acoustic code matrix C를 생성하는 neural language model을 training 함
      - C~는 enrolled recording을 input으로 하여 동일한 neural codec으로부터 얻어짐
      - 그러면 neural language model은 각각 phoneme sequence와 acoustic prompt에서 content와 speaker information을 추출하는 방법을 학습해야 함
    • 결과적으로 추론 시 phoneme sequence와 unseen speaker의 recording (3초 이내)이 주어지면,
      1. Training 된 language model로 해당 content와 speaker voice가 포함된 acoustic code matrix를 추정하고,
      2. Neural codec decoder를 통해 고품질 합성을 수행

Overall of VALL-E

- Training: Conditional Codec Language Modeling

  • Neural speech codec을 사용하면 discrete audio representation을 활용할 수 있음
    • 이때 neural codec의 residual quantization으로 인해 token은 hierarchical structure를 가짐
      - 즉, previous quantizer의 token은 speaker ID와 같은 acoustic property를 recover 하고 consecutive quantizer는 fine acoustic detail을 학습함
    • 여기서 각 quantizer는 previous quantizer의 residual을 모델링하도록 training 되므로, 이를 위해 hierarchical 방식으로 2가지 language model을 설계함
    • 먼저 first quantizer c:,1의 discrete token에 대해 autoregressive (AR) decoder-only model을 training 함
      1. 이는 phoneme squence x와 acoustic prompt C~:,1에 따라 condition 됨:
        (Eq. 1) p(c:,1|x,C~:,1;θAR)=t=0Tp(ct,1|c<t,1,c~:,1,x;θAR)
      2. 이때 VALL-E는 deconder-only LM이므로 c~:,1c:,1의 concatenation은 전체 sequence가 되고, training 중에 이들을 distinguish 하거나 special token을 삽입하지 않음
        - 추론 중에는 prefix c~:,1이 주어지는 동안, c:,1만을 예측함
    • 다음으로, 두 번째부터 마지막 quantizer까지의 discrete token c:,j[2,8]에 대해 non-autoregressive (NAR) language model을 training 함
      1. Token들은 NAR 방식으로 서로 access 할 수 없으므로, speaker identity를 constrain 하기 위해 acoustic prompt matrix C~를 acoustic prompt로 사용함
      2. 따라서 모델은 phoneme sequence x, acoustic prompt C~, previous codebook C:,<j에 따라 예측된 acoustic token으로 condition 됨:
        (Eq. 2) p(C:,2:8|x,C~;θNAR)=j=28p(c:,j|C:,<j,x,C~;θNAR)
    • AR과 NAR 모델의 combination은 음성 품질과 추론 속도 간의 trade-off를 제공함
      1. 특히 생성된 음성의 speed는 enrolled recording과 일치해야 하지만, speaking speed는 매우 다양하므로 다양한 speaker에 대한 length predictor를 training 하는 것은 어려움
        - 반면 VALL-E에서 채택한 AR 모델은 acoustic sequence length prediction에 대한 flexibility를 가지므로 보다 natural 한 합성이 가능
      2. Consecutive stage의 경우, output slot 수가 first stage의 sequence length를 따르므로 NAR의 time complexity를 O(T)에서 O(1)로 줄일 수 있음
      3. 결과적으로, C에 대한 예측은 다음과 같이 모델링 됨:
        (Eq. 3) p(C|x,C~;θ)=p(c:,1|C~:,1,x,θAR)j=28p(c:,j|c:,<j,x,C~;θNAR) 
  • Autoregressive Codec Language Modeling
    • Autoregressive language model은 first quantizer에서 token을 생성하고, 구조적으로는 phoneme embedding Wx, acoustic embedding Wa, transformer decoder, prediction layer로 구성됨 
      1. 이때 specific content가 포함된 음성을 생성하기 위해, phoneme sequence를 language model의 phoneme prompt로 사용함
        - 즉, input은 xc:,1의 concatentation으로 구성되고, 각 token 뒤에는 2개의 special <EOS> token이 추가됨
      2. 다음으로 prompt token과 input token에 대해 개별적으로 sinuous position embedding을 계산함
      3. Causal transformer model에서 각 token ct,1(x,ct,1)에 attend 할 수 있음
      4. 최종적으로 모델은 first codebook에서 next token의 probability를 최대화하도록 최적화되고, output projection layer의 parameter를 acoustic embedding Wa의 parameter와 share 함
    • AR 모델에서는 training 시 prompt로 audio clip을 explicitly extract 하지 않음
      - 특히 training process는 pure causal language model training으로써, 모든 prefix sequence c<t,1은 sequence ct,1의 후반부에 대한 prompt로 처리됨
    • 추론 시 enrolled recording이 주어지면, 해당 recording의 phoneme sequence와 합성을 위한 phoneme sequence를 concatenate 해야 함
      - 이때 enrolled recording의 acoustic token sequence는 (Eq. 1)과 같이 AR decoding의 prefix로 사용됨
  • Non-Autoregressive Codec Language Modeling
    • 앞선 AR 모델을 통해 first quantizer code를 얻은 다음, NAR 모델을 사용하여 나머지 7개의 quantizer code를 생성함
      - 여기서 NAR 모델은 8개의 separate acoustic embedding을 가진다는 것을 제외하면 AR 모델과 유사함
    • 먼저 각 training step에서 training stage i[2,8]을 random sampling 함 
      1. 그러면 모델은 i-th quantizer codebook의 acoustic token을 최대화하도록 training 됨
      2. 즉, stage 1에서 i1까지의 acoustic token이 embed 되어 input으로 summed up 됨:
        (Eq. 4) ect,j=Wajct,j
        (Eq. 5) ect=j=1i1ect,j

        - : index selection
    • 한편으로 phoneme sequence는 language model의 prompt로 취급할 수 있음
      - 특히 VALL-E는 주어진 speaker의 unique voice를 clone 하기 위해, enrolled speech의 acoustic token을 acoustic prompt로 사용함
    • 이를 위해, C~T×8과 같은 neural codec을 사용하여 enrolled speech를 tokenize 함 
      1. 그러면 8개의 codebook으로부터의 embedded representation은 acoustic prompt ec~t=j=18ec~t,j로 summed up 됨 
      2. i-th codebook에서 acoustic token을 예측하기 위한 transformer input은 (ex,ec~,ec:,<i)의 concatenation으로 구성됨
        - Positional embedding은 prompt와 acoustic sequence에 대해 개별적으로 계산됨
      3. 이후 current stage i에서 Adaptive Layer Normalization을 사용하여 network에 다음과 같이 inject 함:
        - 즉, AdaLN(h,i)=aiLayerNorm(h)+bi
        - h : intermediate activation, ai,bi : stage embedding의 linear projection
    • AR 모델과 달리 NAR 모델에서는 각 token이 self-attention layer의 모든 input token에 attend 할 수 있음
    • 추가적으로 acoustic embedding layer와 output prediction layer의 parameter를 share 함
      - 즉, j-th prediction layer의 weight가 (j+1)-th acoustic embedding layer와 동일

Conditional Codec Language Modeling

- Inference: In-Context Learning via Prompting

  • Text-based langauage model에서 in-context learning은 additional parameter update 없이 unseen input에 대한 label을 예측하는 것을 의미
    • 특히 TTS의 경우, 모델이 fine-tuning 없이 unseen speaker에 대한 고품질 음성을 합성할 수 있다면 in-context learning capability를 가진다고 볼 수 있음
      - BUT, 기존 TTS 모델은 additional fine-tuning이 필요하거나 unseen speaker에 대해 낮은 성능을 보이기 때문에 in-context learning capability가 부족함
    • 한편으로 language model에서 in-context learning을 수행하려면 prompt가 필요하므로, 논문은 다음과 같이 prompt와 inference를 설계함
      1. 먼저 text를 phoneme sequence로 변환하고, recording을 acoustic matrix로 encoding 하여 phoneme prompt와 acoustic prompt를 얻음
      2. 이후 두 prompt 모두 AR, NAR 모델에서 사용됨
        - AR 모델의 경우, beam search를 사용했을 때 LM을 infinity loop로 이끌 수 있으므로 prompt에 따라 condition 된 sampling-based decoding을 사용
        - NAR 모델의 경우, greedy decoding을 사용하여 highest probability를 가지는 token을 선택함
      3. 최종적으로 neural codec decoder를 통해 8개의 code sequence에 따라 condition 된 waveform을 생성함
    • 여기서 acoustic prompt는 합성된 음성과 semantically relate 되거나 그렇지 않을 수 있으므로, 다음의 2가지 경우로 나누어짐:
      1. VALL-E
        - 주어진 content를 unseen speaker에 맞게 생성하는 것을 목표로, 모델에는 text sentence, speech segment와 해당 transcription이 제공됨
        - Speech의 transcription phoneme을 주어진 sentence의 phoneme sequence 앞에 phoneme prompt로 추가하고, speech c~:,1의 first layer acoustic token을 acoustic prefix로 사용함
        - 이후 phoneme prompt와 acoustic prefix를 사용하여 speaker의 voice를 cloning 하고, 주어진 text에 대한 acoustic token을 생성함
      2. VALL-E-continual
        - 전체 transcription과 utterance의 처음 3초 부분을 각각 phoneme과 acoustic prompt로 사용하여 모델이 continuation을 수행하도록 함
        - 추론 과정은 주어지는 speech와 생성된 결과가 semantically continuous 하다는 것을 제외하면 앞선 VALL-E setting과 동일함

4. Experiments

- Settings

  • Dataset
    - Training : LibriLight
    - Evaluation : LibriSpeech, VCTK
  • Comparisons : YourTTS

- Results

  • LibriSpeech Evaluation
    • LibriSpeech에 대한 zero-shot TTS 성능을 확인해 보면, VALL-E가 가장 우수한 정량적 성능을 보임

LibriSpeech에서의 성능

  • SMOS, CMOS 측면에서도 VALL-E는 ground-truth 수준의 성능을 달성함

LibriSpeech에서의 MOS 비교

  • Ablation study 측면에서 NAR 모델의 성능을 비교해 보면, prompt가 없는 모델은 가장 낮은 성능을 보임
    - 한편으로 phoneme prompt를 추가하는 경우, WER이 크게 향상되어 content 생성에 큰 영향을 주는 것으로 나타남

NAR 모델에 대한 Ablation Study

  • AR 모델 측면에서 acoustic prompt를 제거하는 경우, speaker identity 측면에서 성능 저하가 발생함

AR 모델에 대한 Ablation Study

  • VCTK Evaluation
    • VCTK 측면에서도 마찬가지로 VALL-E가 가장 뛰어난 성능을 달성함

VCTK에서의 결과

  • 주관적 성능 평가 측면에서도 VALL-E는 YourTTS 보다 높은 성능을 보임

VCTK에서의 MOS 비교

  • Diversity Analysis
    • 기존의 TTS 모델은 mel-spectrogram 생성이 각 step에 대한 reconstruction을 기반으로 하기 때문에, input text와 output waveform 사이의 strong one-to-one mapping을 가짐
    • 반면 VALL-E는 sampling을 사용하여 discrete token을 생성하므로, 동일한 input text에 대해 다양한 output을 만들어낼 수 있음
    • 실제로 아래 그림의 (a)와 같이 VALL-E의 output은 동일한 문장에 대해 서로 다른 length와 phrase duration을 가지는 음성을 생성함
      - (b)의 경우에는 accent가 다른 음성을 생성하는 것을 확인할 수 있음

Diversity Analysis

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2025/04   »
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