티스토리 뷰

반응형

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 당 $2^{16} =65536$의 probability를 output 해야 함
    • 특히 audio sampling rate가 1만을 초과하는 경우, sequence length가 상당히 길어지므로 raw audio 합성을 더욱 어려워짐
    • 이를 해결하기 위해서는 integer value와 sequence length를 compress 하는 speech qunatization이 필요함
      1. 대표적으로 $\mu$-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. $\mu$-law transformation을 처리하는 time step을 줄일 수 있음
    • 결과적으로 VALL-E는 pre-trained neural codec인 EnCodec을 tokenizer로 채택함
      1. EnCodec은 convolutional encoder-decoder model으로써, 24kHz input waveform에 대해 sampling rate가 $320\times$ 줄어든 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\times 8$ entry를 가지는 matrix가 됨
      - $750=\frac{24000\times 10}{320}$ : downsampled time step, $8$ : quantizer 수
    • 한편으로 높은 bitrate는 더 많은 quantizer 수와 더 나은 reconstruction 품질에 해당함
      - e.g.) 12k bitrate에 대한 EnCodec은 16개의 quantizer가 필요하고, 10초의 waveform은 $750\times 16$ entry를 가지는 matrix가 됨

Neural Audio Codec

3. VALL-E

- Problem Formulation: Regarding TTS as Conditional Codec Language Modeling

  • $\mathbf{y}$를 audio sample, $\mathbf{x}=\{x_{0},x_{1},...,x_{L}\}$을 해당하는 phoneme transcription이라고 했을 때, dataset $\mathcal{D}=\{\mathbf{x}_{i}, \mathbf{y}_{i}\}$와 같이 주어짐
    • 먼저 pre-trained neural codec을 사용해 각 audio sample을 $\mathrm{EnCodec}(\mathbf{y})=\mathbf{C}^{T\times 8}$의 discrete acostic code로 encoding 함
      1. 여기서 $\mathbf{C}$ : two-dimensional acoustic code matrix, $T$ : downsampled utternace length
      2. 이후 각 acoustic code matrix row-vector $\mathbf{c}_{t}$는 frame $t$에 대한 8개의 code를 represent 하고, 각 acoustic code matrix의 column-vector $\mathbf{c}_{:,j}$는 $j$-th codebook의 code sequence를 represent 함
        - 이때 $j\in\{1,...,8\}$
      3. Quantization 이후, neural codec decoder는 $\mathrm{DeCodec}(\mathbf{C})\approx \hat{\mathbf{y}}$와 같이 waveform을 reconstruction 함
    • 특히, zero-shot TTS를 위해서는 unseen speaker에 대해 고품질 음성을 합성하는 모델이 필요하므로, 논문은 zero-shot TTS를 conditional codec language modeling task로 취급함
    • 이를 위해 $\max p(\mathbf{C}|\mathbf{x},\tilde{\mathbf{C}})$의 optimization objective를 가지고 phoneme sequence $\mathbf{x}$와 acoustic prompt matrix $\tilde{\mathbf{C}}^{T'\times 8}$에 따라 condition 된 acoustic code matrix $\mathbf{C}$를 생성하는 neural language model을 training 함
      - $\tilde{\mathbf{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 $\mathbf{c}_{:,1}$의 discrete token에 대해 autoregressive (AR) decoder-only model을 training 함
      1. 이는 phoneme squence $\mathbf{x}$와 acoustic prompt $\tilde{\mathbf{C}}_{:,1}$에 따라 condition 됨:
        (Eq. 1) $p(\mathbf{c}_{:,1}|\mathbf{x},\tilde{\mathbf{C}}_{:,1};\theta_{AR})=\prod_{t=0}^{T}p(\mathbf{c}_{t,1}| \mathbf{c}_{<t,1},\tilde{\mathbf{c}}_{:,1},\mathbf{x};\theta_{AR})$
      2. 이때 VALL-E는 deconder-only LM이므로 $\tilde{\mathbf{c}}_{:,1}$과 $\mathbf{c}_{:,1}$의 concatenation은 전체 sequence가 되고, training 중에 이들을 distinguish 하거나 special token을 삽입하지 않음
        - 추론 중에는 prefix $\tilde{\mathbf{c}}_{:,1}$이 주어지는 동안, $\mathbf{c}_{:,1}$만을 예측함
    • 다음으로, 두 번째부터 마지막 quantizer까지의 discrete token $\mathbf{c}_{:,j\in[2,8]}$에 대해 non-autoregressive (NAR) language model을 training 함
      1. Token들은 NAR 방식으로 서로 access 할 수 없으므로, speaker identity를 constrain 하기 위해 acoustic prompt matrix $\tilde{\mathbf{C}}$를 acoustic prompt로 사용함
      2. 따라서 모델은 phoneme sequence $\mathbf{x}$, acoustic prompt $\tilde{\mathbf{C}}$, previous codebook $\mathbf{C}_{:,<j}$에 따라 예측된 acoustic token으로 condition 됨:
        (Eq. 2) $p(\mathbf{C}_{:,2:8}|\mathbf{x},\tilde{\mathbf{C}};\theta_{NAR})=\prod_{j=2}^{8}p(\mathbf{c}_{:,j}|\mathbf{C}_{:,<j},\mathbf{x},\tilde{\mathbf{C}};\theta_{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를 $\mathcal{O}(T)$에서 $\mathcal{O}(1)$로 줄일 수 있음
      3. 결과적으로, $\mathbf{C}$에 대한 예측은 다음과 같이 모델링 됨:
        (Eq. 3) $p(\mathbf{C}|\mathbf{x},\tilde{\mathbf{C}};\theta)=p(\mathbf{c}_{:,1}|\tilde{\mathbf{C}}_{:,1},\mathbf{x}, \theta_{AR})\prod_{j=2}^{8}p(\mathbf{c}_{:,j}|\mathbf{c}_{:,<j},\mathbf{x},\tilde{\mathbf{C}};\theta_{NAR})$ 
  • Autoregressive Codec Language Modeling
    • Autoregressive language model은 first quantizer에서 token을 생성하고, 구조적으로는 phoneme embedding $W_{x}$, acoustic embedding $W_{a}$, transformer decoder, prediction layer로 구성됨 
      1. 이때 specific content가 포함된 음성을 생성하기 위해, phoneme sequence를 language model의 phoneme prompt로 사용함
        - 즉, input은 $\mathbf{x}$와 $\mathbf{c}_{:,1}$의 concatentation으로 구성되고, 각 token 뒤에는 2개의 special $\text{<EOS>}$ token이 추가됨
      2. 다음으로 prompt token과 input token에 대해 개별적으로 sinuous position embedding을 계산함
      3. Causal transformer model에서 각 token $\mathbf{c}_{t,1}$은 $(\mathbf{x},\mathbf{c}_{\leq t,1})$에 attend 할 수 있음
      4. 최종적으로 모델은 first codebook에서 next token의 probability를 최대화하도록 최적화되고, output projection layer의 parameter를 acoustic embedding $W_{a}$의 parameter와 share 함
    • AR 모델에서는 training 시 prompt로 audio clip을 explicitly extract 하지 않음
      - 특히 training process는 pure causal language model training으로써, 모든 prefix sequence $\mathbf{c}_{<t,1}$은 sequence $\mathbf{c}_{\geq t,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\in[2,8]$을 random sampling 함 
      1. 그러면 모델은 $i$-th quantizer codebook의 acoustic token을 최대화하도록 training 됨
      2. 즉, stage 1에서 $i-1$까지의 acoustic token이 embed 되어 input으로 summed up 됨:
        (Eq. 4) $e_{c_{t,j}}=W_{a}^{j}\odot c_{t,j}$
        (Eq. 5) $\mathbf{e_{c_{t}}}=\sum_{j=1}^{i-1}e_{c_{t,j}}$

        - $\odot$ : index selection
    • 한편으로 phoneme sequence는 language model의 prompt로 취급할 수 있음
      - 특히 VALL-E는 주어진 speaker의 unique voice를 clone 하기 위해, enrolled speech의 acoustic token을 acoustic prompt로 사용함
    • 이를 위해, $\tilde{\mathbf{C}}^{T\times 8}$과 같은 neural codec을 사용하여 enrolled speech를 tokenize 함 
      1. 그러면 8개의 codebook으로부터의 embedded representation은 acoustic prompt $\mathbf{e_{\tilde{c}_{t}}}=\sum_{j=1}^{8}e_{\tilde{c}_{t,j}}$로 summed up 됨 
      2. $i$-th codebook에서 acoustic token을 예측하기 위한 transformer input은 $(\mathbf{e_{x}}, \mathbf{e_{\tilde{c}}},\mathbf{e_{c_{:,<i}}})$의 concatenation으로 구성됨
        - Positional embedding은 prompt와 acoustic sequence에 대해 개별적으로 계산됨
      3. 이후 current stage $i$에서 Adaptive Layer Normalization을 사용하여 network에 다음과 같이 inject 함:
        - 즉, $\mathrm{AdaLN}(h,i)=a_{i}\mathrm{LayerNorm}(h)+b_{i}$
        - $h$ : intermediate activation, $a_{i}, b_{i}$ : 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 $\tilde{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

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/12   »
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 31
Total
Today
Yesterday