티스토리 뷰

반응형

VoiceCraft: Zero-Shot Speech Editing and Text-to-Speech in the Wild


  • Speech editing, zero-shot text-to-speech를 위해 token infilling neural codec language model을 구성할 수 있음
  • VoiceCraft
    • Transformer decoder architecture와 causal masking, delayed stacking을 결합하여 existing sequence 내에서 generation을 수행하는 token rearrangement를 도입
    • 추가적으로 speech editing evaluation을 위한 RealEdit dataset을 제공
  • 논문 (ACL 2024) : Paper Link

1. Introduction

  • Speech signal을 learnable sequence로 tokenizing 하고, resulting unit sequence에 대해 language model을 training 하면 speech를 text로 변환할 필요 없이 spoken utterance에 대해 NLP task를 직접 수행할 수 있음 
    • 특히 AudioLM과 같은 residual vector quantization (RVQ) 기반의 neural codec language model (NCLM)은 long-term coherent speech continuation에서 뛰어난 생성 품질을 보이고 있음
    • 여기서 zero-shot text-to-speech (TTS)는 target voice의 short reference와 target transcript를 사용하여 unseen voice를 합성하는 것을 목표로 함
      - 대표적으로 VALL-E는 zero-shot TTS를 transcript-conditioned speech continuation으로 framing 하는 NCLM을 구성하여 우수한 성능을 달성
    • 한편으로 speech editing은 target transcript와 match하도록 utterance의 word나 phrase를 수정하는 것을 목표로 함 
      1. 기존에는 single TTS model과 voice conversion model을 결합하여 desired speech segment를 생성한 다음, unedited part와 concatenate 하는 방법을 사용함
        - BUT, prosody mismatch와 boundary artifact로 인해 unnatural한 결과가 발생
      2. 최근의 UniCATS, VoiceBox는 surrounding speech context에 따라 generation을 condition하는 방식으로 speech editing model을 개선함

-> 그래서 zero-shot TTS, speech editing task 모두에서 활용할 수 있는 unified NCLM인 VoiceCraft를 제안

 

  • VoiceCraft
    • Causal masking step과 delayed stacking step으로 구성된 2-step token rearrangement procedure를 활용
      1. Causal masking은 speech codec sequence에서 bidirectional context로 autoregressive generation을 가능하게 함
      2. Delayed stacking은 효율적인 multi-codebook modeling을 지원함
    • 추가적으로 speech editing을 evaluate하기 위해 RealEdit dataset을 제작

< Overall of VoiceCraft >

  • Speech editing, Zero-shot TTS를 수행할 수 있는 neual codec language model
  • 결과적으로 각 task에 대해 뛰어난 합성 품질을 달성

2. Method

  • VoiceCraft는 neural codec의 output token을 rearranging 하여 speech editing을 위한 sequence infilling과 zero-shot TTS를 위한 continuation을 left-to-right language modeling으로 cast 함
    • Rearrangement는 2-step으로 구성됨 
      1. Causal Masking : bidirectional context로 autoregressive continuation/infilling을 지원
      2. Delayed Stacking : 효율적인 multi-codebook modeling을 지원
    • VoiceCraft는 decoder-only transformer를 사용하여 autoregressive sequence prediction으로 training 됨 

VoiceCraft를 통한 Speech Editing

- Rearrange Step 1: Causal Masking

  • 아래 그림과 같이 input으로 continuous speech waveform이 주어지면, VoiceCraft는 먼저 EnCodec을 사용하여 T×K codec matrix X로 quantize 함
    • T를 temporal frame 수, K를 RVQ codebook 수라고 할 때, X(X1,...,XT)로 나타낼 수 있음
      - 여기서 Xt는 timestep t에서 서로 다른 codebook의 code를 나타내는 length K의 vector
      - Codebook k의 code가 codebook k1의 residual을 modeling 한다고 가정함
    • Training 중에 논문은 some token span (Xt0,...,Xt1)를 randomly mask 한 다음, unmask 된 모든 token을 condition으로 해당 masked token을 autoregressively predict 하는 것을 목표로 함 
      1. 이때 t1<T인 경우, autoregressive generation을 수행할 때 future output에 대한 condition을 수행할 수 없다는 문제가 있음
      2. 따라서 masking 할 span을 sequence 끝으로 이동하여 causal 하게 X의 masking을 modify 해야 함
        - 이를 통해 해당 token을 infilling 할 때, past/future의 unmasked token을 모두 condtion 할 수 있음
    • 그러면 모든 masked span을 sequence 끝으로 이동시키는 방식으로 해당 procedure를 multiple masked span으로 확장할 수 있음 
      1. 먼저 masking 할 span 수 nPoison(λ)에서 sampling 한 후, 각 span에 대해 span length lUniform(1,L)을 sampling 함 
      2. 이후 서로 overlap 되지 않는다는 constraint하에서 X의 span location을 randomly select 함 
      3. Selected n span은 mask token M1,...,Mn로 대체됨 
      4. 결과적으로 masked span 내의 original token은 sequence X의 끝으로 이동되고, 각 span 앞에는 해당 mask token이 위치함 
    • e.g.) X=(X1,...,X6)이라고 하고 X2에서 X4까지 single span을 mask 한다고 하자
      1. 그러면 original sequence XY=(Y1;M1,Y2;M1;Y3;)으로 rearrange 됨
        - Y1=(X1),Y2=(X5,X6),Y3=(X2,X3,X4)
      2. Y1,Y2를 unmasked span, Y3를 masked span이라고 하면 end of span EOS token은 masked span의 끝인 Y3에 추가되고, end of utterance EOU token은 utterance 끝인 Y2에 추가됨

- Rearrange Step 2: Delayed Stacking

  • Causal masking token rearrangement 이후, rearranged matrix Y의 각 timestep은 K token의 vector가 됨 
    • MusicGen에서는 stacked RVQ token에 대해 autoregressive generation을 수행할 때, time t에서의 codebook k의 예측이 동일한 timestep의 codebook k1의 예측에 따라 condition 되는 delay pattern을 도입함
    • 이와 비슷하게 VoiceCraft는 span YsLs×K shape라고 가정하고, delay pattern을 적용해 Zs=(Zs,0,Zs,1,...,Zs,Ls+K1로 rearrange 함 
      1. 이때 t[Ls+K1]에서 Zs,t:
        (Eq. 1) Zs,t=(Ys,t,1,Ys,t+1,2,...,Ys,tK+1,K)
        - [N] : integer set {0,1,...,N}
      2. Ys,tk+1,k : matrix Ys의 coordinate (tk+1,k)에 위치한 token
        - 즉, (tk+1)-th timestep의 k-th codebook entry
    • t[Ls+K1],Zs,tK valid token이 포함되도록 special learnable [empty] token을 도입하고, Ys,tk+1,k[empty],t{s:s<ksk+1>Ls}를 정의함 
    • 여기서 mask token은 span의 일부가 아니고, delayed stacking 중에 변경되지 않음
      - 결과적으로 논문은 delayed stacking의 resulting matrix를 Z=(Z1,M1,Z2,M2,...,MS12,ZS)로 정의
      - YS span으로 구성된다고 가정

Token Rearrangement Procedure & Modeling Framework

- Modeling

  • VoiceCraft는 transformer decoder를 사용하여 speech W의 transcript를 condition으로 Z를 autoregressive modeling 함
    • Concatenation operator ;에 대해 decoder의 input을 [W;Z]라고 하자
      1. Codec matrix Z 내 span s의 timestep t에서 model은 Zs,t의 모든 K token을 동시에 예측함
      2. 즉, K MLP head를 사용하여 transformer의 final hidden state를 K codebook 각각에 대해 하나씩 K logit set로 project 함
        - 이때 prediction은 transcript WZs,t 이전 Z에 있는 모든 token Hs,t에 따라 condition 됨
    • 결과적으로 transformer decoder는 Z의 factorized conditional distribution을 모델링함:
      (Eq. 2) Pθ(Z|W)=stPθ(Zs,t|W,Hs,t)
      (Eq. 3) =stKk=1Pθ(Zs,t,k|W,Hs,t)
      - θ : model parameter
    • (Eq. 2)는 time에 따른 autoregressive factorization, (Eq. 3)은 independence assumption이 주어진 codebook에 대한 factorization
      - 논문에서는 W,Hs,t가 주어졌을 때, Zs,tK RVQ code는 서로 independent 하다고 가정
    • (Eq. 3)의 token-level probability formulation을 사용하여 training loss를 negative log-likelihood로 얻을 수 있음:
      (Eq. 4) L(θ)=logPθ(Z|W)=Kk=1Lk(θ)
    • 경험적으로 first residual codebook에 later codebook 보다 더 많은 weight를 주면 성능을 더욱 향상할 수 있으므로, final loss는:
      (Eq. 5) Lθ=Kk=1αkLk(θ)
      - (αk)Kk=1 : tunable hyperparameter
      - 이때 mask token과 [empty] token을 제외한 모든 token에 대한 prediction loss를 계산

- Inference

  • Speech Editing
    • Speech recording R과 transcript W가 있을 때, VoiceCraft는 R의 relevant span만 modify 하여 target transcript W과 match 되도록 함
      - WW의 일부 word가 insert, substitute, delete 된 version이라고 가정함
    • 해당 task는 training과 비슷하지만 다음의 차이점을 가짐:
      1. Training 중에 input transcript는 단순히 original recording W를 사용하지만, 추론 시에는 modified transcript W를 사용함
      2. Training 중에는 mask 할 span이 randomly choice 되지만, 추론 시에는 original transcript와 target transcript를 비교하여 mask 할 word를 식별함
        - 이후 original transript의 word-level forced alignment를 적용하여 mask word에 해당하는 codec token span을 식별
    • 한편으로 edited speech와 unedited speech 간의 smooth transition을 보장하려면, span 주변의 neighboring word도 co-articulation effect를 모델링하기 위해 modify 되어야 함
      - 이를 위해 small margin hyperparameter ϵ을 사용하여 left, right side 모두에서 mask span length를 ϵ 만큼 extend 함
    • Autoregressive generation 중에는 editing place에 mask token이 insert 된 target transcript를 VoiceCraft에 제공하고, 해당 sequence를 autoregressively continue 하도록 하여 masked span을 fill 함
      - 이후 생성된 codec token은 utterance의 correct location으로 splice back 되고, encoder-decoder network를 사용하여 전체 codec token sequence를 waveform으로 mapping 함
  • Zero-Shot TTS
    • VoiceCraft의 zero-shot TTS는 original utterance의 끝에서 insertion edit을 수행하는 것에 해당함
    • 이때 모델에는 target transcript와 transcription이 포함된 voice prompt가 제공됨
      - 해당 input은 서로 concatenate 되고 autoregressive 하게 target transcript에 대한 codec sequence를 생성함

RealEdit dataset의 예시

3. Experiments

- Settings

  • Dataset : GigaSpeech, LibriTTS, RealEdit (위 표 참고)
  • Comparisons : FluentSpeech, VALL-E, XTTS, YourTTS

Speech Editing Dataset 구성

- Results

  • Ablation Study
    • Model size가 클수록 VoiceCraft의 성능은 향상됨
    • Coedbook에 heavy weighting을 부여하면 WER, MCD 같은 intelligibility 성능을 개선할 수 있지만, F0, energy 같은 prosody는 저하됨
      - 논문에서는 최적 configuration으로써 830M의 (5,1,0.5,0.1) weight를 선택

Ablation Study

  • Speech Editing Results
    • VoiceCraft는 FluentSpeech와 비교하여 더 우수한 speech editing 성능을 달성함

Speech Editing 성능

  • Side-by-side 비교에서도 VoiceCraft가 더 선호되는 것으로 나타남

Side-by-Side Test

  • Original speech와의 비교에서도 큰 차이를 보이지 않음

Original Speech와의 비교

  • Zero-Shot TTS Results
    • Zero-shot 측면에서도 VoiceCraft는 가장 우수한 성능을 달성함

Zero-Shot TTS 성능

 

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