티스토리 뷰
Paper/Vocoder
[Paper 리뷰] SpecGrad: Diffusion Probabilistic Model based Neural Vocoder with Adaptive Noise Spectral Shaping
feVeRin 2024. 1. 16. 15:38반응형
SpecGrad: Diffusion Probabilistic Model based Neural Vocoder with Adaptive Noise Spectral Shaping
- Denoising Diffusion Probabilistic Model을 사용하는 neural vocoder는 주어진 acoustic feature에 대한 diffusion noise 분포를 조절함
- SpecGrad
- Time-varying spectral envelope가 conditioning log mel-spectrogram에 가까워지도록 diffusion noise를 조절하는 neural vocoder
- Time-varying filter를 통한 high-frequency band에서의 품질 상승
- 논문 (INTERSPEECH 2022) : Paper Link
1. Introduction
- Neural vocoder는 acoustic feature가 주어졌을 때, 그에 맞는 speech waveform을 생성하는 것을 목표로 함
- 특히 vocoder는 Text-to-Speech (TTS), Speech Enhancement의 필수 요소로써 낮은 계산 비용으로 high-fidelity의 waveform을 합성하는 것이 중요함
- Denoising Diffusion Probabilistic Model (DDPM)은 높은 합성 품질과 제어 가능한 계산 비용으로 주목을 받고 있음
- DDPM은 denoising process로 random signal을 speech waveform으로 반복적으로 변환하는 방식을 활용
- BUT, DDPM은 high-fidelity의 waveform을 얻으려면 많은 반복을 필요로 함
-> 따라서, 합성 품질을 유지하면서 반복 수를 줄이기 위해 noise schedule을 주로 활용
- PriorGrad는 acoustic model의 prior 분포를 활용하여 DDPM vocoder를 개선
- Conditioning log mel-spectrogram을 기반으로 diffusion noise를 조절하는 방식
- 이때 diffusion 분포는 대각 성분이 mel-spectrogram의 frame-wise energy인 대각 공분산 matrix를 사용하는 Gaussian 분포 - 해당 분포는 대각 공분산 matrix가 time-domain에서 waveform의 power를 나타내므로,
- 결과적으로 각 sample point에 대한 noise schedule의 scaling으로 고려할 수 있음
- Conditioning log mel-spectrogram을 기반으로 diffusion noise를 조절하는 방식
-> 그래서 conditioning log mel-spectrogram에 diffusion noise의 spectral envelope를 적합하는 SpecGrad를 제안
- SpecGrad
- DDPM의 diffusion noise 생성과 cost function에서 사용되는 decomposed 공분산 matrix로부터,
- Time-Frequency (T-F) domain에서 time-varying filtering을 적용
- 이를 통해 diffusion noise의 spectral envelope에 대한 공분산 matrix를 설계
< Overall of SpecGrad >
- Spectral envelope가 conditioning log mel-spectrogram에 가까워지도록 diffusion noise를 조절하는 neural vocoder
- Time-varying filter를 도입하여 spectral envelope의 공분산 matrix를 설계
- 결과적으로 기존 DDPM 기반 neural vocoder 보다 우수한 합성 품질을 달성

2. Conventional Methods
- DDPM-based Neural Vocoder
-point speech waveformDD 가 conditioning log mel-spectrogramx0∈RD 로부터 생성된다고 하자c=(c1,...,cK)∈RFK - 이때
는ck∈RF -th time에 대한k -point log mel-spectrogram이고,F 는 time frame의 수K
- 이때 를x0 로 나타내는 확률 밀도 함수(PDF)를 찾는 것을 목표로 함q(x0|c) - 따라서, DDPM-based neural vocoder는
에서 시작하여 learned Gaussian transition을 가지는q(xT)=N(0,I) Markov chain을 활용하는 latent variable model:xt∈RD
(Eq. 1)q(x0|c)=∫RDTq(xT)∏Tt=1q(xt−1|xt,c)dx1⋯dxT
- 이때, 를 모델링하기 위해서,q(xt−1|xt,c) 는x0 에서xT 로부터xt 의 recursive sampling을 통해 얻어짐xt−1
- 이때
- DDPM에서
은xt−1 에 의해 주어지는 noise schedulep(xt|xt−1)=N(√1−βtxt−1,βtI) 에 따라 Gaussian noise를 점진적으로 추가하는 diffusion process에 의해 생성됨{β1,...,βT} - 이때, 임의의 time step
에서t 를 아래 식을 통해 closed form으로 sampling 가능:xt
(Eq. 2)xt=√ˉαtx0+√1−¯αtϵ
- ,αt=1−βt ,ˉαt=∏ts=1αs ϵ∼N(0,I) - 여기서 DDPM-based neural vocoder는
에서xt 을ϵ 로 예측하는 parameterϵ=Fθ(xt,c,βt) 를 가지는 Deep Neural Network (DNN)θ 를 사용F - 만약
가 충분히 작다면,βt 는q(xt−1|xt,c) 로 주어지고, 이때N(μt,γtI) 는:μt
(Eq. 3)μt=1√αt(xt−1−αt√1−¯αtFθ(xt,c,βt))
-γt=1−ˉαt−11−ˉαtβt - 이후 DNN
는 Evidence Lower BOund (ELBO)를 최대화함으로써 학습될 수 있지만, 대부분의 DDPM-neural vocoder는 단순화된 loss를 사용함F
- 대표적으로 WaveGrad는 norm을 사용:ℓ1
(Eq. 4)LWG=||ϵ−Fθ(xt,c,βt)||1
- :||⋅||p normℓp
- 이때, 임의의 time step
- PriorGrad
- PriorGrad는 adaptive prior
를 도입한 DDPM-based neural vocoderN(0,Σ) - 이때
는 conditioning log mel-spectrogramΣ 로부터 계산됨c - PriorGrad의 특징
- 모든 diffusion step에 대해서
은ϵ 로부터 sampling 됨N(0,I) 에 따른 Mahalanobis distance를 loss로 사용:Σ
(Eq. 5)LPG=(ϵ−Fθ(xt,c,βt))TΣ−1(ϵ−Fθ(xt,c,βt))
- : transposeT
- 모든 diffusion step에 대해서
- PriorGrad에서 공분산 matrix는
으로 나타냄Σ=diag[(σ21,σ22,...,σ2D)]
- :σ2d 의 normalized frame-wise energy를 interpolating 하여 계산된ck -th sample의 signal powerd
- : 대각 성분이 input vector인 diagonal matrixdiag
- 이때
3. Proposed Method
- SpecGrad
- PriorGrad의 성능은 공분산 matrix
에 의해 결정됨Σ - 특히 PriorGrad의 ELBO는
가Σ 의 공분산에 가까울수록 작아짐x0 - 이러한
를 얻기 위해서는 amplitude spectrumΣ 을ϵ 와 유사하게 만들어야 함x0
- 따라서, SpecGrad는 spectral envelope를 에 통합하는 방식을 제안함Σ
- 특히 PriorGrad의 ELBO는
는 positive semi-definite이므로,Σ 로 decompose 될 수 있음Σ=LLT 에서 sampling은N(0,Σ) 와 (Eq. 5)에 따라˜ϵ∼N(0,I) 으로 표현할 수 있고, 이를 다시 쓰면:ϵ=L˜ϵ
(Eq. 6)LSG=||L−1(ϵ−Fθ(xt,c,βt))||22 - 이때 SpecGrad는 낮은 계산 비용으로 high-fidelity의 waveform을 생성하는
을 설계하는 것을 목표로 함L∈RD×D 에 대해서 요구되는 property는:L 의 amplitude spectrum은ϵ(=L˜ϵ) 에 근사해야 함x0
- ELBO를 최소화하는데 필수적이기 때문 과L 간의 곱은 계산 효율적이어야 함L−1
- 과L 이 학습과정에서 반복적으로 사용되고, 첫 번째 property로 인해 training sampleL−1 에 의존적이기 때문x0
- 위의 요구사항을 만족하기 위해, SpecGrad는 T-F domain에 time-varying filter를 적용함
- Window size
을 가지는 STFT를N 의 matrixNK×D 로 표현할 때, T-F domain에서의 time-varying filter는:G
(Eq. 7)L=G+MG
- : filterM=diag[(m1,1,...,mN,K)]∈CNK×NK 를 정의하는 diagonal matrixmn,k
- :mn,k≠0 -th T-F bin에 곱해지는 coefficient(n,k)
- : dual window를 적용한 inverse STFT의 matrix representationG+ - 이를 통해
design 문제를 filter design 문제로 recast 할 수 있음L
- 따라서 이ϵ(=L˜ϵ) 의 spectral envelope에 근사하도록x0 을 설계M
- 이때, 을L−1 로 근사L−1≈G+M−1G 과M 이 diagonal 하므로,M−1 과 근사된L 은 FFT를 사용하여L−1 내에 연산될 수 있음O(KNlogN)
- 이때 개의 FFT를 병렬로 계산할 수 있으므로, (Eq. 7)에 대한 계산 비용은 완화될 수 있음K
- Window size
- Implementation
- SpecGrad는 아래의 [Alogrithm 1]과 [Algorithm 2]에 따라 학습/추론됨
- 이때 DDPM neural vocoder와 PriorGrad의 차이는, diffusion noise sampling
과 loss function (Eq. 6) 뿐 임G+MG˜ϵ
- 따라서 SpecGrad는 noise schedule를 활용할 수 있고, 결과적으로 SpecGrad는 WaveGrad의 추론 속도는 거의 동일함 - SpecGrad는 T-F domain filter
을 계산하기 위해, cepstrum을 통해 spectral envelope를 추정함M - 대응하는 power spectrogram을 계산하기 위해 mel-compression matrix에 대한 pseudo-inverse를 conditioning log mel-spcetrogram
에 적용c -th order lifter를 적용하여 각 time frame에 대한 spectral envelope를 계산r
- 이때 학습과정에서 numerical stability를 위해 0.01을 추정된 envelope에 더함 -th time frame에 대한 coefficientk 는 얻어진 envelope에 대한 minimum phase response로 계산m1,k,...,mN,k
- 대응하는 power spectrogram을 계산하기 위해 mel-compression matrix에 대한 pseudo-inverse를 conditioning log mel-spcetrogram
- Filter
을 구성하기 위해서 다른 방법을 사용할 수도 있음M
- 다만 spectrogram을 직접 사용하는 것보다 제안된 envelope 추정을 활용하는 것이 더 만족스러운 결과를 제공함
- 이때 DDPM neural vocoder와 PriorGrad의 차이는, diffusion noise sampling


3. Experiments
- Settings
- Dataset : Internal speech dataset
- Comparisons : WaveGrad, PriorGrad
- Inference Noise Schedule : 아래 표 참조

- Results
- SpecGrad는 주관적/객관적 성능 평가에서 모두 WaveGrad, PriorGrad 보다 우수한 성능을 보임
- 특히 noise schedule 선택에 관계없이 SpecGrad의 성능이 가장 우수함


- Side-by-Side test를 수행했을 때도 마찬가지로, SpecGrad의 성능이 WaveGrad, PriorGrad보다 우수한 것으로 나타남
- SpecGrad는 conditioning log mel-spectrogram에 따라 high-frequecny component를 줄일 수 있기 때문
- 결과적으로 frequency가 높아질수록 추정된 noise를 제거하는 양이 적어지기 때문에 artifact 방지가 가능

- Evaluation as Speech Enhancement Backend
- SpecGrad에 대한 robustness를 알아보기 위해, DDPM-based Vocoder를 speech enhancement의 backend로 사용
- 결과적으로, SpecGrad의 성능이 WaveGrad, PriorGrad보다 우수하게 나타남

반응형