티스토리 뷰
Paper/Conversion
[Paper 리뷰] MaskVCT: Masked Voice Codec Transformer for Zero-Shot Voice Conversion with Increased Controllability via Multiple Guidances
feVeRin 2026. 3. 13. 13:54반응형
MaskVCT: Masked Voice Codec Transformer for Zero-Shot Voice Conversion with Increased Controllability via Multiple Guidances
- 기존의 Voice Conversion model은 fixed conditioning scheme에 의존함
- MaskVCT
- Continuous/quantized linguistic feature를 활용하여 intelligibility와 speaker similarity를 향상하고 prosody control을 위해 pitch contuour를 채택
- 특히 multiple Classifier-Free Guidance를 통해 multi-factor control을 지원
- 논문 (ICASSP 2026) : Paper Link
1. Introduction
- Voice Conversion (VC)는 original linguistic content는 preserve 하면서 source utterance를 target speaker로 transform 하는 것을 목표로 함
- 이를 위해서는 linguistic content를 pitch, timbre와 disentangle 할 수 있어야 함
- 특히 최근의 NaturalSpeech3는 Codec-based Language Model을 활용하여 additional fine-tuning이 필요 없는 zero-shot VC를 수행함
- BUT, 해당 zero-shot VC model 역시 source pitch information을 discard 하지 못하는 information leakgage 문제가 여전히 존재함
-> 그래서 zero-shot VC model의 controllability와 disentanglement를 개선한 MaskVCT를 제안
- MaskVCT
- Temporal-quantized syllabic feature를 사용하여 각 segment에서 pitch modulation, phoneme selection, accent variation에 대한 flexibility를 제공
- 추가적으로 multiple Classifier-Free Guidance (CFG)를 combine 하여 controllability를 향상
< Overall of MaskVCT >
- Syllabic representation과 multiple CFG를 활용한 zero-shot VC model
- 결과적으로 기존보다 우수한 성능을 달성
2. Method
- Linguistic Conditioning
- Self-supervised speech representation은 time-aligned, fast-varying phonetic feature를 제공하므로 VC model이 source-aligned speech를 reproduce 할 수 있음
- 즉, source-agnostic pitch generation을 위해서는 coarser, pitch-stripped representation을 사용해야 함
- 한편 syllabic representation은 speech의 within-vector, adjacent frame 모두를 quantize 하여 slow-varying unit으로 discretize 하고, strict source alignment를 relax 하여 phoneme, accent variation을 제공할 수 있음
- 따라서 논문은 pre-trained SylBoost에서 얻어진 discrete token을 사용하여 각 token에 대한 learnable embedding을 training함 - Continuous/discrete lingusitic representation은 complementary strength를 가짐
- Continuous feature는 intelligibility와 phoneme alignment를 향상하고 discrete syllable token은 target timbre/speaker vector를 preserve 함
- 해당 trade-off를 expose 하기 위해 MaskVCT는 discrete syllabic token, lightweight FFN-LayerNorm-FFN projection을 통해 얻어진 continuous feature에 대한 dual conditioning path를 도입함

- Pitch Conditioning
- 논문은 continuous pitch를 sinusoidal embedding을 통해 vector로 mapping 하여 pitch-extractor resolution에 agnostic 하고 extractor 변경 시 fine-tuning이 필요 없는 system을 구축함
- 특히 standard interleaved layout 대신 sine, cosine term을 concatenate 하여 multi-head attention의 confounding을 avoid 함
- 이후 pitch를 log-scale로 convert 하고 fundamental frequency가 0Hz일 때 negative infinity를 방지하기 위해 1Hz의 epsilon value를 add 함 - 결과적으로 frequency $\mathbf{f}\in\mathbb{R}^{T}$에 대해 pitch embedding $\mathbf{P}\in\mathbb{R}^{T\times d}$는 다음과 같이 정의됨:
(Eq. 1) $ \mathbf{P}[t,i]=\left\{\begin{matrix}
\sin\left(\frac{\log(1+\mathbf{f}[t])}{10000^{2\cdot i/d}}\right), & \text{if}\,\,i<d/2 \\
\cos\left(\frac{\log(1+\mathbf{f}[t])}{10000^{2\cdot (i-d/2)/d}}\right), & \text{if}\,\,i\geq d/2 \\
\end{matrix}\right.$
- $i\in [0,d-1]$, $t\in [0,T-1]$, $d$ : model dimension
- 특히 standard interleaved layout 대신 sine, cosine term을 concatenate 하여 multi-head attention의 confounding을 avoid 함
- Speaker Conditioning
- Zero-shot VC를 위해 논문은 VALL-E와 같은 speaker prompt mechanism을 도입함
- 이를 위해 3-second reference speech를 process 하여 prompt condition을 추출하고 source condition의 beginning에 concatenate 함
- 결과적으로 model은 in-context learning을 활용해 quality, condition statisfaction을 향상할 수 있음
- Masked Codec Language Model
- MaskGCT는 masking model을 활용하여 우수한 zero-shot Text-to-Speech 성능을 달성함
- 이때 해당 S2A module은 VC model로 사용될 수 있음
- Codebook vocabulary size $K$, frame 수 $T$, RVQ codebook 수 $Q$, target RVQ codebook layer $q\in\{0,1,...,Q-1\}$, masking timestep $u\in[0,1]$, binary mask $\mathbf{M}_{u,q}\in\{0,1\}^{T\times Q}$에 대해
- Masked model은 masked input $\mathbf{A}_{u,q}=\mathbf{A}_{0}\odot \mathbf{M}_{u,q}$로부터 source의 encoded acoustic token $\mathbf{A}_{0}=\{1,2,...,K\}^{T\times Q}$를 reconstruct 함
- 여기서 mask $\mathbf{M}_{u,q}$의 경우 $q$ 이하의 all layer는 unmask 되고 $q$ 이상의 all layer는 fully mask 되고, layer $q$는 masking schedule에 따라 masking 됨 - Reconstruction은 model $\theta$가 conditional probability $p_{\theta}(\mathbf{A}_{0}|\mathbf{A}_{u,q}, \mathbf{C})$를 학습하는 classification task로 frame 할 수 있음
- $\mathbf{C}$ : conditioning feature - Training 시에는 masking time step $u\sim \mathcal{U}[0,1]$, target codebook layer $q\sim p(q)=1-\frac{2(q+1)}{Q(Q+1)}$, cosine scheduled mask $\mathbf{M}_{u,q}\sim \text{Bernoulli}(\cos(\pi u/2))$를 randomly sample 함
- Masked model은 masked input $\mathbf{A}_{u,q}=\mathbf{A}_{0}\odot \mathbf{M}_{u,q}$로부터 source의 encoded acoustic token $\mathbf{A}_{0}=\{1,2,...,K\}^{T\times Q}$를 reconstruct 함
- 결과적으로 model은 masked token에만 exculsively apply 되는 classification loss를 사용하여 학습됨:
(Eq. 2) $\mathcal{L}_{mask}=\mathbb{E}_{t|\mathbf{M}_{u,q}[t,c]=0}\left[ -\log p_{\theta}\left( \mathbf{A}_{0}[t,c]|\mathbf{A}_{u,q},\mathbf{C}\right)\right]$ - 추론 시에는 all-masked state $\mathbf{A}_{1,0}=\mathbf{A}_{N}$에서 시작하여 $N$ iteration을 통해 token을 iteratively unmask 하여 intermediate state $\mathbf{A}_{n}$을 생성함
- 이는 $n\in\{0,1,...,N\}$에 대해 fully unmasked state $\mathbf{A}_{0}$에 reach 할 때까지 진행됨
- 각 iteration index $n$은 pre-defined schedule에 대한 codebook index $q$에 해당함 - 이후 model은 masked position에 대한 logit을 $\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{C})$와 같이 estimate 함
- 이는 $n\in\{0,1,...,N\}$에 대해 fully unmasked state $\mathbf{A}_{0}$에 reach 할 때까지 진행됨
- Multiple Classifier-Free Guidances
- CFG는 추론 시 conditional generation을 향상하기 위해 사용됨
- 특히 VC에서는 output이 speaker identity, linguistic content, pitch contour를 포함한 multiple conditioning factor를 simultaneously satisfy 해야 함
- 따라서 논문은 CFG를 speaker prompt $\mathbf{A}_{p}$, linguistic content $\mathbf{L}$, pitch $\mathbf{P}$에 대한 3-factor로 extend 함
- 그러면 speech synthesis는 $\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1}, \mathbf{C})$에 대한 conditional probability로 정의됨
- Conditioning variable $\mathbf{C}$는 pitch condition에 따라 $(\mathbf{A}_{p},\mathbf{L},\mathbf{P}), (\mathbf{A}_{p},\mathbf{L},\varnothing)$으로 설정됨 - Linguistic-only path는 $\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{L}) :=\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1}, \varnothing, \mathbf{L},\varnothing)$과 같음
- DualSpeech를 따라 speaker condition은 $\log p_{\theta} (\mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{A}_{p}, \mathbf{L},\varnothing)$과 같이 prompt, linguistic과 couple 됨
- 논문은 이를 pitch와 jointly use 하여 $\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{A}_{p},\mathbf{L},\mathbf{P})$와 같이 사용함
- 그러면 speech synthesis는 $\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1}, \mathbf{C})$에 대한 conditional probability로 정의됨
- VC model는 source linguistic content를 preserve 하는 strictly conditional generative model에 해당하므로 논문은 modified CFG formulation을 채택함
- Conditional logit에서 unconditional logit $\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1}):= \log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1},\varnothing,\varnothing, \varnothing)$을 substract 하지 않고, detailed conditional logit에서 linguistic-only conditional logit을 substract 함:
(Eq. 3) $ \log\tilde{p}_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{C}) = \log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{L})$
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, +\omega_{all}\left(\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{A}_{p},\mathbf{L},\mathbf{P}) - \log p_{\theta}( \mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{L})\right)$
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, +\omega_{spk}\left(\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{A}_{p},\mathbf{L},\varnothing) - \log p_{\theta}( \mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{L})\right)$
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, +\omega_{ling}\left(\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1},\mathbf{L}) - \log p_{\theta}( \mathbf{A}_{n}|\mathbf{A}_{n+1})\right)$
- $\omega_{all}, \omega_{spk}, \omega_{ling}$ : CFG coefficient - 결과적으로 논문은 4가지 서로 다른 condition으로 model을 training 하고, all-conditioned, spk-conditioned, ling-conditioned, null-conditioned는 $6:1:2:1$ ratio로 random sampling 됨
- Conditional logit에서 unconditional logit $\log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1}):= \log p_{\theta}(\mathbf{A}_{n}|\mathbf{A}_{n+1},\varnothing,\varnothing, \varnothing)$을 substract 하지 않고, detailed conditional logit에서 linguistic-only conditional logit을 substract 함:
- 특히 VC에서는 output이 speaker identity, linguistic content, pitch contour를 포함한 multiple conditioning factor를 simultaneously satisfy 해야 함
- Model Architecture Details
- 논문은 rotary positional embedding 기반의 PreLN을 활용한 Transformer encoder-based architecture를 채택함
- 이때 FFN은 ReLU activation과 LayerNorm을 사용함
- 16 Transformer encoder layer에서 각 layer는 16 attention head, 1024 model dimension, 4096 FFN dimension을 가지고, 각 codebook index에 separate classification head를 attach 함
3. Experiments
- Settings
- Dataset : LibriTTS, MLS, VCTK, LibriHeavy, HiFi-TTS, LJSpeech, RAVDESS
- Comparisons : Diff-HierVC, FACodec, MaskGCT, FreeVC, GenVC

- Results
- 전체적으로 MaskVCT의 성능이 가장 우수함

- Accent conversion 측면에서도 우수한 성능을 달성함

반응형
'Paper > Conversion' 카테고리의 다른 글
댓글
