상세 컨텐츠

본문 제목

[논문 리뷰 스터디] DIFFSVC: A Diffusion Probabilistic Model for Singing Voice Conversion

심화 스터디/논문 리뷰 스터디

by 원준천 2023. 5. 4. 15:15

본문

작성자: 16기 천원준

https://liusongxiang.github.io/diffsvc/

 

DiffSVC: A Diffusion Probabilistic Model for Singing Voice Conversion

DiffSVC demo page

liusongxiang.github.io

 

 

 

Introduction

  • Singing Voice Conversion (SVC)는 노래하는 목소리의 멜로디나 특징들을 바꾸지 않으며 타겟 목소리로 바꾸는 작업
  • SVC 모델은 원본 시그널에서 content feature를 추출하는 content encoder와 content features를 acoustic feature나 waveform으로 변환시키는 conversion model로 구성
  • DiffSVC에서는 conversion model에 diffusion probabilisitc modeling을 활용
  • Diffusion mode은 두가지 process로 구성
    • DIffusion/Forward process: 고정된 파라미터를 가진 Markov chain으로 데이터에 가우시안 노이즈를 부여하여 isotropic Gaussian distribution으로 변환
    • Reverse process: 반복적인 방법으로 가우시안 노이즈로부터 데이터를 복원하는 Markov chain
  • DiffSVC는 content encoder로 automatic speech recognition (ASR) 모델을 사용하여 phonetic posteriorgrams (PPGs)를 content features로 추출
  • 그 후 diffusion model은 content, melody, loudness를 조절하여 mel spectrogram의 가우시안 노이즈를 지우는 방향으로 학습
  • 모델의 의의:
    • 처음으로 SVC에 diffusion probabilistic model 적용
    • 기존 모델보다 SVC에 있어 자연스럽고 목소리가 유사

 

 


Related Work

Singing Voice Conversion

  • SVC는 크게 parallel SVC와 non parallel SVC로 구분
  • 초기엔 parallel SVC가 연구됐지만 parallel data는 비용이 많이 들어 다양한 non parallel SVC 방법론이 연구됨
  • 최근엔 PPG와 waveform generator를 합친 모델이 좋은 성능을 보이고 있음

Diffusion Probabilistic Models

  • Diffusion model에 대한 두 가지 연구가 진행
    • Data density estimation을 socre matching problem으로 단순화
    • Diffusion Markov chain을 이용하여 데이터 구조를 가우시안 노이즈로 분해하고 reverse process를 사용하여 가우시안 노이즈에서부터 데이터를 생성

Diffusion Probabilistic Model

DIffusion model Graphic
Diffusion model 수식

Data는 y0 ~ q(y0)

y1, ... , yT는 y0과 같은 dimenionality를 갖는 latent variables

T는 diffusion steps의 총 횟수

 

Diffusion/Forward Process

Joint probability of the Latent Variable

  • 데이터에 점점 노이즈를 추가하여 T 스텝 이후에 데이터 구조가 완전히 망가지게 하는 Markov chain
  • 체인 전이는 주로 결정론적 노이즈 일정 β1,...,βT에 따라 조건부 가우시안 전이로 모델링
  • β1 < β2 <... < βT를 만족하도록 설정
  • 수식: q(yt|yt-1) = N(yt; √(1-βt) yt-1, βtI)
    • 현재 단계의 값인 yt가 이전 단계의 값인 yt-1과 추가된 노이즈에 따라 가우시안 분포를 따르도록 모델링
    • 평균은 √(1-βt)yt-1이고 공분산은 βtI

 

Reverse Process

  • 가우시안 노이즈로부터 원래 데이터를 복원하는 게 목적
  • Latent variable의 조건부 분포를 추정하는 것으로 이루어짐
  • Isotropic Gaussian p(yT) = N (yT;0, I)에서 시작하며 reverse process의 결합분포 pθ(y0:T)는 다음 식을 만족하며

Joint distribution for reverse process

  • pθ(yt-1|yt)는 N(yt-1; µθ(yt, t), σθ(yt, t)^2I)로 parameterized
  • pθ(yt-1|yt)는 확산 모델의 역확산/역방향 과정에서 사용되는 전이 확률 분포
    • 현재 관측된 값인 yt와 이전 단계 추정 값인 yt-1이 주어졌을 때, 다음 단계에서 추정해야 할 값 yt-1에 대한 조건부 확률 분포를 나타냄
    • 이것은 가우시안 분포로 모델링되며, 평균 µθ(yt, t)와 공분산 σθ(yt, t)^2I를 가지고 있다
  • µθ(yt, t)와 σθ(yt, t)는 각각 잠재 변수 yt와 시간 t에 따라 변하는 매개 변수
  • 이 매개 변수는 T개의 전이 확률 분포 중에서 모두 공유됩니다. 따라서, pθ(yt-1|yt)는 모든 전이 확률 분포에 대해 동일한 매개 변수 θ를 사용

 

Training Diffusion Model

  • Diffusion model의 학습 목표는 model likelihood pθ(y0) := ∫pθ(y0:T)dy_1:T를 최대화하는 것
  • 하지만 너무 높은 차원의 latent space에서 계산되기 때문에 직접 likelihood를 측정하는 것은 불가능 -> Evidence Lower Bound (ELBO)를 학습에 사용하자!

ELBO

  • Gaussian transitions의 특성상 step t에서의 noisy data yt는 다음과 같음
    • 이때 αt := 1 − βt, α¯t = ∏s=1,t αs

yt

  • Reparameterization trick에 의하면 학습 방법을 regression problem으로 바꿔줄 수 있음
    • Input: yt, t -> predict ε
  • 따라서 최종 학습 모델은 다음과 같음

Diffision model used for training

 

Sampling with Langevin Dynamics

  • Latent variable들의 posterior distribution을 예측하기 위해 사용
  • 노이즈가 있는 멜 스펙트로그램에서 가우시안 노이즈를 예측

Langevin Dynamics


DIFFSVC

  • Content, melody, loudness가 노래 시그널에서 가장 중요한 요소
  • Deep-FSMN 기반의 ASR 모델을 학습시켜 PPG를 추출
    • Cross entropy 사용
    • Ground truth label로는 Mandarin Chinese phonemes 사용
  • DiffSVC conversion model에 denoising diffusion modeling을 도입
  • DiffSVC는 isotropic Gaussian noise ε를 추측하는게 목표
    • 인풋으로는 Loudness l, Frequency feature Log-F0 f0 (melody), PPGx, Step t, Noisy Mel Spectrogram yt

Step Encoding

  • Step t를 통해서 noise가 얼마나 추가됐는지 알 수 있음
  • t를 sinusoidal position encoding을 사용하여 128차원 벡터 temb로 변환

  • 이후 2개의 FC layer와 Swish activation function을 적용

Diffusion Decoder

  • WaveNet에서 제시된 bidirectional residual convolutional architecture를 약간 변형시켜서 적용
    • Dilation rate를 1로 사용 (Convolution kernel의 간격)
  • Noisy mel spectrogram에 Conv 1x1 실행하고 결과에 ReLU 적용
  • Step encoder의 결과가 멜 스펙트로그램의 매 스텝마다 추가 되고 N residual block에 입력됨
  • Conditioner e가 Conv 1x1 레이어를 거친 후 매 residual block에 추가됨
  • 모든 N residual layer의 skip connection을 다 더한 후 Conv 1x1 -> ReLU -> Conv 1x1을 적용하여 최종 아웃풋을 반환

DiffSVC를 알고리즘으로 표현


Experiments

  • 공정한 비교를 위해서 모든 모델에 DFSMN based PPG extractor를 사용
  • 3개의 SOTA 모델들과 비교
    • BLSTM SVC
      • vocoder parameter대신 mel spectrogram과 Log-F0를 사용
      • waveform 생성을 위해 Hifi-GAN 사용
    • Seq2seq SVC
      • Single speaker conversion 모델이기 때문에 Mel encoder와 singer confusion module을 사용하지 않음
      • waveform 생성을 위해 Hifi-GAN 사용
    • FastSVC
      • PPGs의 hop size가 240이기 때문에 upsampling rate를 기존 [5,4,4,3]에서 [4,4,4,5]로 바꿔줌
      • 기존 16kHz가 아님 24kHz 음성 합성을 위해 multi period discriminator를 additional discriminator로 추가
  • Subjective와 objective evaluation 진행
  • Subjective evaluation을 위해 5 point Likert scale (1-bad, 2-poor, 3-fair, 4-good, 5-excellent) 사용
  • Objective evaluation을 위해 mel-cepstrum distortion과 F0 Pearson correlation 사용

Result


Conclusion

  • Content features부터 acoustic features를 생성한 첫 번째 diffusion 모델
  • Naturalness와 voice similarity에서 SOTA의 성능을 보임
  • Any-to-one task에만 집중하였고 low data resource scenario에는 아직 약한 모습을 보임

관련글 더보기

댓글 영역