티스토리 뷰

반응형

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 성능을 향상
  • 논문 (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를 향상하는데 필수적임
      1. 특히 FastPitch와 같이 text-to-speech task에서 pitch characteristic은 speaker identity와 correct pronunciation에 상당한 영향을 미침
      2. 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를 고려할 수 있음

-> 그래서 hierarchical diffusion model을 통해 VC task의 pitch controllability를 개선한 Diff-HierVC를 제안

 

  • Diff-HierVC
    • DiffPitch와 DiffVoice의 2가지 diffusion model을 활용하여 disentangled speech representation으로부터 voice style을 hierarchical 하게 변환
      1. DiffPitch는 추론 과정에서 target speaker의 pitch information을 생성하고,
      2. DiffVoice는 생성된 pitch information과 source-filter representation을 사용하여 mel-spectrogram을 생성함
    • 추가적으로 data-driven prior를 통해 diffusion model의 denoising process를 regulating 하고, masked prior로 확장하여 generalizability를 개선

< 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 함:
    1. 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를 추출함
    2. Speech Style
      • Meta-StyleSpeech의 style encoder를 사용하여 mel-spectrogram의 speaker style representation을 추출함
      • 해당 style embedding은 content encoder와 pitch encoder에 대한 guide 역할을 수행
    3. 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}$의 평균/분산으로 사용함

Overall of Diff-HierVC

- 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}$로 변환함
      1. 그러면 $Z_{p}$를 DiffPitch의 data-driven prior로 활용하기 위해 pitch reconstruction loss로 pitch representation을 regularize 할 수 있음:
        (Eq. 1) $\mathcal{L}_{pitch}=||X_{p}-Z_{p}||_{1}$
      2. 여기서 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
      3. 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
      4. 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
      5. (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}}$
      6. 결과적으로 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}$
    • 추가적으로 논문은 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}$를 생성함
  • 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 함
      1. 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
      2. 그러면 mel-spectrogram $Z_{m}$은 다음과 같이 regularize 됨:
        (Eq. 7) $\mathcal{L}_{rec}=|| X_{mel}-Z_{m}||_{1}$
        - $X_{mel}$ : ground-truth speech의 mel-spectrogram
    • 여기서 DiffVoice는 source-filter encoder output $Z_{m}$을 prior로 사용하고 speaker representation $s$를 condition으로 하여 speaker adaptation capacity를 향상할 수 있음
      1. 이때 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}$
      2. 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}$
      3. 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]$
    • 추론 시 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를 생성함

- 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을 적용

3. Experiments

- Settings

  • Dataset : LibriTTS, VCTK
  • Comparisons : AutoVC, DiffVC, VoiceMixer, Speech Resynthesis (SR)

- 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를 얻을 수 있음

$F_{0}$ Reconstruction

  • 추가적으로 DiffPitch는 target voice style에 대해 다양한 pitch contour를 가짐
    - 따라서 Diff-HierVC는 DiffPitch를 VC task 중에 적용하여 $F_{0}$를 변환함

Target Speech에 대한 $F_{0}$ Generation

  • Zero-Shot VC
    • 전체적으로 Diff-HierVC가 가장 우수한 VC 성능을 보임

모델 성능 비교

  • Unseen language에 대한 cross-lingual VC 측면에서도 뛰어난 성능을 보임

Zero-Shot Cross-Lingual VC 성능

  • Ablation Study
    • Ablation Study 측면에서 각 component를 제거하는 경우 성능 저하가 발생함

Ablation Study

  • Masked prior를 사용하면 data-driven prior 보다 더 나은 generalization을 얻을 수 있지만, 적절한 masking ratio의 선정이 필요함
    - 실험적으로 30%의 masking ratio가 가장 적합함

Masking Ratio에 따른 성능 비교

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Total
Today
Yesterday