티스토리 뷰
Paper/Conversion
[Paper 리뷰] Diff-HierVC: Diffusion-based Hierarchical Voice Conversion with Robust Pitch Generation and Masked Prior for Zero-Shot Speaker Adaptation
feVeRin 2024. 10. 20. 10:29반응형
Diff-HierVC: Diffusion-based Hierarchical Voice Conversion with Robust Pitch Generation and Masked Prior for Zero-Shot Speaker Adaptation
- Voice Conversion은 여전히 inaccurate pitch와 low speaker adaptation 문제를 가지고 있음
- Diff-HierVC
- 2가지 diffusion model을 기반으로 하는 hierarchical voice conversion model
- Target voice style로 $F_{0}$를 효과적으로 생성할 수 있는 DiffPitch를 도입하고,
- 이후 생성된 $F_{0}$를 DiffVoice에 전달하여 target voice style로 speech를 변환 - Source-filter encoder를 사용하여 speech를 disentangle 하고 mel-spectrogram을 DiffVoice에서 data-driven prior로 채택하여 style transfer capacity를 개선
- 추가적으로 diffusion model에 masked prior를 도입하여 speaker adaptation 성능을 향상
- 2가지 diffusion model을 기반으로 하는 hierarchical voice conversion model
- 논문 (INTERSPEECH 2023) : Paper Link
1. Introduction
- Voice Conversion (VC)는 source speaker voice를 target speaker voice로 변환하는 것을 목표로 함
- 효과적인 VC를 위해서는 AutoVC와 같이 speech의 individual component를 disentanlge 하여 각 component를 control 하고 target speaker voice로 변환해야 함
- BUT, converted voice는 여전히 mispronunciation, low speaker adpatation 문제를 가지고 있음 - 한편으로 pitch modeling은 speech intelligibility와 naturalness를 향상하는데 필수적임
- 특히 FastPitch와 같이 text-to-speech task에서 pitch characteristic은 speaker identity와 correct pronunciation에 상당한 영향을 미침
- VC task에서도 normalized fundamental frequency $F_{0}$를 사용하여 expressiveness를 향상할 수 있지만, $F_{0}$는 speaker style과 entirely separate 되지 않으므로 perceptual unnaturalness가 발생함
- 이를 해결하기 위해 Vector-Quantized Variational AutoEncoder (VQ-VAE)으로 speaker-irrelevant pitch representation을 학습할 수 있지만, VQ로 인해 pitch information이 loss 되는 한계가 있음
- 최근의 DiffVC, DDDM-VC 등은 diffusion model을 기반으로 expressive VC를 수행함
- 마찬가지로 $F_{0}$를 생성하기 위해 해당 diffusion process를 고려할 수 있음
- 효과적인 VC를 위해서는 AutoVC와 같이 speech의 individual component를 disentanlge 하여 각 component를 control 하고 target speaker voice로 변환해야 함
-> 그래서 hierarchical diffusion model을 통해 VC task의 pitch controllability를 개선한 Diff-HierVC를 제안
- Diff-HierVC
- DiffPitch와 DiffVoice의 2가지 diffusion model을 활용하여 disentangled speech representation으로부터 voice style을 hierarchical 하게 변환
- DiffPitch는 추론 과정에서 target speaker의 pitch information을 생성하고,
- DiffVoice는 생성된 pitch information과 source-filter representation을 사용하여 mel-spectrogram을 생성함
- 추가적으로 data-driven prior를 통해 diffusion model의 denoising process를 regulating 하고, masked prior로 확장하여 generalizability를 개선
- DiffPitch와 DiffVoice의 2가지 diffusion model을 활용하여 disentangled speech representation으로부터 voice style을 hierarchical 하게 변환
< Overall of Diff-HierVC >
- Robust pitch generation을 위해 hierarchical diffusion-based VC model을 구축하고 expressive zero-shot VC를 위해 masked prior를 도입
- 결과적으로 기존보다 더 나은 conversion 성능을 달성
2. Method
- Speech Disentanglement
- Diff-HierVC는 speech를 content, pitch, style의 representation으로 analyze 함:
- Content Representation
- 먼저 data perturbation을 input waveform에 적용하여 content-irrelevant information을 제거함
- 이후 large-scale cross-lingual speech dataset으로 pre-train 된 self-supervised model인 XLS-R의 intermediate layer에서 content feature를 추출함
- Speech Style
- Meta-StyleSpeech의 style encoder를 사용하여 mel-spectrogram의 speaker style representation을 추출함
- 해당 style embedding은 content encoder와 pitch encoder에 대한 guide 역할을 수행
- Pitch Representation
- 정확한 pitch를 추출하기 위해, mel-spectrogram 보다 4배 높은 high-resolution으로 YAAPT algorithm을 적용하여 fundamental frequency $F_{0}$를 추출함
- 이때 content encoder는 $\log (F_{0}+1)$을 receive 하고 pitch encoder는 normalized $F_{0}$를 source speaker $F_{0}$의 평균/분산으로 사용함
- Content Representation
- Hierarchical VC
- Hierarchical VC를 위해 논문은 DiffPitch와 DiffVoice의 two-stage diffusion model을 도입함
- DiffPitch는 $F_{0}$를 target voice style로 변환하고,
- DiffVoice는 변환된 $F_{0}$를 사용하여 speech를 target voice style로 hierarchical 하게 변환함
- DiffPitch
- DiffPitch는 diffusion process를 기반으로 하는 pitch generator에 해당함
- 구조적으로 DiffPitch는 single denoiser로 significant receptive field를 얻을 수 있는 WaveNet-based conditional diffusion model인 DiffWave를 사용 - 먼저 pitch encoder는 source speech의 normalized $F_{0}$를 pitch representation $Z_{p}$로 변환함
- 그러면 $Z_{p}$를 DiffPitch의 data-driven prior로 활용하기 위해 pitch reconstruction loss로 pitch representation을 regularize 할 수 있음:
(Eq. 1) $\mathcal{L}_{pitch}=||X_{p}-Z_{p}||_{1}$ - 여기서 DiffPitch의 forward process는:
(Eq. 2) $dX_{p,t}=\frac{1}{2}\beta_{t}(Z_{p}-X_{p,t})dt+\sqrt{\beta_{t}}d\mathbf{w}_{t}$
- DiffPitch의 diffusion process는 YAAPT algorithm으로 추출된 log-scale $F_{0}$를 target ground-truth $X_{p}$로 사용함
- $t\in [0,1]$, $\beta_{t}$ : noise schedule, $\mathbf{w}_{t}$ : forward standard Wiener process - DiffPitch는 reverse process에서 original pitch contour를 recover 하기 위해 denoising을 수행함:
(Eq. 3) $d\hat{X}_{p,t}=\left(\frac{1}{2} (Z_{p}-\hat{X}_{p,t})-s_{\theta_{p}}(\hat{X}_{p,t},Z_{p},t)\right)\beta_{t}dt+\sqrt{\beta_{t}}d\bar{\mathbf{w}}_{t}$
- $\bar{\mathbf{w}}_{t}$ : backward standard Wiener process - DiffVC를 따라, forward process의 noisy pitch sample은 다음 distribution으로부터 얻어짐:
(Eq. 4) $p_{t|0}(X_{p,t}|X_{p,0})=\mathcal{N}\left(e^{-\frac{1}{2}\int_{0}^{t}\beta_{s}ds}X_{p,0}+\left(1-e^{-\frac{1}{2}\int_{0}^{t}\beta_{s}ds}\right)Z_{p}, \left(1-e^{-\int_{0}^{t}\beta_{s}ds}\right)I \right)$
- $I$ : identity matrix - (Eq. 4)는 Gaussian이므로 다음을 얻을 수 있음:
(Eq. 5) $\nabla\log p_{t|0}(X_{p,t}|X_{p,0})=-\frac{X_{p,t}-X_{p,0}\left( e^{-\frac{1}{2}\int_{0}^{t}\beta_{s}ds}\right)-Z_{p}\left(1-e^{-\frac{1}{2}\int_{0}^{t}\beta_{s}ds}\right) }{1-e^{-\int_{0}^{t}\beta_{s}ds}}$ - 결과적으로 DiffPitch는 다음의 denoising objective로 score function을 근사함:
(Eq. 6) $\mathcal{L}_{p}=\mathbb{E}_{X_{0},X_{t}}\left[ \lambda_{t}|| \left(s_{\theta_{p}}(X_{p,t},Z_{p},s,t)\right)-\nabla\log p_{t|0}(X_{p,t}|X_{p,0})||_{2}^{2}\right]$
- $s_{\theta_{p}}$ : pitch score estimator, $\lambda_{t} = 1-e^{-\int_{0}^{t}\beta_{s}ds}$
- 그러면 $Z_{p}$를 DiffPitch의 data-driven prior로 활용하기 위해 pitch reconstruction loss로 pitch representation을 regularize 할 수 있음:
- 추가적으로 논문은 reverse SDE solver로 forward diffusion의 log-likelihood를 최대화하는 ML-SDE solver를 사용하여 fast sampling을 유도함
- 추론 시, pitch encoder에서 변환된 $F_{0}$는 DiffPitch의 prior로 사용되고 DiffPitch는 target voice style $s$를 사용하여 refined $F_{0}$를 생성함
- DiffPitch는 diffusion process를 기반으로 하는 pitch generator에 해당함
- DiffVoice
- DiffVoice는 content, target $F_{0}$, target voice style로부터 high-quality speech synthesis를 수행하는 conditional diffusion model
- 추가적으로 논문은 diffusion model에 data-driven prior를 도입하여 inception을 guide 함 - 먼저 source-filter theory에 따라 speech component를 pitch/content representation으로 disentangle 함
- Data-driven prior를 위해 source encoder $E_{src}$와 filter encoder $E_{ftr}$로 구성된 source-filter encoder는:
- Disentangled speech representation에서 intermediate mel-spectrogram $Z_{m}$을 $Z_{m}=Z_{src}+Z_{ftr}$과 같이 reconstruct 함
- $Z_{src}=E_{src}(F_{0},s), Z_{ftr}=E_{ftr}(\text{content}, s)$, $s$ : style embedding - 그러면 mel-spectrogram $Z_{m}$은 다음과 같이 regularize 됨:
(Eq. 7) $\mathcal{L}_{rec}=|| X_{mel}-Z_{m}||_{1}$
- $X_{mel}$ : ground-truth speech의 mel-spectrogram
- Data-driven prior를 위해 source encoder $E_{src}$와 filter encoder $E_{ftr}$로 구성된 source-filter encoder는:
- 여기서 DiffVoice는 source-filter encoder output $Z_{m}$을 prior로 사용하고 speaker representation $s$를 condition으로 하여 speaker adaptation capacity를 향상할 수 있음
- 이때 DiffVoice의 forward process는:
(Eq. 8) $dX_{m,t}=\frac{1}{2}\beta_{t}(Z_{m}-X_{m,t})dt+\sqrt{\beta_{t}}d\mathbf{w}_{t}$ - DiffVoice의 reverse process는:
(Eq. 9) $d\hat{X}_{m,t}=\left( \frac{1}{2}(Z_{m}-\hat{X}_{m,t})-s_{\theta_{m}}(\hat{X}_{m,t},Z_{m},t)\right)\beta_{t}dt+\sqrt{\beta_{t}}d\bar{\mathbf{w}}_{t}$ - Forward process에서 noisy mel-spectrogram $X_{m,t}$는 (Eq. 4)와 동일하게 얻어지므로, mel-spectrogram noise estimation network $s_{\theta_{m}}$을 최적화하기 위한 score matching loss는:
(Eq. 10) $\mathcal{L}_{m}=\mathbb{E}_{X_{0},X_{t}}\left[\lambda_{t}|| \left(s_{\theta_{m}}(X_{m,t},Z_{m},s,t)\right)-\nabla\log p_{t|0}(X_{m,t}|X_{m,0})||_{2}^{2}\right]$
- 이때 DiffVoice의 forward process는:
- 추론 시 source-filter encoder는 source speech, target voice style $s$, DiffPitch로 변환된 $F_{0}$에서 content representation을 취함
- 결과적으로 source-filter encoder에서 변환된 mel-spectrogram $Z_{m}$은 data-driven prior로 사용되고 DiffVoice는 target vocie style로 condition 된 converted speech를 생성함
- DiffVoice는 content, target $F_{0}$, target voice style로부터 high-quality speech synthesis를 수행하는 conditional diffusion model
- Denoising Models with Masked Prior
- 앞선 Data-driven piror는 VC 성능을 크게 개선할 수 있지만, 논문의 DiffVoice는 source-filter encoder에서 reconstruct 된 mel-spectrogram에 의존함
- 따라서 논문은 해당 DiffVoice의 generalizability를 향상하기 위해 maksed prior를 diffusion model에 도입함
- 구체적으로 prior $Z_{m}$은 DiffVoice에 전달되기 전에 mask 되고, diffusion network는 reconstruction과 denoising process를 jointly learning 함 - 결과적으로 Diff-HierVC는 surrounding context에서 masked area를 reconstruction 할 수 있음
- 이때 논문은 context 측면에서 continuous pitch information을 interpreting 하여 frequency masking을 적용
- 따라서 논문은 해당 DiffVoice의 generalizability를 향상하기 위해 maksed prior를 diffusion model에 도입함
3. Experiments
- Settings
- Results
- Analysis on $F_{0}$ Prediction
- $F_{0}$ statistic을 통한 $F_{0}$ transformation, WaveNet을 통한 $F_{0}$ prediction, DiffPitch를 통한 diffusion-based $F_{0}$ prediction을 각각 비교해 보면
- 30-iteration step을 가지는 DiffPitch를 사용할 때 ground-truth와 가장 유사한 $F_{0}$ contour를 얻을 수 있음
- 추가적으로 DiffPitch는 target voice style에 대해 다양한 pitch contour를 가짐
- 따라서 Diff-HierVC는 DiffPitch를 VC task 중에 적용하여 $F_{0}$를 변환함
- Zero-Shot VC
- 전체적으로 Diff-HierVC가 가장 우수한 VC 성능을 보임
- Unseen language에 대한 cross-lingual VC 측면에서도 뛰어난 성능을 보임
- Ablation Study
- Ablation Study 측면에서 각 component를 제거하는 경우 성능 저하가 발생함
- Masked prior를 사용하면 data-driven prior 보다 더 나은 generalization을 얻을 수 있지만, 적절한 masking ratio의 선정이 필요함
- 실험적으로 30%의 masking ratio가 가장 적합함
반응형
'Paper > Conversion' 카테고리의 다른 글
댓글