작성자: 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에는 아직 약한 모습을 보임
댓글 영역