티스토리 뷰
Paper/Conversion
[Paper 리뷰] CFLOW-VC: An Unsupervised Cycle Training Strategy based on Normalizing Flows for Voice Conversion
feVeRin 2026. 10. 20.반응형
CFLOW-VC: An Unsupervised Cycle Training Strategy based on Normalizing flows for Voice Conversion
- Voice Conversion model은 non-parallel setting에서 train-test mismatch 문제가 존재함
- CFLOW-VC
- Normalizing flow를 기반으로 expressive style feature를 capture 하는 mel-style encoder를 도입
- Noisy environment에 대한 robustness를 향상하기 위해 data augmentation을 수행
- 논문 (INTERSPEECH 2026) : Paper Link
1. Introduction
- Voice Conversion (VC)는 original speech content는 preserve하면서 source voice를 transform 하는 것을 목표로 함
- BUT, 대부분의 VC model은 train-test mismatch로 인해 non-parallel setting에서 naturalness의 한계를 보임
- 특히 FreeVC와 같이 WavLM의 Self-Supervised Learning (SSL) representation을 활용하면 rich content information을 반영할 수 있지만 timbre detail은 capture 할 수 없음
-> 그래서 non-parallel VC의 train-test mismatch 문제를 해결한 CFLOW-VC를 제안
- CFLOW-VC
- Flow reversibility와 StarGANv2-VC의 consistency loss를 활용한 Cycle Training Strategy (CTS)를 도입
- Meta-StyleSpeech의 mel-style encoder를 추가하여 style information을 capture하고 WavAugmentation을 활용해 noise robustness를 향상
< Overall of CFLOW-VC >
- FreeVC framework를 기반으로 Cycle Traing Strategy와 mel-style encoder를 적용한 non-parallel VC model
- 결과적으로 기존보다 우수한 성능을 달성
2. Method
- CFLOW-VC는 FreeVC를 따라 prior encoder input으로 WavLM을 사용하고 pre-trained speaker encoder를 통해 timbre information을 추출함
- 이때 논문은 style-related feature를 capture하기 위해 style encoder를 추가하고 StarGANv2-VC loss를 활용한 non-parallel training strategy를 도입함
- Style encoder는 Meta-StyleSpeech의 mel-style encoder를 사용함 - 추가적으로 Wav-Augmentation과 Gradient Reversal Layer (GRL)을 활용해 noise robustness를 향상함
- 이때 논문은 style-related feature를 capture하기 위해 style encoder를 추가하고 StarGANv2-VC loss를 활용한 non-parallel training strategy를 도입함
- Backbone
- Backbone training 시 sample $x_{src}$가 주어지면 SSL feature $x_{ssl}$과 style feature $x_{style}$을 prior encoder $\theta$를 통해 process 하여 prior distribution $z_{p}\sim p(z|x_{ssl},x_{style};\theta)$를 얻음
- 이때 논문은 speaker classification을 위해 GRL을 사용하여 prior distribution과 timbre를 decouple함
- Linear spectrogram $x_{lin}$은 $x_{src}$에서 추출되고, timbre feature $g_{s}$는 speaker encoder를 통해 $x_{src}$로부터 추출됨 - $x_{lin}, g_{s}$를 posterior encoder $\phi$를 통해 process 하여 posterior distribution $z_{q}\sim q(z|x_{lin},g_{s};\phi)$를 얻을 수 있음:
(Eq. 1) $\mathbf{z}_{p}\sim p_{\theta}\left(z_{p}|x_{p};\theta\right)=\mathcal{N}\left( z_{p};\mu_{\theta},\sigma_{\theta}\right)$
(Eq. 2) $\mathbf{z}_{q}\sim q_{\phi}\left(z_{q}|x_{q};\phi\right)=\mathcal{N}\left( z_{q};\mu_{\phi},\sigma_{\phi}\right)$
- $x_{p}=[x_{ssl}, x_{style}],x_{q}=[x_{lin},g_{s}]$
- 여기서 $g_{s},x_{ssl}, x_{style}, x_{lin}$은 모두 같은 audio file에서 얻어지지만 prediction 시에는 unpair 됨
- 이때 논문은 speaker classification을 위해 GRL을 사용하여 prior distribution과 timbre를 decouple함

- CTS
- Train-test mismatch를 해결하기 위해 논문은 StarGANv2-VC의 loss design과 flow reversibility를 활용함
- 먼저 additional sample $x_{tgt}$로부터 $g_{t}$를 얻고, inverse flow $f_{\theta}^{-1}$과 $g_{t}$를 사용해 $z_{p}$로부터 posterior distribution $z_{q1}\sim q\left(z_{q}|z_{p},g_{t};f_{\theta}^{-1}\right)$를 derive 함
- 이후 $f_{\theta}, g_{t}$로부터 $z_{q1}$를 사용하여 prior distribution $z_{p1}\sim p\left(z_{p}|z_{q1},g_{t};f_{\theta}\right)$를 생성함
- Posterior probability $z_{q2}\sim q\left(z_{q}|z_{p1},g_{s};f_{\theta}^{-1}\right)$는 $f_{\theta}^{-1},g_{s}$에 대한 $z_{p1}$으로 compute 됨
- 결과적으로 논문은 $f_{\theta}^{g}$를 CTS process를 활용한 flow로 정의하고 다음의 loss를 add 함:
- Adversarial Loss
- 먼저 adversarial loss를 통해 generated posterior probability를 constrain 함:
(Eq. 3) $\mathcal{L}_{adv}=\mathbb{E}_{x_{src},g_{s}}\left(\log\left(\text{starD}(z_{q},y_{src})\right)\right) + \mathbb{E}_{x_{src},g_{t},g_{s}}\left(\log\left(1-\text{starD}(z_{q1},y_{tgt})\right)\right)$
- $y_{src}, y_{tgt}$ : $x_{src}, x_{tgt}$의 speaker ID - $\text{starD}(\cdot, y)$는 domain $y\in Y$에 대한 real/fake classifier output과 같음
- 먼저 adversarial loss를 통해 generated posterior probability를 constrain 함:
- Bidirectional KL Loss
- 논문은 NaturalSpeech, HierSpeech++를 따라 bidirectional KL loss를 도입함
- 이때 forward mapping $f_{\theta}$를 사용하여 posterior complexity를 $z_{q}$에서 $z_{p'}\sim p_{\theta}(z|x_{p};\theta,\phi,f_{\theta})$로 reduce 하고, prior capacity를 $z_{p}$에서 $z_{q'}\sim q_{\theta,\phi, f_{\theta}^{-1}}(z|x_{q};\theta,\phi,f_{\theta}^{-1})$로 향상함 - 그러면 KL divergence는:
(Eq. 4) $z_{p'}=\mathcal{N}\left(f_{\theta}(z_{q},g_{s});\mu_{\theta},\sigma_{\theta}\right)\left|\det\frac{\partial f_{\theta}(z_{q},g_{s})}{\partial z_{q}}\right|$
(Eq. 5) $\mathcal{L}_{fwb}=\text{KL}(z_{q}||z_{p'})=\log z_{q}-\log z_{p'}$
(Eq. 6) $z_{q'}=\mathcal{N}\left(f_{\theta}^{-1}(z_{p},g_{s});\mu_{\phi},\sigma_{\phi}\right)\left|\det\frac{\partial f_{\theta}^{-1}(z_{p},g_{s})}{\partial z_{p}}\right|$
(Eq. 7) $\mathcal{L}_{bwb}=\text{KL}(z_{p}||z_{q'})=\log z_{p}-\log z_{q'}$
- $z_{p'}$은 flow $f_{\theta}$와 $g_{s}$를 통해 $z_{q}$에서 derive 되고 $z_{q'}$은 inverse flow $f_{\theta}^{-1}$과 $g_{s}$를 통해 $z_{p}$에서 derive 됨
- $\mathcal{L}_{fwb},\mathcal{bwb}$ : forward/backward KL loss
- 논문은 NaturalSpeech, HierSpeech++를 따라 bidirectional KL loss를 도입함
- Cycle KL Loss
- 논문은 $f_{\theta}^{g}$를 통해 $z_{p}$에서 $z_{q2}$로의 prior capacity를 향상함
- 이를 위해 KL divergence loss를 사용하여 $z_{p}$를 $z_{q2}$에 match 함:
(Eq. 8) $z_{q2}=\mathcal{N}\left(f_{\theta}^{g}(z_{p},g_{s},g_{t});\mu_{\phi}, \sigma_{\phi}\right)\left|\det\frac{\partial f_{\theta}^{g}(z_{p},g_{s},g_{t})}{\partial z_{p}}\right|$
(Eq. 9) $\mathcal{L}_{cyckl}=\text{KL}(z_{p}||z_{q2})=\log z_{p}-\log z_{q2}$
- Cycle Consistency Loss
- 결과적으로 final loss는:
(Eq. 10) $\mathcal{L}(G)=\mathcal{L}_{adv}(G)+\mathcal{L}_{fm}(G)+\mathcal{L}_{adv}+\mathcal{L}_{cyckl}+\mathcal{L}_{fwb}+\mathcal{L}_{bwb}+\mathcal{L}_{grl}$
(Eq. 11) $\mathcal{L}(D)=\mathcal{L}_{adv}(D)-\mathcal{L}_{adv}$
- $\mathcal{L}_{cyckl}, \mathcal{L}_{adv}(D),\mathcal{L}_{adv}(G),\mathcal{L}_{fm}(G)$는 cycle consistency loss, $\mathcal{L}_{fwb}, \mathcal{L}_{bwb}$는 norm consistency loss, $\mathcal{L}_{adv}$는 adversarial loss로 볼 수 있음
- Adversarial Loss
- Data Augmentation
- 기존의 VC model은 clean audio data로만 training 되므로 real-world scenario의 noisy input에 대응할 수 없음
- 따라서 논문은 RIRs2를 통해 direct addition으로 noise augmentation을 적용한 다음, random reverberation augmentation을 수행함
- 해당 augmentation은 Wav-Augment를 기반으로 수행됨
3. Experiments
- Settings
- Dataset : VCTK
- Comparisons : DiffVC, Diff-HierVC, StarGANv2-VC, FreeVC
- Results
- 전체적으로 CFLOW-VC의 성능이 가장 우수함

- MOS 측면에서도 뛰어난 성능을 보임

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