티스토리 뷰

반응형

FlashSpeech: Efficient Zero-Shot Speech Synthesis


  • 최근의 large-scale zero-shot speech synthesis는 language model과 diffusion을 기반으로 구축되므로 computationally intensive 하고 generation process가 느림
  • FlashSpeech
    • Latent consistency model을 기반으로 adversarial consistency training을 도입
    • Prosody generator module을 통해 prosody diversity를 향상
  • 논문 (MM 2024) : Paper Link

1. Introduction

  • Text-to-Speech (TTS)에서 zero-shot synthesis는 additional training 없이 reference audio segment에서 unseen speaker characteristic을 반영하는 것을 목표로 함
    • 특히 최근의 zero-shot TTS model은 일반적으로 Language Model (LM)이나 diffusion model에 기반함
    • BUT, 해당 방식들은 생성 과정에서 long-time iteration이 필요하다는 단점이 있음
      1. 대표적으로 VALL-E는 1-second speech를 위해 75 audio token sequence를 예측하는 autoregressive LM을 사용함
      2. Non-autoregressive latent diffusion model을 기반으로 하는 NaturalSpeech 역시 150 sampling step이 요구됨
      3. 결과적으로 LM이나 diffusion은 human-like speech를 얻을 수는 있지만, 상당한 computational cost가 필요함
        - 근본적으로 autoregressive nature나 여러 번의 denoising step이 필요하기 때문
    • 한편으로 VoiceBox, CLaM-TTS 등은 합성 속도를 향상하기 위해 flow-matching, mel-codec 등을 도입했음
      - BUT, 여전히 practical application 측면에서는 활용하기 어렵고 computational overhead가 존재함

-> 그래서 TTS에서 기존 수준의 합성 품질을 유지하면서 합성 속도를 가속할 수 있는 FlashSpeech를 제안

 

  • FlashSpeech
    • 합성 속도 향상을 위해 Latenct Consistency Model (LCM)을 도입
      - 특히 Non-autoregressive TTS system인 NaturalSpeech를 기반으로 neural audio codec encoder를 도입하여 speech waveform을 latent vector로 변환한 다음 training target으로 사용
    • FlashSpeech의 training을 위해 WavLM, HuBERT와 같은 pre-trained speech language model을 discriminator로 활용하는 Adversarial Consistency Training을 적용
    • 추가적으로 prosody generator를 통해 stability를 유지하면서 다양한 expression과 prosody를 반영

< Overall of FlashSpeech >

  • Consistency Adversarial Training을 통해 LCM을 scratch training 하고 prosody generator를 통해 diversity를 개선
  • 결과적으로 zero-shot scenario에서 빠른 합성 속도와 뛰어난 품질을 달성

2. Method

- Overview

  • FlashSpeech는 speech synthesis efficiency를 향상하여 $\mathcal{O}(1)$의 computation cost를 달성하면서 $\mathcal{O}(T), \mathcal{O}(N)$의 기존 모델과 유사한 성능을 유지하는 것을 목표로 함
    • 구조적으로는 neural codec, phoneme/prompt encoder, prosody generator, LCM으로 구성됨
      - Conditional discriminator는 training 중에만 사용됨
    • FlashSpeech는 VALL-E의 in-context learning paradigm을 채택하여 codec에서 추출된 latent vector $\mathbf{z}$를 $\mathbf{z}_{target}, \mathbf{z}_{prompt}$로 segment 함
      1. 이후 encoder는 phoneme과 $\mathbf{z}_{prompt}$를 기반으로 hidden feature를 생성하고, prosody generator는 해당 hidden feature를 기반으로 pitch, duration을 예측함
      2. Pitch, duration embedding은 hidden feature와 combine 되어 conditional feature로써 LCM에 전달됨
        - 이때 LCM은 adversarial consistency training을 통해 scratch로 training 됨
    • 결과적으로 training 이후 FlashSpeech는 1~2 sampling step 만으로도 speech synthesis가 가능함

Overall of FlashSpeech

- Latent Consistency Model

  • Consistency model은 one-step/few-step generation이 가능한 generative model임
    • Data distribution을 $p_{data}(\mathbf{x})$라고 하면 consistency model은 PF-ODE의 trajectory에 있는 모든 point를 해당 trajectory의 origin으로 mapping하는 function을 학습하는 것을 목표로 함:
      (Eq. 1) $f(\mathbf{x}_{\sigma},\sigma)=\mathbf{x}_{\sigma_{\min}}$
      - $f(\cdot, \cdot)$ : consistency function, $\mathbf{x}$, $\sigma_{\min}$ : fixed small positive number
      - $\mathbf{x}_{\sigma}$ : standard deviation $\sigma$를 가지는 zero-mean Gaussian noise로 perturb 된 data 
    • 그러면 $\mathbf{x}_{\sigma_{\min}}$은 data distribution $p_{data}(\mathbf{x})$의 approximate sample로 볼 수 있고, (Eq. 1)을 만족하기 위해 consistency model은 다음과 같이 parameterize 됨:
      (Eq. 2) $f_{\theta}(\mathbf{x}_{\sigma},\sigma)=c_{skip}(\sigma)\mathbf{x}+c_{out}(\sigma) F_{\theta}(\mathbf{x}_{\sigma},\sigma)$
      - $f_{\theta}$ : data로부터 학습하여 consistency function $f$를 추정하는 것
      - $F_{\theta}$ : parameter $\theta$를 가지는 deep neural network
      - $c_{skip}(\sigma), c_{out}(\sigma)$ : boundary condition을 보장하는 differentiable function, $c_{skip}(\sigma_{\min})=1, c_{out}(\sigma_{\min})=0$
    • 이때 valid consistency model은 self-consistency property를 만족해야 함:
      (Eq. 3) $f_{\theta}(\mathbf{x}_{\sigma},\sigma)=f_{\theta}(\mathbf{x}_{\sigma'},\sigma'),\,\,\, \forall \sigma, \sigma'\in[\sigma_{\min},\sigma_{\max}]$
      - $\sigma_{\max}=80, \sigma_{\min}=0.002$
    • 그러면 model은 다음을 evaluate 하여 one-step generation이 가능함:
      (Eq. 4) $\mathbf{x}_{\sigma_{\min}}=f_{\theta}(\mathbf{x}_{\sigma_{\max}},\sigma_{\max})$
      - $\mathbf{x}_{\sigma_{\max}}\sim\mathcal{N}(0,\sigma^{2}_{\max}I)$
    • Audio의 latent space에 consistency model을 적용하기 위해 논문은 codec의 residual quantization layer 이전에 추출된 latent feature $\mathbf{z}$를 사용함:
      (Eq. 5) $\mathbf{z}=\text{CodecEncoder}(\mathbf{y})$
      - $\mathbf{y}$ : speech waveform
    • 추가적으로 prosody generator로 얻어진 feature를 conditional feature $c$로써 추가하여 다음의 objective를 얻음:
      (Eq. 6) $f_{\theta}(\mathbf{z}_{\sigma},\sigma,c)=f_{\theta}(\mathbf{z}_{\sigma'},\sigma', c), \,\,\, \forall \sigma,\sigma'\in[\sigma_{\min},\sigma_{\max}]$
    • 추론 시에 synthesized waveform $\hat{\mathbf{y}}$는 codec decoder를 통해 $\hat{\mathbf{z}}$로부터 변환됨
      1. 이때 predicted $\hat{\mathbf{z}}$는 one-sampling step으로 얻어짐:
        (Eq. 7) $\hat{\mathbf{z}}=f_{\theta}(\epsilon *\sigma_{\max},\sigma_{\max})$
      2. 다음의 two-sampling step을 활용할 수도 있음:
        (Eq. 8) $\hat{\mathbf{z}}_{inter}=f_{\theta}(\epsilon *\sigma_{\max},\sigma_{\max})$
        (Eq. 9) $\hat{\mathbf{z}}=f_{\theta}(\hat{\mathbf{z}}_{inter}+\epsilon *\sigma_{inter},\sigma_{inter})$
        - $\hat{\mathbf{z}}_{inter}$ : intermediate step, $\sigma_{inter}$ : 2로 설정
        - $\epsilon$ : standard Gaussian distribution에서 sample 된 값 

- Adversarial Consistency Training

  • LCM은 first stage에서 diffusion-based teacher model을 pre-train 한 다음, distillation을 통해 final model을 얻어야 하므로 training process가 복잡하고 distillation으로 인한 성능 제한이 존재함
    • 따라서 FlashSpeech는 teacher model에 대한 dependency를 제거하기 위해 LCM을 scratch로 training 하는 Adversarial Consistency Training을 도입함
    • 해당 Adversarial Consistency Training은 크게 3 부분으로 구성됨
  • Consistency Training
    • 먼저 (Eq. 3)의 property을 만족하기 위해 다음의 consistency loss를 채택하자:
      (Eq. 10) $\mathcal{L}_{ct}^{N}(\theta,\theta^{-})=\mathbb{E}[ \lambda(\sigma_{i})d(f_{\theta}(\mathbf{z}_{i+1},\sigma_{i+1},c),f_{\theta^{-}}(\mathbf{z}_{i},\sigma_{i},c) )]$
      - $\sigma_{i}$ : discrete time step $i$에서의 noise level, $d(\cdot, \cdot)$ : distance function

      - $f_{\theta}(\mathbf{z}_{i+1},\sigma_{i+1},c), f_{\theta^{-}}(\mathbf{z}_{i},\sigma_{i},c)$ : higher noise level student, lower noise level teacher
    • Discrete time step $\sigma_{\min}=\sigma_{0}<\sigma_{1}<...<\sigma_{N}=\sigma_{\max}$는 time interval $[\sigma_{\min},\sigma_{\max}]$에서 divide 되고, discretization curriculum $N$은 training step이 증가함에 따라 함께 증가함:
      (Eq. 11) $N(k)=\min\left(s_{0}2^{\left\lfloor \frac{k}{K'}\right\rfloor}, s_{1}\right)+1$
      - $K'=\left\lfloor \frac{K}{\log_{2}\lfloor s_{1}/s_{0}\rfloor +1} \right\rfloor$
      - $k$ : current training step, $K$ : total training step, $s_{1}, s_{0}$ : $N(k)$의 size를 control 하는 hyperparameter
    • Distance function $d(\cdot, \cdot)$은 Pseudo-Huber metric으로써:
      (Eq. 12) $d(x,y)=\sqrt{||x-y ||^{2}+a^{2}}-a$
      - $a$ : adjustable constant
      - 즉, $\ell_{2}$ loss보다 큰 error에 대해 smaller penalty를 부과하여 outlier에 대한 training을 robust 하게 만드는 역할
    • Teacher model parameter $\theta^{-}$는:
      (Eq. 13) $\theta^{-}\leftarrow \text{stopgrad}(\theta)$
      - Student parameter $\theta$와 동일
    • Weighting function은:
      (Eq. 14) $\lambda(\sigma_{i})=\frac{1}{\sigma_{i+1}-\sigma_{i}}$
      - Smaller noise level의 loss를 emphasize 하는 역할
    • 해당 consistency training을 통해 LCM은 few-step 만으로도 acceptable quality의 음성을 생성할 수 있지만, 기존 수준에는 도달하지 못함
      - 따라서 논문은 sample quality를 더욱 향상하기 위해 adversarial training을 도입함
  • Adversarial Training
    • Adversarial objective를 위해 generated sample $\hat{\mathbf{z}}\leftarrow f_{\theta}(\mathbf{z}_{\sigma},\sigma,c)$와 real sample $\mathbf{z}$는 discriminator $D_{\eta}$에 전달됨
      - 여기서 discriminator는 각각을 distinguish 하는 것을 목표로 함
      - $\eta$ : traininable parameter
    • 그러면 adversarial training loss는:
      (Eq. 15) $\mathcal{L}_{adv}(\theta,\eta)=\mathbb{E}_{\mathbf{z}}[\log D_{\eta}(\mathbf{z})]+ \mathbb{E}_{\sigma}\mathbb{E}_{\mathbf{z}_{\sigma}}[\log (1-D_{\eta}(f_{\theta}(\mathbf{z}_{\sigma},\sigma,c)))]$
    • 구체적으로 frozen pre-trained speech language model $SLM$과 trainable lightweight discriminator head $D_{head}$를 사용하여 discriminator를 구축함 
      1. 먼저 $SLM$은 speech waveform에서 train 되므로 codec decoder를 사용하여 $\mathbf{z},\hat{\mathbf{z}}$를 ground-truth waveform과 predicted waveform으로 변환함
      2. 이때 prompt audio와 generated audio 간의 similarity를 향상하기 위해 discriminator는 prompt audio feature에 따라 conditioning 됨
      3. 해당 prompt feature $F_{prompt}$는 prompt audio에 $SLM$을 통해 추출되고, time-axis에 average pooling을 적용하여 사용됨
    • 결과적으로:
      (Eq. 16) $D_{\eta}=D_{head}(F_{prompt}\odot F_{gt},F_{prompt}\odot F_{pred})$
      - $F_{gt}, F_{pred}$ : $SLM$을 통해 얻어진 ground-truth/predicted waveform의 feature
      - Discriminator head는 여러 개의 1D convolution layer로 구성되고, discriminator의 input feature는 $F_{prompt}$에 따라 condition 됨
  • Combined Together
    • Consistency loss와 Adversarial loss 간에는 loss scale gap이 존재하므로 training instability와 failure가 발생할 수 있음 
    • 따라서 FlashSpeech는 다음의 adaptive weight를 적용함:
      (Eq. 17) $\lambda_{adv}=\frac{|| \nabla_{\theta_{L}}\mathcal{L}_{ct}^{N}(\theta,\theta^{-})||}{|| \nabla_{\theta_{L}}\mathcal{L}_{adv}(\theta,\eta|| } $

      - $\theta_{L}$ : LCM network의 last layer
    • 결과적으로 얻어지는 LCM의 final training loss는 $\mathcal{L}_{ct}^{N}(\theta,\theta^{-})+\lambda_{adv}\mathcal{L}_{adv}(\theta, \eta)$과 같음
      - 해당 adaptive weighting은 각 term의 gradient scale을 balancing 하여 training을 stabilize 함

Adversarial Consistency Training

- Prosody Generator

  • Analysis of Prosody Prediction
    • FastSpeech2 등에서 사용된 prosody prediction은 unimodal distribution에 대한 가정과 deterministic mapping으로 인해 human speech prosody의 expressiveness를 반영하지 못함
      - 따라서 variation이 부족하고 over-smooth 한 prediction이 발생함
    • 한편으로 VoiceBox와 같은 diffusion method는 prosody diversity를 제공할 수 있지만, stability의 문제가 있음
      - 추가적으로 iterative inference로 인해 real-time application에서 활용하기 어려움
      - 마찬가지로 LM-based method인 Mega-TTS, VALL-E 등도 추론에 많은 시간이 필요함
    • 따라서 FlashSpeech는 prosody regression module과 prosody refinement를 기반으로 one-step consistency model sampling에 대한 prosody diversity를 향상함
  • Prosody Refinement via Consistency Model
    • FlashSpeech의 prosody generator는 prosody regression과 prosody refinement로 구성됨
      1. 먼저 prosody regression module을 통해 deterministic output을 얻음
      2. 이후 prosody regression module parameter를 freeze 하고 ground-truth prosody와 deterministic predicted prosody 간의 residual을 prosody refinement의 training target으로 설정함
        - 이때 consistency model을 prosody refinement module로 사용
      3. 해당 consistency model의 conditional feature는 final projection layer 이전의 prosody regression으로 얻어진 feature에 해당함
      4. 따라서 stochastic sampler의 residual은 deterministic prosody regression의 output을 refine 하고 동일한 transcription과 audio prompt로부터 plausible prosody를 생성할 수 있음
    • 그러면 final prosody output $p_{final}$은 다음과 같이 represent 될 수 있음:
      (Eq. 18) $p_{final}=p_{res}+p_{init}$
      - $p_{final}$ : final prosody output, $p_{res}$ : prosody refinement module의 residual output
      - $p_{init}$ : prosody regression module의 initial deterministic prosody prediction
    • BUT, (Eq. 18)의 formulation은 prosody stability에 부정적인 영향을 줄 수 있음
      1. 구체적으로, higher diversity는 stability를 떨어트리고 unnatural prosody를 생성할 수 있음
      2. 따라서 논문은 prosodic output에서 stability와 diversity를 finely tuning 하는 control factor $\alpha$를 도입함:
        (Eq. 19) $p_{final}=\alpha p_{res}+p_{init}$
        - $\alpha$ : $[0,1]$ 사이의 scalar value

Prosody Generator

3. Experiments

- Settings

  • Dataset : Multilingual LibriSpeech (MLS)
  • Comparisons : VALL-E, VoiceBox, NaturalSpeech, Mega-TTS, CLaM-TTS
  • Hyperparameter
    • (Eq. 12)의 $a$는 $0.03$으로 설정
    • (Eq. 10)에서, $\sigma_{i}=\left(\sigma_{\min}^{1/\rho}+\frac{i-1}{N(k)-1}\left( \sigma_{\max}^{1/\rho}-\sigma_{\min}^{1/\rho}\right)\right)^{\rho}$
      - $i\in[1,N(k)], \rho=7, \sigma_{\min}=0.002, \sigma_{\max}=80$
    • (Eq. 11)의 $N(k)$에 대해 $s_{0}=10, s_{1}=1280, K=600k$로 설정
      - Second stage에서는 $s_{1}=160, K=150k$로 설정

- Results

  • FlashSpeech는 가장 낮은 RTF를 가지면서 뛰어난 합성 품질 (MOS)를 보임

RTF 비교
모델 성능 비교

  • User preference 측면에서도 FlashSpeech가 선호됨

User Preference

  • Ablation Studies of LCM
    • WavLM을 discriminator로 채택하는 경우 가장 우수한 UTMOS, Sim-O를 얻을 수 있음

Discriminator Design 비교

  • LCM에 대해 $2$의 sampling step을 사용하는 경우 최적의 결과를 달성함

Sampling Step 비교

  • Ablation Studies of Prosody Generator
    • $\alpha$ 값에 따라 prosody diversity와 speech intelligibility 간 trade-off가 발생함

Pitch에 대한 Control Factor의 영향

  • Duration 측면에서도 $\alpha$에 따라 diversity, stability의 trade-off가 발생함

Duration에 대한 Control Factor의 영향

  • Voice Conversion
    • Voice Conversion 측면에서 DDDM-VC, YourTTS와 비교
    • 마찬가지로 FlashSpeech가 가장 뛰어난 성능을 보임

Voice Conversion 성능 비교

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2025/01   »
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