티스토리 뷰
Paper/Conversion
[Paper 리뷰] MeanVC: Lightweight and Streaming Zero-Shot Voice Conversion via Mean Flows
feVeRin 2026. 2. 19. 13:41반응형
MeanVC: Lightweight and Streaming Zero-Shot Voice Conversion via Mean Flows
- 기존의 zero-shot Voice Conversion model은 large parameter size를 요구함
- MeanVC
- Chunk-wise autoregressive denoising 기반의 diffusion Transformer를 활용해 streaming processing을 지원
- Mean flow를 통해 single sampling step 만으로도 zero-shot Voice Conversion 성능을 향상
- 논문 (ICASSP 2026) : Paper Link
1. Introduction
- ACE-VC, SEF-VC, AdaptVC와 같은 zero-shot Voice Conversion (VC) model은 linguistic content를 유지하면서 source speaker timbre를 unseen speaker로 transfer 하는 것을 목표로 함
- BUT, 해당 기존 VC model은 real-time processing의 한계가 있음
- 이를 위해 StreamVoice와 같은 autoregressive (AR) streaming VC model을 고려할 수 있음
- BUT, 상당한 computational cost가 필요하고 sequential decoding process로 인한 latency가 존재함 - 한편으로 DualVC2와 같은 non-autoregressive (NAR) framework는 lightweight, fast inference가 가능하지만 unseen scenario에 대한 generalizability의 한계가 있음
-> 그래서 low-latency, lightweight, high-fidelity streaming VC를 위한 MeanVC를 제안
- MeanVC
- Chunk-wise autoregressive denoising strategy를 활용하여 long-term speaker consistency를 preserve
- Mean flow를 Diffusion Transformer (DiT) decoder에 integrate 하여 diffusion sampler의 latency를 절감
- 추가적으로 Diffusion Adversarial Post-Training (DAPT)를 도입하여 high-quality generation을 지원
< Overall of MeanVC >
- Chunk-wise autoregressive denoising과 mean flow를 활용한 streaming VC model
- 결과적으로 기존보다 우수한 성능을 달성
2. Method
- Overview
- MeanVC는 recognition-synthesis framework를 기반으로 streaming Automatic Speech Recognition (ASR) module, speaker encoder, timbre encoder, DiT decoder, vocoder로 구성됨
- 먼저 pre-trained streaming ASR model을 사용해 source waveform에서 bottleneck feature (BNF)를 추출함
- 이후 BNF를 timbre encoder에 전달하여 reference mel-spectrogram의 fine-grained timbre information이 fuse 된 timbre BNF를 생성함
- Speaker embedding은 pre-trained speaker encoder를 통해 reference waveform으로부터 추출됨
- DiT decoder는 speaker embedding, timbre BNF를 condition으로 하여 converted mel-spectrogram을 생성함
- 이때 source mel-spectrogram은 cache와 같이 prepend되어 chunk-wise autoregressive denoising을 지원함
- 먼저 pre-trained streaming ASR model을 사용해 source waveform에서 bottleneck feature (BNF)를 추출함

- Chunk-wise Autoregressive Denoising
- Streaming conversion을 위해 논문은 BNF를 smaller chunk로 divide 하고 chunk-wise causal mask를 적용하는 Chunk-wise Autoregressive Denoising을 도입함
- 해당 mask strategy는 각 chunk가 previously generated chunk의 historical context에 access 하도록 하여 chunk 간 consistency를 보장함
- 이때 Conditional Flow Matching (CFM)을 기반으로 distribution 간의 optimal transport path를 학습할 수 있음
- 먼저 data $x\sim p_{data}(x)$, prior $\epsilon \sim p_{prior}(\epsilon)$에 대해, optimal transport flow path는 $z_{t}=(1-t)x+t\epsilon$, conditional velocity는 $v_{t}=dz_{t}/dt=\epsilon-x$와 같이 정의됨
- Training 시에는 CFM loss $\mathcal{L}_{CFM}(\theta)=\mathbb{E}_{t,x,\epsilon}||f_{\theta}(t,z_{t})-v_{t}||^{2}$를 minimize 하는 neural network $f_{\theta}$를 학습함
- DiT decoder는 timbre BNF, speaker embedding을 condition으로하여 random Gaussian noise로부터 mel-spectrogram을 생성함
- 특히 논문은 speaker embedding을 timbre BNF length에 맞게 repeat하고 concatenate 하여 model의 conditioning input으로 사용함
- 특히 total chunk 수 $N$, integer index $i,\,\, i\in[0,N]$에 대해 모든 preceding chunk를 포함하여 생성할 chunk $i$를 select 함 - Chunk $i$의 mel-spectrogram을 $M_{i}$, 해당 conditioning input을 $C_{i}$, preceding chunk의 mel-spectrogram을 $M_{<i}$라 하자
- 이때 flow matching은 data에 noise를 add 하는 forward process, noise를 remove 하는 backward process로 구성됨 - Training phase에서 forward process는 timestep $t\in [0,1]$에서 clean mel-spectrogram $M_{i}$에 Gaussian noise $\xi\sim \mathcal{N}(0,1)$을 mix 한 noisy chunk $Z_{i}(t)=(1-t)M_{i}+t\xi$를 사용함
- 결과적으로 $\theta$로 parameterize 된 flow matching model $f_{\theta}$는 $C_{i}$로 condition 되어 velocity field mapping $f_{\theta}(t,Z_{i}(t))=dZ_{i}(t)/dt=\xi-M_{i}$를 학습함
- 특히 논문은 speaker embedding을 timbre BNF length에 맞게 repeat하고 concatenate 하여 model의 conditioning input으로 사용함
- Preceding chunk의 mel-spectrogram $M_{<i}$는 in-context learning을 위한 prompt로 사용되고, chunk-wise causal mask가 적용됨
- Clean mel-spectrogram chunk를 $M_{i}$, noisy mel-spectrogram chunk를 $Z_{i}$라 할 때, training 시 clean chunk $M_{i}$를 noisy chunk $Z_{i}$ 앞에 concatenate 하여 $2N$ chunk의 complete sequence를 구성함 - 이때 chunk-wise attention mask는:
- 각 chunk 내에서는 full attention이 적용됨
- $i\in [0,N)$의 clean chunk의 경우, 각 chunk $M_{i}$는 자기 자신에게만 attend 할 수 있음
- $i\in[N,2N)$의 noisy chunk의 경우, 각 chunk $Z_{i}$는 $j\in [\max(0,i-K),i-1]$인 preceding clean chunk $M_{j}$와 자기 자신에게 attend 할 수 있음
- $K$ : conditioning을 위한 accessible preceding clean chunk 수
- 160ms와 같은 short chunk를 사용하는 경우, historical chunk에 대한 너무 많은 access를 allow 하면 model이 current chunk $Z_{i}$보다 historical context에 over-rely 하여 성능이 저하될 수 있음

- Mean Flows for Generative Modeling
- CFM은 Ordinary Differential Equation (ODE)를 solve 하기 위해 multiple sampling step이 필요하므로, Number of Function Evaluation (NFE)는 추론 속도에 큰 영향을 미침
- 반면 1-NFE 만을 사용하는 경우 generated spectrogram quality가 degrade 됨
- 이를 해결하기 위해 논문은 training 시 average velocity field를 regress 하는 mean flow를 채택하여 1-NFE 만으로도 high-quality synthesis를 달성함 - 먼저 time interval $[r,t]$가 주어졌을 때, 해당 ODE trajectory의 displacement는 $\int_{r}^{t}v(z_{\tau},\tau)d\tau$이고 average velocity는 $u(z_{t},r,t)\triangleq \frac{1}{t-r}\int_{r}^{t}v(z_{\tau},\tau)d\tau$와 같음
- Mean flow identity는 양변을 $t$에 대해 differentiating 하여 얻어짐:
(Eq. 1) $ u(z_{t},r,t)=v(z_{t},t)-(t-r)\frac{d}{dt}u(z_{t},r,t)$
- 여기서 Jacobian-Vector Product (JVP)를 적용하면 total derivative는 $\frac{d}{dt}u(z_{t},r,t)=v(z_{t},t)\partial_{z}u+\partial_{t}u$와 같음 - Velocity $v(z_{t},t)$는 flow matching의 marginal velocity에 해당하므로, conditional velocity $v_{t}=\epsilon - x$로 replace 할 수 있음
- 그러면 training을 위한 target field는 $u_{tgt}=v_{t}-(t-r)(v_{t}\partial_{z}u_{\theta}+\partial_{t}u_{\theta})$로 정의됨 - 이를 기반으로 $f_{\theta}$가 mean flow objective를 minimize 하도록 하면:
(Eq. 2) $\mathcal{L}_{MF}(\theta)=\mathbb{E}_{t,r,x,\epsilon }\left|\left| f_{\theta}(z_{t},r,t)-\text{sg}(u_{tgt})\right|\right|$
- $\text{sg}(\cdot)$ : stop-gradient operation
- $t=r$인 경우 mean flow objective는 standard flow matching objective로 reduce 됨
- Mean flow identity는 양변을 $t$에 대해 differentiating 하여 얻어짐:
- Sampling 시 CFM에서 time-integral을 average velocity로 substitute 하면:
(Eq. 3) $z_{r}=z_{t}-(t-r)u(z_{t},r,t)$
- $z_{1}=\epsilon\sim p_{prior}(\epsilon)$에 대해, 1-NFE sampling의 경우 $z_{0}=z_{1}-f_{\theta}(z_{1},0,1)$
- 반면 1-NFE 만을 사용하는 경우 generated spectrogram quality가 degrade 됨
- Diffusion Adversarial Post-Training
- Flow matching model로 생성된 mel-spectrogram은 over-smoothing artifact가 발생할 수 있음
- 이를 해결하기 위해 논문은 generator architecture를 discriminator backbone으로 활용함
- 즉, DiT model을 generator $G$로 사용하여 1-NFE로 spectrogram을 생성함
- 이때 DiT weight는 discriminator $D$의 backbone을 initialize 하는 데 사용됨 - Training 이후 discriminator는 real $x$, generated $\hat{x}$를 distinguish 하는 logit을 output 함
- 즉, DiT model을 generator $G$로 사용하여 1-NFE로 spectrogram을 생성함
- 구조적으로는 4-layer DiT backbone의 2, 4-th layer에 cross-attention-only Transformer를 적용함
- 먼저 해당 block은 learnable vector를 query, backbone latent representation을 key, value로 사용해 cross-attention을 수행함
- 이후 output은 channel-wise concatenate 되어 global feature vector를 생성한 다음 project 되어 scalar logit을 output 함
- 해당 Diffusion Adversarial Post-Training (DAPT)의 training objective는:
(Eq. 4) $\mathcal{L}_{adv}(G)=\mathbb{E}_{c,\epsilon}\left|\left| D(G(\epsilon , c),c)-1\right|\right|^{2}$
(Eq. 5) $\mathcal{L}_{adv}(D)=\mathbb{E}_{c,x}\left|\left|D(x,c)-1\right|\right|^{2}+ \mathbb{E}_{c,\epsilon}\left|\left| D(G(\epsilon ,c),c)\right|\right|^{2}$
- $c$ : conditioning input
- 이를 해결하기 위해 논문은 generator architecture를 discriminator backbone으로 활용함
3. Experiments
- Settings
- Dataset : Emilia
- Comparisons : StreamVoice, SeedVC
- Results
- 전체적으로 MeanVC의 성능이 가장 우수함

- Seen speaker에 대해서도 뛰어난 성능을 달성함

- Ablation Study
- 각 component를 제거하는 경우 성능 저하가 발생함

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