티스토리 뷰

반응형

PriorSinger: Singing Voice Synthesis Model with Prior Condition Cross Attention


  • Singing voice synthesis는 주어진 musical score를 기반으로 expressive, realistic singing을 생성하는 것을 목표로 함
  • PriorSinger
    • Denoising process 중에 prior cross-attention transformer를 사용하여 diffusion denoiser를 guiding
    • Generated acoustic feature resolution을 향상하기 위해 diffusion denoiser 내에서 time/frequency domain에 대한 attention mechanism을 도입
    • 추가적으로 rotary positional encoding을 통해 temporal/frequency positional information modeling을 지원
  • 논문 (ICASSP 2025) : Paper Link

1. Introduction

  • Singing Voice Synthesis (SVS)는 musical score에서 singing voice를 생성하는 것을 목표로 함
    • 이때 SVS는 text-to-speech (TTS)와 달리 pitch/rhythm의 variation도 반영할 수 있어야 함
    • 일반적으로 SVS는 acoustic model과 vocoder의 2가지 component로 구성됨
      1. Acoustic model은 musical note, lyrics와 같은 input으로부터 mel-spectrogram을 생성하고 vocoder는 synthesized mel-spectrogram을 waveform으로 변환함 
      2. 특히 기존의 singing acoustic model은 $L1, L2$와 같은 loss function을 통해 acoustic feature를 reconstruction 함
        - BUT, 해당 optimization은 incorrect unimodal dsitribution assumption에 기반하므로 blurry output을 생성할 수 있음
      3. 이를 해결하기 위해 VISinger, VISinger2와 같이 Generative Adversarial Network (GAN)을 도입할 수 있지만 discriminator로 인한 training instability 문제가 존재함
    • 한편으로 Denoising Diffusion Probabilistic Model (DDPM)은 Gaussian white noise로부터 speech spectrogram을 iteratively restore 하는 방식으로 higher quality의 audio를 합성할 수 있음

-> 그래서 diffusion model을 기반으로 prior condition을 반영한 SVS model인 PriorSinger를 제안

 

  • PriorSinger
    • Lyric phoneme sequence 외에도 note duration/pitch와 같은 musical score information을 mel-spectrogram을 합성하기 위한 piror condition으로 encoding
    • Diffusion denoiser를 통해 restore 된 mel-spectrogram의 time-frequency domain detail을 향상하기 위해 Prior Cross-Attention Transformer를 적용
    • Prior condition을 query로 사용해 diffusion denoiser를 guiding 하는 Prior Condition Cross-Attention을 도입
    • 추가적으로 musical score의 positional information을 활용하기 위해 Rotary Positional Encoding을 채택하여 embedding vector의 positional information을 encoding

< Overall of PriorSinger >

  • Diffusion mechanism을 기반으로 Prior Cross-Attention Transformer를 적용한 SVS model
  • 결과적으로 기존보다 뛰어난 합성 품질을 달성

2. Method

  • PriorSinger에서 lyrics, pitch, duration과 같은 musical score information은 각각의 encoder를 통해 embedding token으로 변환됨
    • Aligner는 embedding token을 spectrum과 align 하여 prior condition $\xi$를 얻음
    • Diffusion denoiser는 noisy spectrum으로부터 generated mel-spectrogram을 restore 함
    • Vocoder는 mel-spectrogram을 waveform으로 변환함

Overall of PriorSinger

- Prior Condition Encoder

  • Singing voice의 rhythmic quality를 향상하기 위해서는 lyrics 뿐만 아니라 pitch, note duration도 encoding 해야 함
    • 먼저 lyrics encoder는 lyrics를 phoneme sequence로 변환하고 phoneme ID를 embedding sequence에 mapping 함 
      1. 이후 embedding sequence는 stacked transformer block을 통해 linguistic hidden sequence로 변환됨
      2. 각 note pitch는 MIDI standard에 따라 pitch ID로 변환되고, note duration은 musical beat에 따라 quantize 되어 frame number (phoneme frame)으로 변환됨
      3. 추가적으로 slur encoder는 note가 slur 되었는지 여부를 modeling 함
    • Pitch encoder와 slur encoder는 각각 pitch ID, slur condition을 embedding layer를 통해 pitch embedding sequence, slur embedding sequence로 변환함
      Note duration은 linear layer를 통해 duration embedding으로 변환됨
    • 최종적으로 phoneme embedding $E_{Phone}$, pitch embedding $E_{Pitch}$, duration embedding $E_{Dur}$, slur embedding $E_{Slur}$를 add 한 다음, Rotary Position Embedding (RoPE)를 통해 note의 positional information을 encode 함 
    • 한편으로 embedding token $E$, mel-spectrogram 사이에서 most likely alignment attention map을 찾기 위해 Monotonic Alignment Search (MAS)를 적용함
      1. 여기서 alignment attention map을 통해 embedding token $E$를 prior condition $\xi$로 변환함
        - 이를 mel-spectrogram에 대한 rough representation으로 취급할 수 있음
      2. 추론 시에는 target mel-spectrogram length가 invisible 하므로 alignment attention map을 계산하기 위해서는 duration predictor가 필요함
        - 이후 Gaussian noise $X_{N}$, time step $t_{N}$, prior condition $\xi$를 diffusion denoiser input으로 전달하여 mel-spectrogram을 restore 함

- Diffusion Denoiser

  • Diffusion denoiser는 encoder-decoder architecture를 따름 
    • 각 encoder/decoder block에는 2개의 residual network block (ResnetBlock), linear attention, 2D convolution/deconvolution (Conv2D/DeConv2d)가 포함됨
    • 이때 encoder block은 time-frequency domain에서 embedding token을 compress 하고 decoder block은 compressed token을 restore 함 
    • 추가적으로 논문은 encoder/decoder block 사이에 stacked prior cross-attention transformer를 도입함 
      1. 해당 prior cross-attention transformer는 temporal-frequency dimension에서 self-attention을 수행하여 mel-spectrogram quality를 향상함
      2. Prior cross-attention을 도입하는 경우 prior condition을 통해 reverse diffusion process를 facilitate 할 수 있음

(a) Diffusion Denoiser (b) Prior Cross-Attention Transformer

- Prior Cross-Attention Transformer

  • Prior Cross-Attention Transformer는 frequency self-attention (FA), temporal self-attention (TA), prior condition corss-attention (CA), Multi-Layer Perceptron (MLP)를 포함함
    • 먼저 $C, T,F$를 각각 channel size, frame 수, frequency dimension이라고 하자
      1. Frequency self-attention의 경우, input feature $X\in \mathbb{R}^{B\times T \times F\times C}$는 $X'\in\mathbb{R}^{BT\times F\times C}$로 reshape 됨
      2. 이후 input feature는 linear layer를 통해 query $Q_{FA}\in\mathbb{R}^{BT\times F\times C}$, key $K_{FA} \in\mathbb{R}^{BT\times F\times C}$, value $V_{FA}\in\mathbb{R}^{BT\times F\times C}$로 변환됨
      3. 그러면 $Q_{FA},K_{FA}$는 layer normalization, RoPE와 함께 다음과 같이 적용됨:
        (Eq. 1) $Q'_{FA}=\text{RoPE}(\text{LayerNorm}(Q_{FA}))$
        (Eq. 2) $K'_{FA}=\text{RoPE}(\text{LayerNorm}(K_{FA}))$
      4. 결과적으로 FA는 다음과 같이 계산됨:
        (Eq. 3) $A_{FA}=\text{Linear}\left(\text{Softmax}\left(\frac{Q'_{FA}\times {K'_{FA}}^{\top}}{\sqrt{C}}\right)\times V_{FA}\right)$
        - $\top$ : matrix transpose
    • (Eq. 3)과 같이 FA 계산 시, time impact는 고려하지 않고 channel 간의 frequency point만 고려함
      - 마찬가지로 TA 계산은 FA와 동일하지만 frequency 대신 temporal dimension 만을 고려함
    • TA 이후에는 prior condition cross-attention이 적용됨
      1. 먼저 $m$-stacked ResnetBlock과 Conv2D를 사용하여 time-frequency domain에서 prior condition $\xi$를 $\xi'$로 compress 해 TA의 output dimension $A_{TA}$ match 하도록 함 
      2. 여기서 $\xi'$ query 역할을 하고 linear layer, layer normalization, RoPE를 통과해 $Q'_{CA}\in\mathbb{R}^{B\times TF\times C}$를 생성함
        - $K_{CA}\in\mathbb{R}^{B\times TF\times C}, V_{CA}\in\mathbb{R}^{B\times TF\times C}$는 $A_{TA}$를 3-linear layer를 통과시켜 얻어짐
        - $K'_{CA}$는 $K_{CA}\in\mathbb{R}^{B\times TF\times C}$를 layer normalization, RoPE에 전달하여 얻어짐
      3. 결과적으로 CA output은:
        (Eq. 4) $A_{CA}=\text{Linear}\left(\text{Softmax}\left(\frac{Q'_{CA}\times {K'_{CA}}^{\top} }{\sqrt{C}}\right)\times V_{CA}\right)$
        - CA는 entire time-frequency domain의 all point를 처리하여 denoising process를 guide 함

- Loss Function 

  • PriorSinger는 duration loss, prior loss, diffusion loss에 대한 combined loss function을 통해 training 됨
    • 먼저 duration predictor를 사용하여 각 phoneme의 duration을 추정하고, 이때 loss function은:
      (Eq. 5) $\mathcal{L}_{dur}=||\log(d_{pred})-\log(d_{GT})||^{2}$
      - $d_{GT},d_{pred}$ : 각각 ground-truth/estimated phoneme duration
    • Prior condition $\xi$는 prior loss function을 통해 추정됨:
      (Eq. 6) $\mathcal{L}_{prior}=||\xi-\text{mel}_{GT}||^{2}$
      - $\text{mel}_{GT}$ : ground-truth mel-spectrogram
    • Diffusion loss는:
      (Eq. 7) $\mathcal{L}_{diff}=||D(X_{t},t,\xi)-X_{0}||^{2}$
      - $X_{t}$ : step $t$에서의 state, $D(X_{t},t,\xi)$ : denoising 이후의 state
    • 결과적으로 PriorSinger의 combined loss function은:
      (Eq. 8) $\mathcal{L}_{comb}=\mathcal{L}_{diff}+\mathcal{L}_{dur}+\mathcal{L}_{prior}$

3. Experiments

- Settings

- Results

  • 전체적으로 PriorSinger의 성능이 가장 우수함

성능 비교

  • Mel-spectrogram 측면에서도 PriorSinger는 richer spectral detail을 가짐

Mel-Spectrogram

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

Ablation Study

 

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