[선행 학습 필요한 항목]
NO | 내용 | 사이트 |
1 | Fourier Transform 개념 | 강좌1, |
2 | Magnitude와 Phase의 개념 | 강좌1, |
3 | U-Net 기본 개요 | 강좌1, 강좌2 |
Paper Review
"PHASE-AWARE SPEECH ENHANCEMENT WITH DEEP COMPLEX U-NET (ICLR 2019)" 논문 (SNU & NAVER) : 공부하기(논문 링크)
저자: Hyeong-Seok Choi, Jang-Hyun Kim, Jaesung Huh, Adrian Kim, Jung-Woo Ha, Kyogu Lee
[ABSTRACT]
Speech Enhancement를 위한 대부분의 딥 러닝 기반 모델은 재구성을 위해 잡음이있는 음성의 Phase를 재사용하면서 Spectrogram의 Magnitude를 Estimation하는데 주로 Focusing하고 있다. 이것은 Clean Speech(깨끗한 음성)의 Phase를 Estimation하기가 어렵기 때문이다. Speech Enhancement 성능을 향상시키기 위해 이 논문에서는 세 가지 방법으로 Phase Estimation에 대한 문제를 자세히 논의 해 보고 있다. 첫째, Complex-Valued Spectrogram을 처리하기 위해, 잘 정의된 Complex-Valued 구성 요소를 통합한 Advanced U-Net 구조화 모델 인 Deep Complex U-Net을 제안한다. 둘째, 이상적인 Complex Ratio Mask(cIRM)들의 분포를 반영하기 위해 극좌표 별 Complex-Valued Masking 방법을 제안한다. 셋째, 새로운 Loss Function 인, wSDR (weighted source-to-distortion ratio) 손실을 정의한다. 이는 정량적 평가 측정과 직접 연관되도록 설계되었다. 본 논문에서 제안된 모델은 Speech Enhancement를 위해, 많은 딥 러닝 모델에서 널리 사용되는 Voice Bank corpus와 DEMAND 데이터베이스를 혼합한 상황에서 평가되었다. 실험결과는 혼합된 데이터 세트에 대해 제거 실험을 수행하여, 제안된 세 가지 접근법이 모두 경험적 타당함을 보여주며, 제안 된 방법은 모든 메트릭에서 최첨단 성능을 달성하여, 이전 접근 방식을 크게 능가하는 것으로 나타났다.
1 INTRODUCTION
Speech Enhancement는 잡음이 섞인 음성(Noisy Speech)이 입력으로 제공 될 때, 깨끗한 음성(Clean Speech)과 잡음(Noise)을 분리하는 것이 목표이며, Speech Application 영역에서 가장 중요하고 어려운 작업 중 하나이다. 음성 관련 시스템의 기본 구성 요소 인, Speech Enhancement 영역은 음성 인식 프런트엔드 모듈에서 부터 청각 장애인 용 보청기 시스템에 이르기까지 다양하다 (Erdogan et al., 2015; Weninger et al., 2015; Wang, 2017).
최근 딥 러닝의 발전으로 인해, Speech Enhancement 작업은 상당한 개선을 통해 높은 수준의 성능에 도달 할 수 있었다. 딥 러닝 모델과 함께 오디오 신호를 사용할 때, Time-domain 파형을 STFT(Short-Time-Fourier-Transform)을 통해 Time-Frequency(TF) 표현(예: Spectrograms)으로 변환하는 것이 일반적인 관행이었다.
Spectrograms은 Complex Matrices로 표현되며, 일반적으로 Real-valued Network에서 사용되는 Magnitude 및 Phase 구성 요소로 분해된다. Speech Enhancement와 같은 오디오 신호 재구성과 관련된 작업에서는, 두 구성 요소의 정확한 Estimation을 수행하는 것이 이상적이다. 하지만 불행히도, Complex-valued Phase는 Estimation의 어려움으로 인해 종종 무시되었다. 이로 인해 대부분의 접근 방식은 잡음이있는 Phase 정보를 재사용하면서 Magnitude Spectrograms의 Estimation에만 초점을 맞추는 상황이 되었다 (Huang et al., 2014; Xu et al., 2015; Grais et al., 2016; Nugraha et al., 2016; Takahashi et al., 2018b).
그러나 잡음이 있는 음성에서, Phase를 재사용하는 것은, 특히 극도로 잡음이 많은 조건, 즉 Signal-to-Noise Ratio(SNR)가 낮을 때, 분명한 한계가 있다. 이것은 <그림 1>에 나와있는 것처럼, 깨끗한 음성을 재구성하기 위해, 잡음이있는 음성의 Phase Spectrograms과 함께 깨끗한 음성의 Magnitude Spectrograms을 사용하여 쉽게 확인할 수 있다. 입력 SNR이 낮아질수록 깨끗한 음성 신호와 추정된 음성 신호의 차이가 커짐을 분명히 알 수 있다.
그림 1 : 다양한 SNR 조건에서 잡음이있는 음성에 대한 Phase 재사용의 효과 |
![]() |
Speech Enhancement에 대한 대중적인 접근 방식은 잡음이 있는 입력 오디오에 적용될 때, 깨끗한 음성의 Spectrograms을 생성하는 Mask를 최적화하는 것이다. Phase 정보를 통합하여 작업을 수행하려는 첫 번째 Mask 기반 시도 중 하나는 Phase-Sensitive Mask(PSM)[위상 감지 마스크]의 제안이었다(Erdogan et al., 2015). PSM의 성능은 잡음이 있는 Phase를 재사용하기 때문에 제한적이었다. 이후의 연구에서는 Complex Values를 직접적으로 최적화하기 위해 cRM(Complex-valued Ratio Mask)을 사용하는 것을 제안했다(Williamson et al., 2016; Ephrat et al., 2018). 이 논문의 연구진들은 Complex Ideal Ratio Mask(cIRM)가 이상적인 Binary Masks, 이상적인 Ratio Masks 또는 PSM과 같은 다른 이상적인 Masks 중에서 최고의 성능을 제공하는 것으로 확인 되었기 때문에, 이러한 방향이 Phase Estimation에 유망하다는 것을 알았다(Wang et al., 2016). 또한, 이 접근 방식은 Magnitude와 Phase을 공동으로 Estimation하므로 별도의 모델이 필요하지 않는다. Complex-valued Mask를 Estimation하기 위해, 자연스러운 희망사항은 Complex-domain Operation들을 처리 할 수있는 아키텍처를 사용하는 것이다. 최근 연구는 Complex Arithmetic에 적합한 딥 러닝 빌딩 블록을 제공함으로써 이에 대한 해결책을 제시한다(Trabelsi et al., 2018).
이 논문에서는, 이전 연구를 기반으로 Deep Complex U-Net (DCUnet)이라는 U-Net (Ronneberger et al., 2015)의 변형을 기반으로 새로운 Complex-Valued Masking Framework를 설계한다. 이 논문에서 DCUnet는 이상적인 Complex-valued Masks(cIRM)에서 관찰 할 수있는 사전 지식을 사용하여, 극좌표로 표현되는 Complex Ratio Mask를 Estimation하도록 훈련되었다. 깨끗한 음성의 Complex-valued Estimation을 통해, Inverse Short-Time-Fourier-Transform(ISTFT)을 사용하여 Spectrograms을 Time-domain 파형으로 변환 할 수 있다. 이를 이점으로 삼아, 연구진은 많은 소스 분리 작업에 널리 사용되는 정량적 평가 Measure인 SDR (Source-to-Distortion Ratio)[소스 대비 왜곡 비율](Vincent et al., 2006)을 직접 최적화하는 새로운 Loss Function(손실 함수)을 도입했다.
우리의 기여는 다음과 같이 요약 될 수 있다 :
- 우리는 새로운 신경 구조 인, Deep Complex U-Net을 제안한다. 이것은 Deep Complex Network와 U-Net의 장점을 결합하여 최첨단 성능을 제공한다.
- 우리는 현재 마스킹 전략의 한계를 인지함과 동시에, 극좌표를 기반으로 새로운 Complex-valued Masking 방법을 설계 한다.
- 우리는 잘 알려진 정량적 평가 Measure를 직접 최적화하는 새로운 Loss Function : weighted-SDR Loss를 제안한다.
2 RELATED WORKS
오디오 신호 재구성을 위한, Phase Estimation은 그 중요성과 어려움 때문에 오디오 소스 분리 커뮤니티에서 최근 주요 관심사였다. Griffin-Lim 알고리즘과 그 변형(Griffin & Lim, 1984; Perraudin et al., 2013)과 같은 반복적 방법이, 이 문제를 해결하는 것을 목표로 했지만 최근에는 신경망 기반 접근법이 비반복적 대안으로 주목 받고 있다.
한 가지 주요 접근 방식은 STFT를 통해 계산된 명시적인 Time-Frequency(TF) 표현을 사용하지 않고, 오디오를 원시 파형 입력으로 사용하는 종단 간 모델을 사용하는 것이다(Pascual et al., 2017; Rethage et al., 2018; Stoller et al., 2018; Germain et al., 2018). 원시 파형에는 본질적으로 Phase 정보가 포함되어 있기 때문에, 자연스럽게 Phase Estimation을 달성 할 수 있다. 또 다른 방법은 Magnitude와 Phase를 직렬로 Estimation하는 두 개의 개별 신경망 모듈을 사용하여 Magnitude와 Phase를 Estimation하는 것이다. 이 프레임워크에서 Phase Estimation 모듈은 예측된 Magnitude를 가지는 잡음이 있는 Phase을 사용하여 깨끗한 음성의 Phase을 Estimation한다. Phase Estimation을 위해 훈련 가능한 이산 값이 있는 추가 레이어를 사용하도록 제안한 최근 연구도 있다.
더 간단한 방법은 연속 Complex-valued Ratio Mask(cRM)를 사용하여 Magnitued와 Phase를 공동으로 Estimation하는 것이다. 이전 연구에서는 cRM의 범위를 제한하는, 이 공동 Estimation 접근 방식을 시도했다(Williamson et al., 2016; Ephrat et al., 2018). cRM 접근 방식의 장점에도 불구하고 이전에 제안된 방법은 Loss Function(손실 함수) 및 Mask 범위와 관련하여 제한이 있었으며, 이러한 문제를 완화하기 위해, 제안된 방법과 함께 "섹션 3"에서 더 자세히 살펴볼 것이다. 상기 연구에 대한 자연스러운 확장으로 일부 연구는 Complex-valued Network가 본질적으로 Complex-valued 데이터를 다룰 때 유용한지 여부를 조사했다. 두 가지 연구들의 시리즈에서 Complex-valued Network는 완전히 연결된 신경망과 순환 신경망 모두에서 음성 분리 성능을 높이는 데 도움이되는 것으로 나타났다(Lee et al., 2017a; b). 그러나 Real-valued Network를 Complex-valued Network로 전환하고 가중치 초기화 및 정규화 기술과 같은 다른 딥 러닝 빌딩 블록을 Real-valued 방식으로 남겨두기 때문에 접근 방식이 제한되었다. 또한 연구들은 Phase가 실제로 양적 또는 질적으로 잘 Estimation 되었는지 여부를 보여주지 않고 성능 향상이 있음을 보여준다.
3 PHASE-AWARE SPEECH ENHANCEMENT
이 섹션에서는 제안된 모델 인, Deep Complex U-Net에서 시작하여, 이 모델을 기반으로한 Masking 프레임워크에 이어 접근 방식에 대한 세부 정보를 제공한다. 마지막으로, 모델을 최적화하는 새로운 Loss Function(손실 함수)을 도입 할 것이며, 이러한 Loss Function(손실 함수)은 Phase Estimation을 위해 중요한 역할을 할 것이다.
자세히 알아보기 전에, 논문 전체에서 사용되는 몇 가지 표기법이 있다. 입력 혼합 신호 "x(n) = y(n) + z(n) ∈ R"은 깨끗한 음성 신호 "y(n) ∈ R"과 잡음 "z(n) ∈ R"의 선형 합으로 가정한다. 추정된 음성은 "yˆ(n) ∈ R로" 표시된다. STFT에 의해 계산된, 각 해당 Time-Frequency(t, f) 표현은 "Xt,f ∈ C", "Yt,f ∈ C", "Zt,f ∈ C" 및 "Yˆt,f ∈ C"로 표시된다. Ground Truth Mask인 cIRM은 "Mt,f ∈ C"로 표시되고 추정된 cRM은 Mˆt,f ∈ C로 표시됩니다. 여기서 "Mt,f = Yt,f / Xt,f "이다.
3.1 DEEP COMPLEX U-NET
그림 2 : DCUnet을 사용한 음성 향상 프레임워크 |
![]() |
U-Net 구조는 원래 컴퓨터 비전 커뮤니티에서 의료영상 용으로 제안된 스킵 연결이있는 컨볼루션 자동 인코더로 구성된 잘 알려진 아키텍처이다(Ronneberger et al., 2015). 더우기 Real-Valued U-Net의 사용은 Music 소스 분리 및 Speech Enhancement와 같은 최근의 많은 오디오 소스 분리 작업에서도 효과적인 것으로 나타났다(Pascual et al., 2017). DCUnet(Deep Complex U-Net)은 Complex 도메인 작업을 명시적으로 처리하도록 특별히 개선된 확장 U-Net이다. 이 섹션에서는 원래 제안한 Complex 빌드 블록을 사용하여 U-Net을 수정하는 방법을 설명한다(Trabelsi et al., 2018).
Complex-valued Building Blocks : Real-valued Matrices A와 B를 포함하는 Complex-valued Convolution 필터 W = A + i B가 주어지면, W를 사용하는 Complex Vector인 h = x + i y에 대한 Complex Convolution 연산은 W ∗ h = (A ∗ x−B ∗ y ) + i (B ∗ x + A ∗ y). 실제로, Complex Convolutions은 나누어진 Real-valued Convolution 필터를 사용하여, 두 개의 다른 Real-valued Convolution 연산들로 구현 될 수 있다. 자세한 내용은 "부록 A"에 나와 있다.
그림 3 : Complex 공간에서 세 가지 cRM 방법과 해당 출력 범위. 신경망(NN)은 DCUnet(C) 또는 동일한 매개 변수 크기를 가진 해당 Real-valued U-Net(R) 일 수 있다. (b)의 cRM 방법 (1, 2, 3)의 세 가지 다른 출력 범위는 (a)의 (1, 2 ,3)에 나와 있다. 1. Unbounded Mask : 제한 출력이없는 마스킹 방법. 2. Bounded (sigmoid-sigmoid) Mask : Ephrat et al.에 의해 제안된 방법. 3. Bounded (tanh) Mask : 본 논문에서 제안한 마스킹 방법. 자세한 모델 사양은 "부록 B"에 설명되어 있다. |
![]() |
ReLU(링크)와 같은 Activation functions도 Complex 도메인에 적용되었다. 이전 연구에서는 실수(Real) 값과 허수(Imaginary) 값 모두에 ReLU를 적용하는 Activation function인 CReLU가 많은 제안 중에서 최상의 결과를 생성하는 것으로 나타났다. Complex Network의 배치 정규화 및 가중치 초기화에 대한 자세한 내용은 Trabelsi et al.(2018)에서 찾아 볼 수 있다.
Modifying U-Net : 제안된 Deep Complex U-Net은 STFT-도메인에 적용된 세련된 U-Net 아키텍처이다. 원래 U-Net에 수정된 사항은 다음과 같다. U-Net의 Convolution 레이어는 모두 Glorot의 기준을 충족하도록 초기화된 Complex Convolution 레이어로 대체된다(Glorot & Bengio, 2010). 여기서 Convolution 커널은 더 나은 일반화와 빠른 학습을 위해 가중치 텐서를 단위 행렬로 초기화하여 서로 독립적으로 설정된다(Cogswell et al., 2015). Complex 배치 정규화는 Network의 마지막 계층을 제외한 모든 컨벌루션 계층에서 구현된다. 인코딩 단계에서 최대 풀링 작업은 공간 정보 손실을 방지하기 위해 Complex Convolution 계층으로 대체된다. 디코딩 단계에서는 입력 크기를 복원하기 위해 strided Complex deconvolutional 연산이 사용된다. Activation function의 경우, 이전에 제안된 CReLU로 균열된 CReLU에 수정했다. 여기서 ReLU로 균열된 ReLU에 간단히 대체하여(Maas et al., 2013) 훈련을보다 안정적으로 만들었다. "섹센 4"에서 수행된 모든 실험은 이러한 수정으로 수행된다.
3.2 COMPLEX-VALUED MASKING ON POLAR COORDINATES
제안된 모델은 Complex Values를 처리 할 수 있으므로 Speech Enhancement을 위한 cRM을 Estimation 하는 것을 목표로 한다. 깨끗한 소스 신호의 Spectrograms을 직접 Estimation 할 수 있지만 혼합 Spectrograms에 가중치 Mask를 적용하면 더 나은 성능을 얻을 수 있음이 입증되었다(Wang et al., 2014). 한 가지 주목할 점은 Real-valued Ratio Masks(RM)는 Phase을 변경하지 않고 Magnitude의 스케일만 변경하므로 "부록 D"에 설명된 바와 같이 감소 할 수 없는 오류가 발생한다는 것이다. 반면, cRM은 극좌표에서 회전을 수행하여 Phase 오류를 수정할 수 있다. 즉, 추정된 음성 Spectrograms인 "Yˆt, f "는 입력 Spectrograms인 "Xt, f "에서 추정된 Mask "Mˆt, f "를 다음과 같이 곱하여 계산된다:
이 상태에서 추정된 cRM의 실수(Real) 값과 허수(Imaginary) 값은 제한이 없다. 무제한 Mask를 Estimation하면 문제가 잘 제기되지만 (자세한 내용은 "부록 D" 참조) 제한된 검색 공간과 비교하여 무한 검색 공간에서 최적화하는 것이 어렵다는 것을 상상할 수 있다.
따라서 cRM의 범위를 제한하기 위해 몇 가지 기술이 시도되었다. 예를 들어, Williamson et al.에서는 Complex Mask를 경험적 경계로 압축된 cIRM으로 직접 최적화하려고 시도했다(Williamson et al., 2016). 그러나 이 방법은 종종 성능 저하로 이어지는 cIRM과 예측된 cRM 간의 오차를 계산하여 모델 훈련에 성공할 수 있었기 때문에 제한적이었다(Wang et al., 2014; Yu et al., 2017). 최근에는 Ephrat et al.에서는 모델 출력의 실제 및 가상 부분 각각에 시그모이드 압축으로 만든 직각 좌표 방식의 cRM을 제안했다(Ephrat et al., 2018). 그 후 클린 소스 Y와 추정된 소스 Yˆ 사이의 MSE는 모델을 훈련하기 위해 STFT 도메인에서 계산되었다. 그러나 제안된 마스킹 방법은 Phase Estimation과 관련하여 두 가지 주요 문제점이 있다. 첫째는, <그림 3>과 "부록 E"와 같이 cIRM의 분포를 반영 할 수 없다는 내재적인 문제가 있다. 두번째는 이 접근 방식은 회전 범위가 0o ~ 90o(시계 방향으로 만)인 cRM을 생성하여 잡음이있는 Phase을 수정하기 어렵게 만든다.
이러한 문제를 완화하기 위해, Magnitude 부분에만 비선형성을 부과하는 극좌표 방식의 cRM 방법을 제안한다. 더 구체적으로, cRM의 Magnitude 부분의 범위를 [0, 1)로 제한하기 위해 쌍곡선 탄젠트 비선형성을 사용하여 Mask를 Complex 공간에서 단위 원으로 경계로 만든다. 해당 Phase Mask는 모델의 출력을 모델의 크기로 나누어 자연스럽게 얻는다. 좀 더 공식적으로 g (·)를 신경망으로하고 그 결과를 "Ot, f = g(Xt, f )"라고 하자. 제안된 Complex-valued Mask(Mˆt,f )는 다음과 같이 추정된다.
cRM 방법의 요약된 설명은 <그림 3>에 나와 있다.
3.3 WEIGHTED-SDR LOSS
오디오 소스 분리에 널리 사용되는 Loss Function(손실 함수)은 STFT 도메인에서 클린 소스 Y와 추정된 소스 Y^ 사이의 평균 제곱 오차(MSE)이다. 그러나 Complex STFT 영역에서 MSE로 모델을 최적화하는 것은 Phase 구조의 무작위성으로 인해 Phase Estimation에서 실패하는 것으로 보고되었다(Williamson et al., 2016). 대신 원시 파형에 고유한 Phase 정보가 포함되어 있으므로 Time-domain에서 정의된 손실 함수를 대신 사용할 수 있다. 파형에 대한 MSE는 쉬운 솔루션이 될 수 있지만 손실 함수가 Time-domain에서 정의된 잘 알려진 평가 Measure들과 직접적으로 연관 될 경우 더 효과적 일 것으로 기대할 수 있다.
여기에서는 표준 품질 Measure 값 인, SDR(source-to-distortion ratio)[소스 대비 왜곡 비율]을 최적화하려는 이전 연구를 기반으로 개선된 Loss Function(손실 함수)인 weighted-SDR 손실을 제안한다(Venkataramani et al., 2017). Venkataramani et al.에 의해 제안된 원래 Loss Function(손실 함수) lossV en은 "식(4)"의 관찰에 따라 공식화 된다. 여기서 y는 깨끗한 소스신호이고 yˆ는 추정된 소스신호이다. 실제로 음의 역수는 "식(5)"에서와 같이 최적화된다.
"식(5)"를 사용하면 Loss Function(손실 함수)로 작동하지만 설계에 몇 가지 중요한 결함이 있다. 첫째, 하한은 -||y||의 제곱이 되는데, 이것은 y의 값에 따라 달라지며 훈련시 손실 값의 변동을 유발한다. 둘째, 목표 y가 비어있을 때(즉, y = 0), 손실이 0이 되어 모델이 0 기울기로 인해 잡음이있는 데이터로부터 학습하는 것을 방지한다. 마지막으로 Loss Function(손실 함수)은 스케일에 민감하지 않는다. 즉, 손실 값이 yˆ 및 cyˆ에 대해 동일합니다. 여기서 c는 c ∈ R 이다.
이러한 문제를 해결하기 위해, "식(5)"를 몇 가지 수정하여 Loss Function(손실 함수)을 재설계했다. 먼저 항 ||y||의 제곱을 복원하고 "식(6)"과 같이 제곱근을 적용하여 손실 함수의 하한을 소스 y에 독립적으로 만들었다. 이렇게 하면 Loss Function(손실 함수)이 [-1, 1] 범위 내에서 제한되고, 반전된 Phase도 페널티를 받기 때문에 Phase에 더 민감하다.
소스 예측을 보완하고 잡음 전용 샘플에 대한 오류를 전파하기 위해 잡음 예측 항 lossSDR (z, zˆ)도 추가했다. 각 손실 항의 기여도를 적절히 균형있게 조정하고 척도 무감각 문제를 해결하기 위해 각 신호의 에너지에 비례하여 각 항에 가중치를 부여했다. 제안된 weighted-SDR 손실의 최종 형식은 다음과 같다 :
여기서 zˆ=x−yˆ는 추정된 잡음이고 α = ||y||의 제곱 / (||y||의 제곱 + ||z||의 제곱)는 깨끗한 음성 y와 잡음 z사이의 에너지 비율이다. weighted SDR 손실은 Time-domain Loss Function(손실 함수)이지만 프레임워크를 통해 역 전파 될 수 있음을 주의하자. 특히, STFT 및 ISTFT 연산은 이산 푸리에 변환 행렬로 초기화된 고정 필터로 구성된 1D 컨볼루션 및 디컨볼루션 계층으로 구현된다. 제안된 Loss Function(손실 함수)의 자세한 속성은 "부록 C"에 있다.
4 EXPERIMENTS
4.1 EXPERIMENT SETUP
Dataset : 모든 실험에서 직접적인 성능 비교를 수행하기 위해, 이전 연구들과 동일한 실험 설정을 사용했다(Pascual et al., 2017; Rethage et al., 2018; Soni et al., 2018; Germain et al., 2018). DEMAND(Diverse Environments Multichannel Acoustic Noise Database) (Thiemann et al., 2013) 및 Voice Bank corpus(Veaux et al., 2013)에서 각각 48kHz의 샘플링 속도로 녹음된 잡음 및 깨끗한 음성 녹음이 제공되었다. 훈련에 사용된 혼합 오디오 입력은 10가지 유형의 잡음(2합성 + 8DEMAND)을 사용하여 4개의 신호 대 잡음비(SNR) 설정(15, 10, 5, 0(dB))으로 2개의 데이터 세트를 혼합하여 구성되었다. 그리고 Voice Bank corpus의 28명의 화자, 각 음성 샘플에 대해 40개의 조건부 패턴을 생성한다. 테스트 세트 입력은 트레이닝 세트(17.5, 12.5, 7.5, 2.5 (dB))와 다른 4개의 SNR 설정으로 이루어졌으며, 나머지 5개의 DEMAND 잡음 유형과 Voice Bank corpus의 2개 연설자(화자)를 사용했다. 연설자(화자) 및 잡음 등급은 교육 및 테스트 세트에 대해 고유하게 선택되었다.
Pre-processing : 오리지널 원시 파형은 먼저 48kHz에서 16kHz로 다운 샘플링되었다. 실제 모델 입력의 경우 64ms 크기의 Hann window와 16ms hop length의 STFT를 통해 다운 샘플링된 파형에서 Complex-valued Spectrograms을 얻었다.
Implementation : 모든 실험은 NSML(NAVER Smart Machine Learning) 플랫폼으로 구현되고 미세 조정되었다(Sung et al., 2017; Kim et al., 2018).
4.2 COMPARISON RESULTS
이 하위 섹션에서는, 이전에 제안된 알고리즘과 방법의 전반적인 Speech Enhancement 성능을 비교한다. Baseline 접근법으로 선험적 잡음 SNR Estimation이 포함된 Wiener 필터링(Wiener)이 다음과 같이 간략하게 설명된 최근 딥 러닝 기반 모델과 함께 사용되었다. SEGAN : generative adversarial networks로 최적화된 time-domain U-Net 모델. Wavenet : time-domain 비인과적 팽창된 wavenet-based network. MMSE-GAN : adversarial 훈련 방법이 수정된 timefrequency masking 기반 방법. Deep Feature Loss : classifier network로 부터 feature loss로 훈련된 time-domain 팽창된 컨볼루션 Network.
표 1 : 다른 알고리즘과 제안된 방법(DCUnet-20, Large-DCUnet-20)의 정량적 평가 결과. 굵은 텍스트가 평가 측정 당 최고 점수를 나타내고, 점수가 높을수록 더 나은 성능을 의미한다. CSIG : 신호 왜곡의 평균 오피니언 점수(MOS) 예측자 CBAK : 배경 잡음 침입의 MOS 예측자 COVL : 전체 신호 품질의 MOS 예측자 PESQ : 음성 품질의 지각 평가 SSNR : 세그먼트 SNR. 모든 평가 조치는 오픈 소스 구현을 사용하여 계산되었다. |
![]() |
비교를 위해, 20-layer Deep Complex U-Net(DCUnet20)을 사용하여 weighted-SDR 손실로 최적화된 tanh 경계 cRM을 Estimation하는 구성을 사용했다. 접근 방식의 잠재력을 보여주는 쇼케이스로서 각 레이어에 더 많은 채널을 가진 더 큰 DCUnet-20(Large-DCUnet-20)의 결과도 보여준다. 두 아키텍처 모두 "부록 B"에 자세히 명세되어 있다. 결과는 제안한 DCUnet-20(Large-DCUnet-20)방법이 모든 메트릭과 관련하여 이전의 최첨단 방법을 크게 능가하는 것으로 나타났다. 또한, 더 큰 모델이 더 나은 성능을 제공함을 알 수 있었다. 우리는 나중에 섹션에서 조사 할 계획인 방법의 Phase Estimation 품질에서 이 중요한 개선의 이유를 확인 한다. 우리 방법의 Phase Estimation 품질로부터 전달되는 중요한 개선의 이유를 확인하고 이후 섹션에서 이 내용을 조사 할 계획이다.
4.3 ABLATION STUDIES
표 2 : 3가지 다른 모델 구성(DCU-10, DCU-16, DCU-20)에서 해당 Mask 및 Loss Function(손실 함수)을 사용한 정량적 평가 결과. 굵은 글꼴은 Masking 방법을 수정할 때 최상의 Loss Function(손실 함수)을 나타낸다. 밑줄은 Loss Function(손실 함수)을 수정할 때 최상의 마스킹 방법을 나타낸다. |
![]() |
Masking strategy and loss functions : 이 실험에서, 다양한 Masking 전략과 Loss Function(손실 함수)이 Speech Enhancement의 성능에 미치는 영향에 대한 평가 결과를 보여준다. 세 가지 Masking 전략(Unbounded (UBD), Ephrat et al .: Bounded (sig-sig) (BDSS), Bounded (tanh) (BDT))를 비교하여 각각의 다른 Masking 방법의 효과를 확인한다. 그런 다음 제안된 손실 함수(weighted-SDR)를 MSE와 비교하기 위해 STFT-도메인과 time-도메인((Spectrogram-MSE(Spc), Wave-MSE(Wav), 제안된 weighted-SDR(wSDR))에서 두 개의 MSE를 비교했다.
<표 2>는 다양한 Masking 전략 및 Loss Function(손실 함수)에 대한 공동 결합 결과를 보여준다. 여기서 3가지 모델(DCU-10(1.4M), DCU-16(2.3M), DCU-20(3.5M))을 조사하여 모델의 아키텍처 차이가 정량적 결과에 미치는 영향을 확인한다. Masking 전략 측면에서 제안된 BDT Mask는 대부분 DCU-10 및 DCU-16에서 UBD Mask보다 더 나은 결과를 산출하며, 이는 사전 지식으로 최적화 공간을 제한하는 것이 중요함을 의미한다. 그러나 DCU-20의 경우 UBD Mask가 BDT Mask의 성능을 자주 능가함을 알 수 있었다. 직관적으로 이것은 매개변수 수가 충분히 커지면 최적화 공간이 제한되지 않은 경우에도 모델이 데이터 분포에 잘 맞을 수 있음을 나타낸다. Loss Function(손실 함수) 측면에서 거의 모든 결과는 wSDR 손실로 최적화하는 것이 최상의 결과를 제공함을 보여준다. 그러나 Spc 및 wSDR이 유사한 PESQ 결과를 제공하는 DCU-20 경우를 제외하고 Spc 손실이 DCU-10 및 DCU-16에 대해 wSDR 손실보다 종종 더 나은 PESQ 결과를 제공한다는 것을 발견했다.
표 3 : 세 가지 설정 (cRMCn : Complex-valued output/Complex-valued network, cRMRn : Complex-valued output/Real-valued network, RMRn : Real-valued output/Real-valued network)에서 얻은 정량적 평가 결과. 표는 Speech Enhancement를 위해 Complex-valued network를 사용하는 것이 적절함을 보여준다. 굵은 글꼴은 최상의 결과를 나타낸다. |
![]() |
Validation on complex-valued network and mask : Complex neural networks가 효과적임을 보여주기 위해 DCUnet(Cn)의 평가 결과와 해당하는 Real-valued U-Net 설정을 동일한 매개 변수 크기(Rn)로 비교한다. Real-valued Network의 경우 Phase Estimation의 효율성을 보여주기 위해 두 가지 설정 cRMRn 및 RMRn을 테스트했다. 첫 번째 설정은 Complex-value Spectrograms을 입력으로 사용하여 tanh 경계가 있는 cRM(Complex Ratio Mask)을 Estimation한다. 두 번째 설정은 Magnitude Spectrograms을 입력으로 사용하여 시그모이드 경계로 RM(Magnitude Ratio Mask) 을 Estimation한다. 모든 모델은 weighted-SDR 손실로 훈련되었으며, RMRn을 훈련하는 동안 GT(Ground Truth) Phase가 주어졌다. 또한 모든 모델은 서로 다른 수의 매개 변수(20계층(3.5M), 16계층(2.3M) 및 10계층(1.4M))로 학습되어 모델 용량에 관계없이 결과가 일관적임을 보여준다. 각 모델에 대한 자세한 Network 아키텍처는 "부록 B"에 나와 있다.
<표 3>에서 평가 결과는 이 논문의 접근 방식인 cRMCn이 모든 경우에 대해 기존 방법 RMRn 보다 더 나은 결과를 만들어 Phase 보정의 효과를 보여준다. 또한 cRMCn은 cRMRn보다 더 나은 결과를 제공하므로, Complex-valued Network를 사용하면 지속적으로 Network 성능이 향상됨을 나타낸다. 이러한 결과는 모든 평가 Measue 및 Model 크기에서 일관적이다.
4.4 QUALITATIVE EVALUATION
제안된 DCUnet (Large-DCUnet-20)과 Baseline Method들 사이에서 선호도 점수(Preference Scores)를 획득하여 정성적 평가를 수행했다. 잡음 수준이 다른 15개의 발화 샘플이 테스트 세트에서 선택되어 주관적 청취 테스트에 사용되었다. 각각의 시끄러운 샘플에 대해 4개의 서로 다른 알고리즘에서 가능한 6쌍의 잡음이 제거된 오디오 샘플을 무작위 순서로 참가자에게 제시하여 각 피험자가 90개의 쌍 비교를 수행했다. 각 비교 대상에 대해 참가자는 3개의 오디오 샘플(원래 시끄러운 음성과 2개의 무작위로 선택한 알고리즘에 의한 잡음 제거 음성 샘플 2개)을 제공하고 선호하는 샘플(점수 1) 또는 "결정할 수 없음"(점수 0.5)을 선택하도록 지시 받았다. 청취 테스트에는 총 30명의 피험자가 참여했으며 그 결과는 <표 4>와 <표 7>에 나와 있다.
표 4 : 다른 기준 모델과 비교 한 DCUnet의 선호도 점수. 점수는 피험자가 한 방법을 다른 방법보다 선호하는 상대 빈도를 계산하여 얻었다. Hard / Medium / Easy는 각각 2.5 / 7.5 / 17.5 SNR 조건을 dB 단위로 나타낸다. 모든 통계는 p <0.001의 유의성을 가졌다. 완전한 쌍별 선호도 점수는 "부록 H"에 나와 있습니다. |
![]() |
그림 4 : 무작위로 선택한 잡음이 있는 음성 신호에 대해 9가지 다른 Mask 및 손실 함수 구성을 사용하여 추정된 cRM의 산점도. 각 산점도는 추정된 cRM의 Complex values 분포를 보여준다. 가장 왼쪽 플롯은 주어진 입력에 대한 cIRM에서 가져온 것이다. 대부분의 Real-values는 0과 1 주위에 분포되어 있지만 그 사이에는 상대적으로 희박하다. 이 분포 패턴에 가장 잘 맞는 구성은 제안된 방법(Bounded (tanh) 및 weighted-SDR)의 조합으로 달성된 빨간색 점선 상자에서 관찰된다. |
![]() |
<표 4>는 DCUnet이 모든 SNR 조건에서 선호도 점수 측면에서 다른 방법보다 분명히 우수하다는 것을 보여준다. 이러한 차이는 pairwise one-tailed t-tests로 확인된 바와 같이 통계적으로 유의미하다. 또한 입력 SNR 조건이 악화 될수록 차이가 더욱 분명해지며, 이는 가혹한 잡음 조건에서 정확한 Phase Estimation이 훨씬 더 중요하다는 연구진의 연구 동기를 뒷받침 한다. 이는 "섹션 5" 및 <표 5>에 설명되어 있는 것처럼 Phase 거리의 심층적인 정량 분석에 의해 추가로 확인된다.
5 IN-DEPTH ANALYSIS ON PHASE
이 섹션에서는 제안된 방법이 효과적인 방법과 이유를 분석하여 Phase Estimation에 대한 건설적인 통찰력을 제공하는 것을 목표로한다. 먼저 <표 2>의 각 Masking 방법 및 Loss Function(손실 함수) 구성에 대해 <그림 4>의 산점도(Scatter Plots)를 사용하여 추정된 Complex-valued Mask를 시각화했다. 플롯은 Ephrat et al.의 Bounded (sig-sig) Mask가 Complex-valued Ideal ratio Mask(cIRM)의 분포를 반영하지 못하는 반면, 제안된 Bounded (tanh) 또는 Unbounded Mask는 GT를 따르려고 한다는 것을 명확하게 보여준다.
한 가지 흥미로운 사실은 weighted-SDR 또는 Wave-MSE와 같은 Time-domain Loss Function들은 Ground Truth의 분포를 캡처 할 수 있지만, Spectrogram-MSE는 cIRM의 분포를 캡처하지 못한다는 것이다. 보다 구체적으로, Spectrogram-MSE를 사용할 때 예측된 cRM의 가상 값은 거의 항상 0이며, 이는 결국 잡음이있는 음성의 Magnitued만 조정되고 아래와 같은 rotations을 가진 잡음이 있는 음성의 Phase을 수정하지 못함을 나타낸다.
이 효과를 다른 관점에서 설명하기 위해 <그림 5>의 각 Loss Function(손실 함수)에 대한 Estimation 파형도 플로팅했다. <그림 5>(c)와 (d)에서 알 수 있듯이, Time-domain Loss Function(손실 함수)으로 최적화된 모델은 깨끗한 음성과 잘 정렬된다. 그러나 <그림 5>(a)와 (b)는 거의 동일한 추정치를 보여 주면서 Ground Truth와 잘 맞지 않는다. <그림 5>(a)는 깨끗한 음성의 단계를 Estimation하지 않고 가능한 최상의 결과이다. 이것은 Spectrogram-MSE를 사용하여 모델을 최적화하면 Phase 보정을 배우기 어렵게하여 모델이 기존 접근 방식과 마찬가지로 잡음이있는 Phase을 재사용하게 됨을 다시 확인한다.
이러한 관찰을 명시적으로 지원하려면 Phase Estimation을 위한 정량적 측정이 필요하다. 여기서는 대상 Spectrograms (A)와 Estimation Spectrograms (B) 사이의 Phase 거리를 해당 Complex TF 빈 사이의 가중 평균으로 정의한다. 여기서 각 빈은 대상 음성의 크기 (|At, f |)에 의해 가중치가 부여되어 각 TF 빈의 상대적 중요성 이다. Phase 거리는 다음과 같이 공식화 된다:
여기서, ∠ (At, f, Bt, f )는 범위가 [0,180] 인 At, f 와 Bt, f 사이의 각도를 나타낸다.
깨끗한 음성과 잡음이있는 음성 사이의 Phase 거리(PhaseDist (C, N))와 깨끗한 음성과 추정된 음성 사이의 Phase 거리 (PhaseDist (C, E))가 <표 5>에 나와 있다. 결과는 최상의 Phase 개선(Phase Improvement = PhaseDist (C, N) − PhaseDist (C, E))을 얻었다. 모든 SNR 조건에서 wSDR 손실이 발생한다. 또한 Spc 손실은 최악의 결과를 제공하여 다시 한 번 우리의 관찰을 강화한다. Phase Improvement와 Performance Difference 간의 분석은 "부록 G"에서 자세히 설명한다.
6 CONCLUSION
이 논문은 Speech Enhancement 방법으로 Complex-valued Spectrograms을 다루기 위해서 두 모델을 결합한 Deep Complex U-Net을 제안했다. 이를 통해, 새로운 Loss Function(손실 함수)[weighted-SDR Loss]으로 최적화된 새로운 Complex-valued Masking 방법을 설계했다. 이 연구를 통해, 연구진은 제안한 접근법이 보다 정확한 Phase Estimation에 효과적이라는 것을 보여 주었으며, 결과적으로 Speech Enhancement를 위한 최첨단 성능을 제공한다. 또한, 연구진은 양적 및 질적 연구를 모두 수행하였고, 이 논문에서 제안한 방법이 이전에 제안된 알고리즘보다 일관적으로 우수하다는 것을 입증했다.
표 5 : 4 가지 SNR 조건에서 Phase 거리 및 Phase 개선. Spc, Wav 및 wSDR 열은 각각 Spectrogram-MSE, Wave-MSE 및 weighted-SDR의 세 가지 목표로 훈련된 모델의 결과를 보여준다. |
![]() |
빠른시간 안에 연설자(화자) 분리, 음원 분리 등 다양한 분리 작업에 시스템을 적용 할 계획이다. 또 다른 중요한 방향은 정확한 Phase Estimation은 다중 채널 환경에서 훨씬 더 중요하기 때문에 제안된 모델을 확장하여 다중 채널 오디오에 적용할 예정이다(Wang et al., 2018). 분리 외에도 우리의 접근 방식은 반향 제거, 대역폭 확장 또는 텍스트 음성 변환 시스템을 위한 Phase Estimation Network와 같은 다양한 오디오 관련 작업으로 일반화 될 수 있다. 시퀀스 모델링을 활용하면 Complex-valued LSTM으로 추가 확장을 찾는 것도 흥미로울 수 있다(Arjovsky et al., 2016; Wisdom et al., 2016).
[ Github ]
https://github.com/Doyosae/Phase_aware_Deep_Complex_UNet
Doyosae/Phase_aware_Deep_Complex_UNet
Implementation Phase-aware Speech Enhancement with Deep Complex U-Net - Doyosae/Phase_aware_Deep_Complex_UNet
github.com
[딥러닝 공부할 때 알아야 기본]
- [ A ] : 딥러닝 네트워크에서는 노드에 들어오는 값들에 대해 곧바로 다음 [ B ]로 전달하지 않고 주로 [ C ]함수를 통과시킨 후 전달한다. 이때 사용하는 것을 [ A ]라 부른다. 여기서 주로 [ C ] 함수를 사용하는 이유는 [ D ]함수를 사용할 시, 층을 깊게 하는 의미가 줄어들기 때문이다.
'AI-Study' 카테고리의 다른 글
Deep Learning Paper Review: (FULLSUBNET) Speech Enhancement (2) | 2021.06.22 |
---|---|
Deep Learning Paper Review: (SEGAN) Speech Enhancement (4) | 2021.06.21 |
Deep Learning : Speech Enhancement -APPENDIX (2) | 2021.06.19 |
Deep Learning : Activation Function(활성화 함수) 종류 (1) | 2021.06.17 |
"푸리에 변환"(Fourier Transform)의 기초(Foundation!).. (유투브 강좌) (1) | 2021.06.09 |