티스토리 뷰
Paper/Language Model
[Paper 리뷰] VoiceCraft: Zero-Shot Speech Editing and Text-to-Speech in the Wild
feVeRin 2024. 7. 20. 11:12반응형
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를 수정하는 것을 목표로 함
-> 그래서 zero-shot TTS, speech editing task 모두에서 활용할 수 있는 unified NCLM인 VoiceCraft를 제안
- VoiceCraft
- Causal masking step과 delayed stacking step으로 구성된 2-step token rearrangement procedure를 활용
- Causal masking은 speech codec sequence에서 bidirectional context로 autoregressive generation을 가능하게 함
- Delayed stacking은 효율적인 multi-codebook modeling을 지원함
- 추가적으로 speech editing을 evaluate하기 위해 RealEdit dataset을 제작
- Causal masking step과 delayed stacking step으로 구성된 2-step token rearrangement procedure를 활용
< 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으로 구성됨
- Causal Masking : bidirectional context로 autoregressive continuation/infilling을 지원
- Delayed Stacking : 효율적인 multi-codebook modeling을 지원
- Causal Masking : bidirectional context로 autoregressive continuation/infilling을 지원
- VoiceCraft는 decoder-only transformer를 사용하여 autoregressive sequence prediction으로 training 됨
- Rearrangement는 2-step으로 구성됨

- Rearrange Step 1: Causal Masking
- 아래 그림과 같이 input으로 continuous speech waveform이 주어지면, VoiceCraft는 먼저 EnCodec을 사용하여
codec matrixT×K 로 quantize 함X 를 temporal frame 수,T 를 RVQ codebook 수라고 할 때,K 는X 로 나타낼 수 있음(X1,...,XT)
- 여기서 는 timestepXt 에서 서로 다른 codebook의 code를 나타내는 lengtht 의 vectorK
- Codebook 의 code가 codebookk 의 residual을 modeling 한다고 가정함k−1 - Training 중에 논문은 some token span
를 randomly mask 한 다음, unmask 된 모든 token을 condition으로 해당 masked token을 autoregressively predict 하는 것을 목표로 함(Xt0,...,Xt1) - 이때
인 경우, autoregressive generation을 수행할 때 future output에 대한 condition을 수행할 수 없다는 문제가 있음t1<T - 따라서 masking 할 span을 sequence 끝으로 이동하여 causal 하게
의 masking을 modify 해야 함X
- 이를 통해 해당 token을 infilling 할 때, past/future의 unmasked token을 모두 condtion 할 수 있음
- 이때
- 그러면 모든 masked span을 sequence 끝으로 이동시키는 방식으로 해당 procedure를 multiple masked span으로 확장할 수 있음
- 먼저 masking 할 span 수
을n 에서 sampling 한 후, 각 span에 대해 span lengthPoison(λ) 을 sampling 함l∼Uniform(1,L) - 이후 서로 overlap 되지 않는다는 constraint하에서
의 span location을 randomly select 함X - Selected
span은 mask tokenn 로 대체됨⟨M1⟩,...,⟨Mn⟩ - 결과적으로 masked span 내의 original token은 sequence
의 끝으로 이동되고, 각 span 앞에는 해당 mask token이 위치함X
- 먼저 masking 할 span 수
- e.g.)
이라고 하고X=(X1,...,X6) 에서X2 까지 single span을 mask 한다고 하자X4 - 그러면 original sequence
는X 으로 rearrange 됨Y=(Y1;⟨M1⟩,Y2;⟨M1⟩;Y3;)
-Y1=(X1),Y2=(X5,X6),Y3=(X2,X3,X4) 를 unmasked span,Y1,Y2 를 masked span이라고 하면 end of spanY3 token은 masked span의 끝인EOS 에 추가되고, end of utteranceY3 token은 utterance 끝인EOU 에 추가됨Y2
- 그러면 original sequence
- Rearrange Step 2: Delayed Stacking
- Causal masking token rearrangement 이후, rearranged matrix
의 각 timestep은Y token의 vector가 됨K - MusicGen에서는 stacked RVQ token에 대해 autoregressive generation을 수행할 때, time
에서의 codebookt 의 예측이 동일한 timestep의 codebookk 의 예측에 따라 condition 되는 delay pattern을 도입함k−1 - 이와 비슷하게 VoiceCraft는 span
가Ys shape라고 가정하고, delay pattern을 적용해Ls×K 로 rearrange 함Zs=(Zs,0,Zs,1,...,Zs,Ls+K−1 - 이때
에서t∈[Ls+K−1] 는:Zs,t
(Eq. 1)Zs,t=(Ys,t,1,Ys,t+1,2,...,Ys,t−K+1,K)
- : integer set[N] {0,1,...,N} : matrixYs,t−k+1,k 의 coordinateYs 에 위치한 token(t−k+1,k)
- 즉, -th timestep의(t−k+1) -th codebook entryk
- 이때
에∀t∈[Ls+K−1],Zs,t valid token이 포함되도록 special learnableK token을 도입하고,[empty] 를 정의함Ys,t−k+1,k≜[empty],∀t∈{s:s<k∪s−k+1>Ls} - 여기서 mask token은 span의 일부가 아니고, delayed stacking 중에 변경되지 않음
- 결과적으로 논문은 delayed stacking의 resulting matrix를 로 정의Z=(Z1,⟨M1⟩,Z2,⟨M2⟩,...,⟨MS−12⟩,ZS)
- 는Y span으로 구성된다고 가정S
- MusicGen에서는 stacked RVQ token에 대해 autoregressive generation을 수행할 때, time

- Modeling
- VoiceCraft는 transformer decoder를 사용하여 speech
의 transcript를 condition으로W 를 autoregressive modeling 함Z - Concatenation operator
에 대해 decoder의 input을; 라고 하자[W;Z] - Codec matrix
내 spanZ 의 timesteps 에서 model은t 의 모든Zs,t token을 동시에 예측함K - 즉,
MLP head를 사용하여 transformer의 final hidden state를K codebook 각각에 대해 하나씩K logit set로 project 함K
- 이때 prediction은 transcript 와W 이전Zs,t 에 있는 모든 tokenZ 에 따라 condition 됨Hs,t
- Codec matrix
- 결과적으로 transformer decoder는
의 factorized conditional distribution을 모델링함:Z
(Eq. 2)Pθ(Z|W)=∏s∏tPθ(Zs,t|W,Hs,t)
(Eq. 3)=∏s∏t∏Kk=1Pθ(Zs,t,k|W,Hs,t)
- : model parameterθ - (Eq. 2)는 time에 따른 autoregressive factorization, (Eq. 3)은 independence assumption이 주어진 codebook에 대한 factorization
- 논문에서는 가 주어졌을 때,W,Hs,t 의Zs,t RVQ code는 서로 independent 하다고 가정K - (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(θ)
- : tunable hyperparameter(αk)Kk=1
- 이때 mask token과 token을 제외한 모든 token에 대한 prediction loss를 계산[empty]
- Concatenation operator
- Inference
- Speech Editing
- Speech recording
과 transcriptR 가 있을 때, VoiceCraft는W 의 relevant span만 modify 하여 target transcriptR 과 match 되도록 함W′
- 는W′ 의 일부 word가 insert, substitute, delete 된 version이라고 가정함W - 해당 task는 training과 비슷하지만 다음의 차이점을 가짐:
- Training 중에 input transcript는 단순히 original recording
를 사용하지만, 추론 시에는 modified transcriptW 를 사용함W′ - Training 중에는 mask 할 span이 randomly choice 되지만, 추론 시에는 original transcript와 target transcript를 비교하여 mask 할 word를 식별함
- 이후 original transript의 word-level forced alignment를 적용하여 mask word에 해당하는 codec token span을 식별
- Training 중에 input transcript는 단순히 original recording
- 한편으로 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 함
- Speech recording
- Zero-Shot TTS
- VoiceCraft의 zero-shot TTS는 original utterance의 끝에서 insertion edit을 수행하는 것에 해당함
- 이때 모델에는 target transcript와 transcription이 포함된 voice prompt가 제공됨
- 해당 input은 서로 concatenate 되고 autoregressive 하게 target transcript에 대한 codec sequence를 생성함

3. Experiments
- Settings

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

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

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

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

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

반응형