티스토리 뷰

반응형

Diffusion-Based Generative Speech Source Separation


  • Source separation을 위해 Stochastic Differential Equation을 활용할 수 있음
  • DiffSep
    • 분리된 source에서 시작해 mixture를 중심으로 하는 Gaussian 분포로 수렴하는 continuous time diffusion-mixing proces를 활용
    • Diffusion-mixing process의 score function에 대한 marginal probability를 근사하는 neural network를 훈련
    • Neural network를 활용하여 mixture에서 source를 점진적으로 분리하는 reverse-time SDE를 solve
  • 논문 (ICASSP 2023) : Paper Link

1. Introduction

  • Source Separation은 mixture에서 관심 있는 signal을 분리하는 것을 의미함
    • 초기에는 Non-Negative Matrix Factorization (NMF)를 주로 활용했음
    • 이후 Deep Neural Network (DNN)의 등장으로 분리 성능이 크게 향상됨
      - DNN은 source cluster를 예측하는 것에서 mask value를 직접 예측하는 것으로 변화
  • 위와 같은 data-driven 방식들은 fundamental source permutation ambiguity를 해결해야 함
    • Source에 대한 inherent preffered order가 없기 때문
    • 일반적으로 permutation ambiguity 해결을 위해 permutation invariant training (PIT)이 주로 활용됨
      - Source의 모든 permutation에 대해 objective function을 계산하고 최솟값을 선택해 gradient를 계산하는 방식
      - Time-domain에서는 Conv-TasNet, Dual-path transformer 등
      - Time-Frequency domain에서는 WaveSplit, TF-GridNet 등
    • 대부분 Scale-Invariant Signal-to-Distortion Ratio (SI-SDR)을 통해 학습됨
      -> NMF를 제외하고는 generative model을 separation 작업에 활용하는 경우가 거의 없음
  • Generative modelling은 복잡한 data 분포를 쉽게 근사할 수 있음
    • 특히 Score-based Generative Modelling (SGM)이 좋은 성능을 보임
      - Target 분포를 Gaussian noise로 점진적으로 변환하는 forward process를 정의하고, log-probability에 대한 gradient인 score function을 통해 reverse process를 수행하여 target 분포를 sampling
    • 이때, score function은 두 가지 방식을 통해 DNN으로 근사할 수 있음
      1. Graphical model
      2. Stochastic Differential Equation (SDE)
    • 이 중 SDE를 활용하는 diffusion-based separataion은 아직 제시되지 않음

-> 그래서 diffusion-based source separation model인 DiffSep를 제안

 

  • DiffSep
    • 분리된 signal로부터 mixture의 평균으로 수렴하는 SDE를 설계
    • Reverse-time SDE를 풀어 mixture로부터 개별적인 source를 복원
    • 추론 단계에서 source assignment의 ambiguity를 해소하는 score-matching network에 대한 학습방식 제시

< Overall of DiffSep >

  • SDE solving을 통해 mixture에서 source를 점진적으로 분리하는 diffusion-based model
  • 자연스럽고 높은 non-intrusive score를 달성할 수 있는 source separation 모델
  • Noise를 extra source로 고려함으로써 speech enhancement로의 확장 가능성 제시

Diffusion-mixing process

2. Background

- Notation and Signal Model

  • Vector x에 대한 norm : ||x||=(xTx)1/2, IN : N×N identity matrix
  • Audio signal은 N개 sample을 가지는 RN의 real valued vector로써 표현됨
    • K개 source에 대한 mixture는:
      (Eq.1) y=Kk=1sk
      - 모든 k에 대해, skRN
    • 여기서 model은 extra source를 추가함으로써 noise, reverberation, degradation을 설명할 수 있음
      - 모든 source signal을 concatenating 하여 RKN의 vector를 얻을 수 있음
      - 이때 분리된 source의 vector와 그 평균값은:
      (Eq.2) s=[sT1,...,sTK]T,ˉs=K1[yT,...,yT]T
  • Time-invariant mixing operation을 (AIN)으로 정의할 수 있음
    • A : K×K matrix, : Kronecker product
    • Vector vRKN에 위의 matrix를 곱하는 것은, interval N에서 v로부터 가져온 element와 length K의 모든 sub-vector를 A로 곱하는 것과 동일함:
      (Eq.3) ((AIN)v)kN+n=K=1AkvN+n
      - k=1,...,K, n=1,...,N
  • 이후 식을 간단히 하기 위해 regular matrix product Av 라고 하고,
    • Projection matrix는 아래와 같이 정의됨:
      (Eq.4) P=K111T,P¯=IkP
      - 1 : K size의 one vector
    • 이때 P는 평균값들의 subspace로 projection 되고 P¯는 orthogonal complement를 의미
      - (Eq.1)에 대한 compact alternative는 Ps=s¯로 표현될 수 있음

- SDE for Score-based Generative Modelling

  • SDE를 통한 Score-based Generative Modelling (SGM)은 복잡한 data 분포를 모델링하는 방법
    • Target 분포의 sample에서 시작해 Gaussian 분포로 수렴하는 diffusion process는 다음의 SDE로 표현됨:
      (Eq.5) dxt=f(xt,t)dt+g(t)dwt
      - xt:RNRN : time tR의 vector-valued function
      - dxt : t에 대한 도함수
      - dt : infinitesimal time step
      - f:RNRN, g:RR : xt의 dirft, diffusion coefficient
      - dwt : standard Wiener process
    • 본 논문에서는 Diffusion process의 time t가 audio signal의 time과 관계없다고 가정함
    • (Eq.5)에서 주목할 점은, mild condition에서 corresponding reverse-time SDE가 존재한다는 것:
      (Eq.6) dxt=[f(xt,t)g(t)2xtlogpt(xt)]dt+g(t)dw¯
      - 이때 t=T에서 t=0으로 이동, dw¯ : reverse Brownian process, pt(x) : xt의 marginal 분포
  • Forward process 동안 x0가 알려지면, 일반적으로 pt(x)에 대한 closed-form을 가짐
    • Affine f(x,t)는 Gaussian이고 해당 parameter가 평균, 공분산 matrix이므로 tractable 함
      - Reverse process에서 pt(x)는 unknown이므로 (Eq.6)은 directly solve가 불가능
    • 따라서, SGM은 qθ(x,t)xlogpt(x)가 되도록 neural network qθ(x,t)를 학습시키는 것을 목표로 함
      - 충분히 근사되었다면 (Eq.6)을 수치적으로 풀어 xlogpt(x)qθ(x,t)로 대체함으로써 x0 분포에서 sample을 생성할 수 있음

3. Diffusion-Based Source Separation

  • Source separation을 위해 SGM을 도입하여 시간이 지남에 따라 source 전반에 걸쳐 diffusion과 mixing이 발생하는 forward SDE를 설계
    • Process의 각 step은 infinitesimal noise를 더하고 infinitesimal mixing을 수행하는 것으로 볼 수 있음
    • 이를 SDE로 공식화하면:
      (Eq.7) dxt=γP¯xtdt+g(t)dw,x0=s
      - P¯ : (Eq.4), s : (Eq.2)
      - Diffusion coefficient로써 Variance Exploding SDE를 사용:
      (Eq.8) g(t)=σmin(σmaxσmin)t2log(σmaxσmin)
      -> (Eq.7)t가 커짐에 따라 marginal μt의 평균이 t=0에서 분리된 signal vector에서 mixture vector s¯로 변하는 속성을 가짐
    • [Theorem 1.] 따라서, xt의 marginal 분포는
      (Eq.9) μt=(1eγt)s¯+eγts, (Eq.10) σt=λ1(t)P+λ2(t)P¯
      를 평균, 공분산 matrix로 가지는 Gaussian 분포이고,
      이때 ξ1=0,ξ2=γ,ρ=σmaxσmin이라고 하면,
      (Eq.11) λk(t)=σmin2(ρ2te2ξktlogρ)ξk+logρ
      이다.
    • 결과적으로 Sample xt에 대한 explicit expression은:
      (Eq.12) xt=μt+Ltz,zN(0,IKN)
      - Lt=λ1(t)1/2P+λ2(t)1/2P¯
    • 이때 시간에 따른 xt 분포의 parameter 변화를 확인해 보면,
      - γ값을 조정하여 μts¯의 차이를 작게 만들 수 있음
      - Mixing process로 인해 source에 더해지는 noise의 correlation이 시간에 따라 증가함 

시간에 따른 SDE (Eq.7)의 parameter 변화

  • Speech enhancement를 위해 일반적으로 STFT와 같은 non-linear transform을 활용하여 diffusion process를 적용함
    • BUT, (Eq.8)은 source의 linear mixing을 modelling 하므로 non-linear transform을 적용할 수 없음
    • 대신 time-domain에서 diffusion process를 수행하고, non-linear STFT domain에서 network를 동작
      - Noise Conditioned Score Matching Network (NCSN)을 활용
      1. STFT와 iSTFT layer가 network 앞뒤에 위치
      2. STFT 이후에 non-linear transform c(x)을 추가하고, iSTFT 이전에 그 역 연산을 수행함:
      c(x)=β1|x|αejx, c1(x)=β|x|1/αejx 
      - 실수부, 허수부는 concatenate 됨

- Inference

  • 추론 시 score-matching network qθ(x,t,y)xlogpt(x)를 사용하여 (Eq.5)을 solve 함으로써 source separation을 수행
    • 이때 initial value는 아래 분포로부터 sampling 됨:
      (Eq.13) x¯TN(s¯,ΣTIKN)
      - 이후 (Eq.5)를 solve 하기 위해 predictor-corrector approach를 채택
    • Prediction step은 reverse diffuse sampling을 통해 수행되고, correction은 annealed Langevin sampling을 통해 수행됨

- Permutation and Mismatch-aware Training Procedure

  • Score network qθ(x,t,y)를 학습시키기 위해 modified score-matching procedure를 도입
    • [Theorem 1.]에 의해 score function은 closed form을 가지므로 계산식은:
      (Eq.14) xtlogp(xt)=Σt1(xtμt)=Lt1z
    • 이때 Training loss는:
      (Eq.15) L=Ex0,z,t||qθ(xt,t,y)+Lt1z||Σt2
      (Eq.16) =Ex0,z,t||Ltqθ(xt,t,y)+z||2
      - zN(0,IKN), tU(tϵ,T)
      - x0 : dataset에서 무작위로 선택됨
      - Σt : weighting scheme으로 유도된 norm
  • BUT, 위의 절차로만 학습을 수행할 경우 추론 성능이 크게 개선되지 않음
    1. (Eq.13)E[x¯T]=s¯μT 사이의 불일치가 존재하기 때문
      - t=T에서 true score function은 (Eq.14)처럼 단순화되지 않으므로,
      - 대신 xTlogp(x¯T)=ΣT1(s¯+LTzμT)를 사용
    2. Network는 source를 출력할 order를 결정해야 하기 때문
      - Model mismatch를 포함하는 PIT objective로 network를 학습하면 됨
      1. 확률 1pT,pT[0,1]인 각 sample에 대해, (Eq.16)을 최소화하는 regular score-matching procedure를 적용
      2. 확률 pT에서 t=T로 두고, 아래의 alternative loss를 최소화:
      L=Ex0,zminπP||LTqθ(x¯T,T,y)+z+LT1(s¯μT(π))||2
      - x¯T : (Eq.13)에서 sampling 되는 값, P : source permutations의 집합, μT(π) : permutation π에 대해 계산된 μT
      -> 이를 통해 score network는 noise와 model mismatch를 모두 제거하는 방법을 학습할 수 있고,
      결과적으로 speech enhancement시 source order에 대한 ambiguity를 줄일 수 있음

4. Experiments

- Settings

  • Datasets : WSJ0_2mix, Libri2Mix, VoiceBank-DEMAND
  • Comparisons : Conv-TasNet, CDiffuse, SGMSE

- Results

  • Separation
    • SI-SDR, PESQ, STOI 측면에서는 DiffSep의 성능이 Conv-TasNet보다 낮게 측정됨
      - 비슷한 소리를 내는 speaker에 대해 natural sounding permutation이 발생하기 때문
    • OVRL 측면에서는 DiffSep가 우수한 성능을 보임

Separation 실험 결과

  • Clean source와 분리된 source의 spectrogram을 비교해 보면, 낮은 품질의 sample에서 source에 대한 block permutation이 발생함

Spectrogram 비교

  • Enhancement
    • DiffSep는 Conv-TasNet에 비해서는 상대적으로 낮은 성능을 보이지만, 다른 diffusion-based 방법들과 비교했을 때 더 나은 성능을 보임
    • OVRL 측면에서 DiffSep는 높은 OVRL 점수를 나타내어 좋은 enhancement 품질을 가진다고 볼 수 있음

Enhancement 실험 결과

 

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