티스토리 뷰

반응형

SpecDiff-GAN: A Spectrally-Shaped Noise Diffusion GAN for Speech and Music Synthesis


  • Generative Adversarial Network는 빠른 합성을 보장하면서 고품질의 음성을 생성할 수 있음
  • SpecDiff-GAN
    • Discriminator 이전에 Gaussian noise를 real/fake sample 모두에 inject 하는 forward diffusion process를 통해 training stability를 향상
    • Discriminator task를 더 어렵게 만드는 spectrally-shaped noise 분포를 도입
  • 논문 (ICASSP 2024) : Paper Link

1. Introduction

  • Audio 합성은 주어진 acoustic feature를 기반으로 natural-sounding audio signal을 합성하는 것을 목표로 함
    • 일반적으로 사용되는 autoregressive 모델은 sequential한 특성으로 인해 추론 시간이 느리다는 단점이 있음
    • Flow-based 모델은 complex invertible 변환을 수행해야 하므로 parameter-inefficient 함
    • Generative Adversarial Network (GAN)은 빠르고 계산 효율적이면서 고품질의 합성이 가능함
      - BUT, training이 어렵고 mode collapse와 같은 문제를 겪을 수 있음
    • 한편으로 GAN의 단점은 Denoising Diffusion Probabilistic Model (DDPM)의 도입으로 해결할 수 있음
      - BUT, reverse process를 수행하기 위해서는 많은 step 수를 필요로 함
       

-> 그래서 audio 합성에서 GAN의 stability 문제와 DDPM의 추론 속도 문제를 해결하는 SpecDiff-GAN을 제안

 

  • SpecDiff-GAN
    • HiFi-GAN을 기반으로 noise-shaping diffusion process를 적용
      - Training stability를 위해 discriminator의 input (real/fake)에 instance noise를 inject
    • Discriminator task를 어렵게 하는 spectrally-shaped noise 분포를 활용
      - Mel-spectrogram input의 spectral envelope를 기반으로 한 inverse filter를 사용하여 여러 noise 분포를 비교

< Overall of SpecDiff-GAN >

  • Gaussian noise를 real/fake sample 모두에 inject 하는 forward diffusion process를 적용하여 training stability를 향상
  • Spectrally-shaped noise 분포를 활용하여 discriminator task를 개선
  • 결과적으로 우수한 합성 품질과 빠른 추론 속도를 달성함

2. Method

- Architecture

  • Generator는 HiFi-GAN의 architecture를 활용함
    • 이때 periodic pattern을 효과적으로 capture 하기 위해 period $p$로 parameterize 된 여러 개의 sub-discriminator로 구성되는 Multi-Period Discriminator (MPD)를 도입
    • 한편으로 Multi-Scale Discriminator (MSD) 대신 UnivNetMulti-Resolution Discriminator (MRD)를 사용
      - MRD를 사용하면 sample 품질이 더욱 향상되고 artifact를 줄일 수 있음
    • 이러한 temporal/spectral resolution discriminator를 통해 full-band에 걸쳐 high-resolution signal을 생성할 수 있음

Overview of SpecDiff-GAN

- Enhancing the GAN Model with Diffusion

  • GAN training에 diffusion process를 적용하여 discriminator가 original/generated data의 perturbed version을 distinguish 하는 방법을 학습하도록 함
    • Forward diffusion process 동안 $x_{0}\sim q(x_{0})$로 denote 되는 initial sample은 Gaussian noise에 의해 점진적으로 perturb 되는 $T$ sequential step을 거침
      1. Noise schedule을 $\{ \beta \}_{t=1}^{T}$라 하면, 위 과정은 $q(x_{1:T}|x_{0})=\prod_{t\geq 1}q(x_{t}|x_{t-1})$로 formalize 할 수 있음
        - 이때 $q(x_{t}|x_{t-1})=\mathcal{N}(x_{t};\sqrt{1-\beta_{t}}x_{t-1},\beta_{t}I)$
      2. $\alpha_{t}=1-\beta_{t}, \bar{\alpha}_{t}=\prod_{u=1}^{t}\alpha_{u}$라고 하면, forward process에서 $x_{t}$는 arbitrary time step $t$에서 $x_{t}=\sqrt{\bar{\alpha}_{t}}x_{0}+\sqrt{1-\bar{\alpha}_{t}}\epsilon$에 의해 closed form으로 sampling 됨
        - $\epsilon \sim \mathcal{N}(0,\Sigma)$
    • $x\sim p(x)$는 ground-truth audio이고 $s$는 generator의 input condition (mel-spectrogram)이라고 하면, $G(s)$는 generated signal로 나타낼 수 있음
    • 이때 perturbed sample은 다음과 같이 얻어짐:
      (Eq. 1) $y \sim q(y|x,t), \,\, y=\sqrt{\bar{\alpha}_{t}}x+\sqrt{1-\bar{\alpha}_{t}}\epsilon$
      (Eq. 2) $y_{g}\sim q(y_{g}|G(s),t),\,\, y_{g}=\sqrt{\bar{\alpha}_{t}}G(s)+\sqrt{1-\bar{\alpha}_{t}}\epsilon'$
      - $\epsilon, \epsilon' \sim \mathcal{N}(0,\Sigma)$
      - $q(y|x,t)$ : target data $x$와 diffusion step $t$가 주어졌을 때 noisy sample $y$의 conditional 분포
      - $q(y_{g}|G(s),t)$ : generated signal $G(s)$와 diffusion step $t$가 주어졌을 때 noisy sample $y_{g}$의 conditional 분포

- Noise Distribution

  • $\Sigma$에 대한 2가지 option을 고려할 수 있음
    1. $\Sigma_{standard}=\sigma^{2}I$로 설정한 경우 : StandardDiff-GAN
      - $\sigma$ : scalar, $I$ : identity matrix
    2. SpecGrad와 같이 spectral envelope를 기반으로 noise를 설정한 경우 : SpecDiff-GAN
      • 이때 filter $\mathbf{M}_{spec}$은 SpecGrad에서 사용된 filter의 inverse임 ($\mathbf{M}_{spec}=\mathbf{M}_{SG}^{-1}$) 
        - 이는 low-energy region에서 increased noise incorporation을 강조하는 noise 분포를 생성하므로 discriminator task를 어렵게 만들 수 있음
      • 여기서 SpecDiff-GAN의 noise 분포 분산은 $\Sigma_{spec} =  \mathbf{L}_{spec}\mathbf{L}_{spec}^{T}$로 설정
        - $\mathbf{L}_{spec} = \mathbf{G} \mathbf{M}_{spec} \mathbf{G}^{+}$
        - $\mathbf{G}, \mathbf{G}^{+}$ : STFT와 그 inverse에 대한 matrix representation

- Adaptive Diffusion

  • Interval $[T_{\min},T_{\max}]$ 내에서 $T$로 denote 되는 최대 diffusion step 수에 대한 adaptive update mechanism을 사용하여 training 중에 discriminator의 difficulty를 dynamically regulate
    • 이러한 adaptive adjustment를 통해 discriminator가 real/fake sample을 distinguish 하는 방법을 학습할 때 다양한 어려움을 겪을 수 있도록 보장
      - Discriminator가 학습에 어려움을 겪으면 $T$를 줄여 non-perturbed sample 같은 단순한 sample에서 학습하도록 하고,
      - Discriminator가 너무 쉽게 distinguish 하면 $T$를 늘려 sample에 더 많은 complexity를 부여함
    • 이때 training data에 대한 discriminator의 overfitting 정도를 정량화하기 위해
      1. $B$ consecutive minibatch에서 계산되는 아래의 metric을 도입:
        (Eq. 3) $r_{d}=\mathbb{E}[\mathrm{sign}(D_{train}-0.5)]$
        - $D_{train}$ : training set sample에 대한 discriminator output
        - $\mathbb{E}[\cdot]$ : $B$ minibatch의 평균
        - $r_{d}$가 1에 가까우면 overfitting을 의미하고, 0에 가까우면 overfitting이 없음을 의미
      2. 이에 따라 다음과 같이 $B=4$ minibatch 마다 $T$를 update 함:
        (Eq. 4) $T\leftarrow T +\mathrm{sign}(r_{d}-d_{target})\cdot C$

        - $d_{target}$ : $r_{d}$에 대해 desired value를 나타내는 hyperparameter
        - $C$ : $T$가 $T_{\min}$에서 $T_{\max}$로 transition 되는 rate를 regulate 하는 constant
      3. 이후 diffusion timestep $t\leq T$는 $c_{T}=\sum_{u=1}^{T}u$로 정의된 discrete 분포 $p_{\pi}$에서 다음과 같이 도출됨:
        (Eq. 5) $t\sim p_{\pi}:=\mathrm{Discrete}(1/c_{T},2/c_{T},...,T/c_{T})$
        - 해당 분포는 큰 $t$ 값에 더 많은 weight를 부여하여 training 중 diffusion step 선택에 영향을 미침

- Training Losses

  • SpecDiff-GAN의 training loss는
    • Simplicity를 위해 두 discriminator를 $D$라고 하면, discriminative loss는:
      (Eq. 6) $\mathcal{L}_{D}=\mathbb{E}_{(x,s,t,y,y_{g})}[(D(y)-1)^{2}+(D(y_{g}))^{2}]$
      - $y, y_{g}$ : (Eq. 1), (Eq. 2)
    • Generator loss는 adversarial loss와 feature matching (FM) loss, mel-spectrogram loss를 사용하여 formulate 됨:
      (Eq. 7) $\mathcal{L}_{G}=\mathbb{E}_{(s,t,y_{g})}[(D(y_g)-1)^{2}]+\lambda_{FM}\mathbb{E}_{(x,s,t,y,y_{g})}\left[ \sum_{i=1}^{L}\frac{1}{N_{i}}|| D^{i}(y)-D^{i}(y_{g})||_{1} \right]$
      $\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, +\lambda_{mel}\mathbb{E}_{(x,s)}[|| \phi(x)-\phi(G(s)) ||_{1}]$

      - $\lambda_{FM}, \lambda_{mel}$ : scalar coefficient, $\phi$ : mel-spectrogram transform function
      - $L$ : layer 수, $D^{i}$ : discriminator $i$-th layer의 feature, $N_{i}$ : 해당 feature의 수

3. Experiments

- Settings

- Results

  • Inference Results for the Different Datasets
    • LJSpeech dataset에서의 결과를 확인해 보면, SpecDiff-GAN은 기존 모델들과 비교하여 가장 우수한 성능을 보임
    • 특히 SpecDiff-GAN은 noise shaping으로 인해 $\Sigma_{standard}$를 사용하는 StandardDiff-GAN 보다 더 뛰어남

LJSpeech에서의 합성 결과 비교

  • VCTK에서의 합성 결과를 비교해 보면, SpecDiff-GAN은 BigVGAN과 비교할만한 성능을 보임
    - 특히 baseline인 HiFi-GAN, UnivNet과 비교하여 SpecDiff-GAN, StandardDiff-GAN은 상당한 성능 차이를 보임

VCTK에서의 합성 결과 비교

  • MAPS, ENST-Drums에서의 결과를 비교해 보면,
    • MAPS에서도 마찬가지로 SpecDiff-GAN이 좋은 성능을 보임
    • ENST-Drums의 경우, StandardDiff-GAN이 우수한 성능을 보였는데, 이는 작은 dataset size와 동일한 드럼 연주의 영향 때문

MAPS, ENST-Drums에서의 합성 결과 비교

  • Ablation Study
    • MRD, diffusion process, reshaped noise 분포에 대한 ablation study를 수행해 보면
    • Spectrally-shaped noise 분포를 제거하고 $\Sigma_{standard}$를 채택하는 경우 성능이 저하됨
    • 마찬가지로 MRD를 대체하거나 diffusion process를 배제하는 경우에도 성능 저하가 발생

Ablation Study 결과

  • Model Complexity
    • BigVGAN과 비교하여 SpecDiff-GAN은 대략 200k 더 적은 parameter 수를 가지고 더 빠른 합성 속도를 보임
    • BigVGAN의 추론 속도 저하는 snake activation function의 존재 때문

합성 속도 비교

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/12   »
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 31
Total
Today
Yesterday