I. 서 론
II. 마스크 기반 음성향상
2.1 잡음 오염 음성
2.2 마스크 기반 음성 향상 과정
2.3 음성 향상 모델 구조
III. 제안하는 방법
3.1 자기지도학습 표현
3.2 자기지도학습 표현을 통한 음성 향상 기법
IV. 실험 및 결과
4.1 데이터베이스
4.2 실험 설정
4.3 실험 결과
V. 결 론
I. 서 론
음성 향상 기술은 잡음에 오염된 음성 신호에서 불필요한 잡음을 최소화함으로써 음성의 명료도와 지각적인 품질을 향상시키는 기술을 의미한다. 특히 음성 인식 시스템, 통신 등 음성 기반 상호작용이 요구되는 분야는 정확한 음성 신호를 전달하는 것이 중요하다. 이러한 시스템들은 잡음이 섞인 음성 데이터를 명료하게 처리하는 과정이 필요하기에 음성 향상 기법이 지속적으로 연구되고 있다.
초기 음성 향상 기법은 통계적인 방식[1,2]을 기반으로 연구되어 왔지만, 심층 신경망(Deep Neural Network, DNN) 기술이 발전함에 따라 보다 효율적이고 정교한 음성 향상 방법들이 제안되었다. 특히 DNN 기반 음성 향상 기법들 중 잡음에 오염된 음성 신호에 대해 잡음과 음성 영역을 구별하고 잡음이 있는 영역을 억제하는 방식으로 동작하는 마스크 기반 음성 향상[3]기법이 활발히 연구되어 왔다. 마스크 기반 음성 향상은 시간-주파수 영역에서 마스크를 생성하고, 이를 원신호의 스펙트로그램에 요소 곱 연산하여 명료한 음성을 얻는 과정으로 동작한다.
한편, 자기지도학습(Self-Supervised Learning, SSL) 표현을 음성 향상에 적용하는 다양한 시도가 이루어져 왔다.[4,5] 자기지도학습은 비지도 학습의 한 방법으로, 라벨이 존재하지 않는 대규모 데이터에서 스스로 라벨을 생성하여 학습을 진행하는 방식을 말한다. 이는 라벨링 과정에서 발생하는 비용을 절감할 뿐만 아니라, 대규모 음성 데이터 셋으로부터 잠재된 음성 표현을 얻을 수 있는 이점이 존재한다. 선행 연구에서는 자기지도학습 표현을 통해 음성 신호의 잠재된 특징을 추출하고, 이를 음성 향상 기법에 적용하여 기존 모델보다 향상된 성능을 나타내었다.
본 논문에서는 U-Net 모델[6]을 기반으로 한 마스크 기반 음성 향상 기법을 제안하며, 기존 연구에서 추출한 자기지도학습 표현을 활용하여 음성 향상 성능을 더욱 높이는 실험을 진행하였다. 제안하는 방법의 U-Net 구조에서 skip-connection은 압축된 스펙트로그램을 복원하는 과정에서 인코더의 정보를 가져오는 것뿐만 아니라 자기지도학습에서 추출된 표현을 전달하여 스펙트로그램 복원 작업을 향상시키고, 이를 통해 향상된 마스크를 출력할 수 있도록 한다.
본 논문의 구성은 다음과 같다. II장에서 마스크 기반 음성 향상 기법과 U-Net 구조에 대해 설명한다. III장에서 자기지도학습 모델인 wav2vec2.0[7]을 소개하며, 자기지도학습 표현을 결합한 U-Net 구조를 통해 음성 향상 기법에 대해 설명한다. IV장에서는 제안된 방법의 성능을 비교, 평가하고 V장에서 본 연구의 결론을 제시하며 마무리 맺는다.
II. 마스크 기반 음성향상
2.1 잡음 오염 음성
잡음에 오염된 음성 데이터는 Eq. (1)과 같이 깨끗한 음성에 부가적으로 잡음이 오염되는 것으로 가정한다.
와 은 각각 시간 영역에 대한 깨끗한 음성 신호와 잡음 신호를 의미한다. 두 신호가 더해짐으로써 잡음에 오염된 신호 가 생성된다. 잡음에 오염된 음성은 단시간 푸리에 변환(Short-Time Fourier Transform, STFT)을 통해 주파수 정보를 담고 있는 스펙트럼으로 변환할 수 있으며, 크기 스펙트럼으로 표현하면 아래 식과 같다.
Eq. (2)의 , , 은 각각 잡음에 오염된 음성, 깨끗한 음성, 배경 잡음의 크기 스펙트럼 결과이다. Eq. (1)과 마찬가지로 스펙트럼 상에서도 배경 잡음 이 부가적으로 깨끗한 음성 를 오염시켜 오염된 음성 가 생성되는 과정이 유지된다.
2.2 마스크 기반 음성 향상 과정
본 논문에서 수행한 마스크 기반 음성 향상 과정은 Fig. 1과 같이 진행된다. 시간 도메인의 데이터를 단시간 푸리에 변환을 적용하여 주파수 정보를 표현한 후, 심층 신경망 모델의 입력으로 사용한다. 입력된 크기 스펙트럼을 기반으로 모델은 마스크를 추정하고 생성된 마스크를 잡음에 오염된 크기 스펙트럼에 요소 곱하여 잡음이 제거된 크기 스펙트럼을 얻을 수 있다. 잡음이 제거된 크기 스펙트럼에 역 단시간 푸리에 변환(Inverse STFT, ISTFT)을 적용하여 시간 영역에서 명료성이 향상된 음성으로 복원한다.
잡음을 억제하는 마스크는 DNN을 통해 생성된다. DNN은 향상된 음성 크기 스펙트럼 이 원래의 깨끗한 음성 신호 와 유사할 수 있도록 훈련을 진행한다.
심층 신경망은 잡음에 오염된 스펙트럼을 입력받아 Eq. (3)와 같이 추정된 마스크 을 출력한다. Eq. (4)는 향상된 크기 스펙트럼 을 얻는 과정이며 와 은 각각 잡음에 오염된 음성의 크기 스펙트럼과 추정된 마스크의 크기 스펙트럼이다. 두 크기 스펙트럼을 요소 곱 연산을 하여 잡음 영역은 억제하고 음성 부분을 강조하는 향상된 크기 스펙트럼을 출력한다. 향상된 음성 크기 스펙트럼과 입력 음성 파형으로부터 취득한 각도 성분을 이용하여 역 단시간 푸리에변환을 통해 음성 파형으로 복원한다.
2.3 음성 향상 모델 구조
본 논문에서는 마스크 기반 음성 향상을 수행하기 위해 U-Net 모델을 사용하였다. U-Net 모델은 생물 의학 분야에서 이미지 분할을 수행하기 위해 제안된 모델로 네트워크 구성이 ‘U’ 형태를 가지고 있기에 U-Net의 이름이 붙었다. 음성 향상을 위한 베이스라인 U-Net 구조는 Fig. 2과 같다.
U-Net의 Encoder와 Decoder는 각각 8개의 층으로 구성되어 있으며, Encoder의 내부는 컨볼루션, 배치 정규화, 활성 함수로 구성되어 있다. Decoder의 구조도 유사하지만 컨볼루션 대신 전치 컨볼루션을 사용한다는 차이가 있다. U-Net의 Encoder-Decoder 구조는 입력 신호를 압축하고 복원하는 과정을 수행한다. 복원 과정에서 skip-connection은 Decoder와 대응되는 Encoder의 고해상도 정보를 전달하여, 이미지 복원 시 더 세밀하고 정확한 정보를 반영할 수 있도록 돕는다.
U-Net 구조의 각 Encoder의 동작 과정은 아래 수식과 같다.
Eq. (5)에서는 인코더의 출력을 나타낸다. 첫 번째 층의 인코더는 를 입력으로 받으며, 그 외의 층에서는 이전 층 인코더의 출력을 입력으로 받는다.
Eq. (6)에서는 디코더의 출력을 나타낸다. 디코더는 Fig. 2의 skip-connection으로 전달된 n번째 인코더 출력인 과 아래층에서 올라온 디코더 출력값 을 결합한다. 이때 ⊕은 concat 연산이다.
이 과정을 통해 U-Net은 Eq. (4)와 같이 향상된 스펙트럼을 출력하고, 평균 제곱 오차(Mean Squared Error, MSE) 손실함수를 사용하여 깨끗한 신호와 향상된 스펙트럼 간의 차이를 최소화하도록 학습을 진행한다. 평균 제곱 오차 손실함수는 T개의 시간 영역과 F개의 주파수 영역에 대해 Eq. (7)과 같이 계산된다.
U-Net의 Encoder-Decoder 구조에서 Decoder의 마지막 층을 제외한 모든 층에는 Rectified Linear Unit (ReLU) 활성 함수를 사용하였으며, 마지막 층에는 sigmoid 함수를 적용하여 출력값이 [0, 1] 범위에 있도록 설정하였다. 따라서 잡음이 있는 부분은 0에 가깝게, 음성이 있는 부분에는 1에 가깝게 예측하는 마스크를 생성한다. 최종적으로 출력된 마스크를 원신호에 요소 곱 연산하여, 잡음이 제거된 음성을 얻을 수 있게 된다.
III. 제안하는 방법
3.1 자기지도학습 표현
자기지도학습(SSL)은 비지도 학습의 기법 중 하나로, 라벨이 존재하지 않는 데이터로부터 스스로 라벨을 생성하여 의미 있는 표현을 학습하는 방법이다. 이 과정에서 자기지도학습 모델은 대량의 데이터에 내재된 특징을 스스로 파악한다. 본 논문에서는 자기지도학습 표현을 얻기 위해 wav2vec2.0[7] 모델을 사용하였다. wav2vec2.0은 Facebook AI에서 개발한 모델이며 특징 인코더(Feature Encoder)와 Transformer 모듈, 양자화 모듈의 세 가지 구조로 구성되어 있다.
특징 인코더는 CNN 기반으로 동작하며 원시 음성 데이터𝜒를 입력받아 잠재된 음성 표현인 z값을 출력하는 과정을 가진다. z값은 시간 차원에서 으로 표현되며, 이 중 일부는 마스킹 되어 Transformer 모듈의 입력으로 사용된다.
Transformer 모듈은 과정을 가지며 마스킹 된 z값을 입력받아 문맥 정보인 c값을 예측한다. 특히, Transformer의 Self-Attention 메커니즘을 통해 각 음성 프레임의 중요도를 평가하고, 마스킹 된 프레임을 예측하기 위해 전체 시퀀스의 문맥 정보를 활용한다.
양자화 모듈은 자기지도학습에서 라벨을 생성하는 역할을 수행한다. 특징 인코더를 거치고 마스킹 되지 않은 z값을 입력으로 받아 codebook을 통해 유한한 집합인 q를 출력한다. 이 과정을 로 표현할 수 있다. q값은 Transformer 모듈의 출력인 c값의 라벨 역할을 수행하며, 실질적인 라벨 없이도 학습을 진행할 수 있도록 한다.
wav2vec2.0은 Eq. (8)의 손실함수를 통해 학습을 진행한다.
Eq. (8)의 손실함수는 Eq. (9)의 Contrastive 손실함수 과 Eq. (10)의 Diversity 손실함수 로 구성된다.
Eq. (9)은 Transformer의 출력으로 생성된 c값과 q값을 대조하는 손실함수이다. 수식의 는 마스킹 된 시간 단계를 의미하며, 는 시점의 Transformer 출력값을 의미한다. 수식에서 sim은 cosine similarity로 계산을 수행한다. 는 개의 방해 요소와 1개의 정답 요소로 구성되어 있다. 개의 방해 요소는 동일 발화의 다른 마스크 된 시간 단계의 z값을 양자화하여 얻어진다. log 안의 수식은 softmax 수식과 유사하며 정답과 예측한 문맥 정보를 비교하여 유사도를 높이고, 방해 요소 사이의 유사도는 낮추는 방향으로 학습을 진행한다.
Eq. (10)은 codebook을 효과적으로 표현하기 위해 고안된 손실함수이며, 이를 통해 양자화 값이 표현될 수 있도록 설계되었다. 해당 손실함수는 정보 이론에 사용하는 엔트로피 를 활용하여, codebook의 각 codeword가 균등하게 분포되도록 한다. 엔트로피는 주어진 확률 분포의 불확실성을 측정하는 척도로, 분포가 균등할수록 엔트로피 값이 높아진다. 엔트로피를 손실함수에 적용하기 위해 음수 부호를 적용했으며 이를 통해 모델이 다양한 표현을 가지는 codebook을 가지게 된다.
wav2vec2.0은 위 과정을 통해 학습된 z값과 c값을 얻을 수 있다. CNN을 통해 얻어지는 z값은 원시 음성 신호에서 얻은 잠재된 음성 표현이며, Transformer를 통해 얻어지는 c값은 문맥화된 표현을 가진다. 본 논문의 실험에서는 wav2vec2.0의 z값을 사용하여 실험을 진행하였다.
3.2 자기지도학습 표현을 통한 음성 향상 기법
본 논문에서 제안하는 모델 구조는 Fig. 3과 같다. 기존 U-Net 구조에서 skip-connection은 Decoder에 대응되는 층의 Encoder 출력값을 전달하는 반면 Fig. 3의 U-Net은 skip-connection에 wav2vec2.0의 잠재된 음성 표현인 z값을 추가로 전달한다. 이러한 과정을 통해 U-Net 구조는 음성의 스펙트로그램 복원 과정에서 더 많은 고차원 정보를 전달받는다. 이는 향상된 마스크를 생성하는 것에 기여한다.
Fig. 3와 같이 잡음에 오염된 스펙트럼 와 잠재된 음성 표현인 Z값을 U-Net 구조에 입력하여 각각의 압축된 신호를 skip-connection으로 전달한다. Fig. 3의 Encoder 동작 과정은 Eq. (5)와 동일하며, 추가적으로 값을 Encoder에 입력한다. Decoder는 Eq. (6)와 유사하지만 입력되는 값에 Encoder를 거친 Z값이 추가적으로 결합된다는 차이점이 존재한다. 이 과정을 수식으로 설명하면 아래와 같다.
Eqs. (11)과 (12)는 각각 와 의 Encoder 과정을, Eq. (13)은 Decoder 과정을 설명한다.
Fig. 4는 Fig. 3의 skip-connection 과정을 설명하며, Decoder의 출력값과 두 개의 Encoder 출력값을 결합 후 skip-connection으로 전달하여 Decoder의 입력으로 전달되는 Eq. (13) 과정을 설명한다.
IV. 실험 및 결과
4.1 데이터베이스
실험 데이터는 Voice Cloning Toolkit(VCTK)[8]를 사용하였다. 해당 데이터는 음성 향상을 목적으로 제작되었으며, 동일한 음성에 대해 clean 데이터와 noisy 데이터를 제공한다. 훈련 데이터는 28명의 화자가 제공한 11,572개의 발화로 구성되며, 총 9.4 h에 해당한다. 테스트 데이터는 2명의 화자가 824개를 발화한 샘플로 구성되며 총 0.6 h에 해당한다. 2명의 화자는 훈련 데이터에 포함되지 않는다. 실험에는 10가지 유형의 잡음 데이터를 사용하였으며, 2개의 인공 잡음과 DEMAND[9] 데이터셋에 있는 8개의 실제 잡음 데이터로 구성하였다. 인공 잡음은 speech-shaped noise, babble noise를 가지며 실제 잡음은 DEMAND 데이터 셋으로부터 가정 소음(부엌), 사무실 소음(회의실), 대중 공간 소음(카페테리아, 레스토랑, 지하철역), 교통 소음 두 가지(자동차, 지하철), 거리 소음(교차로)을 선택하였다. 본 논문의 실험 과정에서는 16 kHz로 다운 샘플링하였고, 훈련 데이터의 SNR은 0 dB, 5 dB, 10 dB, 15 dB로, 테스트 데이터는 2.5 dB, 7.5 dB, 12.5 dB, 17.5 dB로 설정하여 잡음 오염 음성 데이터를 생성하였다. 윈도우 크기와 이동은 각각 64 ms, 16 ms로 설정하였다.
4.2 실험 설정
학습을 진행할 때 Adam optimizer를 사용하였으며 학습률은 0.001, 배치 사이즈는 4로 설정하였다. 자기지도학습 표현을 사용하기 위해 wav2vec2.0-Base-960 h 모델[7]을 사용하였으며, 자기지도학습 표현으로는 특징 인코더의 출력값인 z값을 사용하였다. 제안하는 방법의 모델 구조는 Fig. 3과 동일하며 자기지도학습 표현을 입력받는 인코더 또한 8계층이며, 컨볼루션, 배치 정규화, 활성함수로 구성되어 있다.
음성 평가 지표로 세 가지를 사용하였으며, Source-to-Distortion Ratio(SDR),[10] Perceptual Evaluation of Speech Quality(PESQ),[11] Short-Time Objective Intelligibility(STOI)[12]를 통해 실험 결과를 확인하며 자기지도학습 표현 적용 여부에 따른 성능 평가를 진행한다.
4.3 실험 결과
실험 결과는 Table 1에서 관찰할 수 있다. 실험 결과에서 각 지표는 824개 테스트 데이터에 대한 평균 수치이다. No processing은 아무 처리를 하지 않은 입력 데이터에 대한 결과이고, U-Net 모델은 이 실험의 베이스 라인을 말하며 U-Net + wav2vec2.0은 이 논문에서 제안하는 방법을 나타낸다. 성능 비교를 위해 Minimum Mean Squared Error(MMSE) 기반 음성 향상 기법,[13] 생성형 기반 음성 향상의 대표적 기법인 SEGAN,[14] U-NET 형태의 모델을 사용하면서 원시 음성을 입력으로 사용하는 Dilated Wave-U-Net[15] 기법의 PESQ 지표를 기재했다. Table 1의 OMLSA는 Optimal-Modified Log-Spectral Amplitude를 의미한다. 기존 연구 결과 중 본 논문과 동일한 VCTK 데이터셋을 사용한 결과를 참고하였고,[16] SDR과 STOI는 그 결과가 논문에 기재되지 않았거나 측정 방식이 다른 것으로 판단되어 기재하지 않았다.
Table 1.
Results of speech enhancement.
Method | SDR [dB] | PESQ | STOI |
No processing | 8.53 | 1.970 | 0.921 |
OMLSA[13] | N/A | 2.360 | N/A |
SEGAN[14] | N/A | 2.170 | N/A |
Dilated Wave-U-Net[15] | N/A | 2.360 | N/A |
U-NET | 10.35 | 2.479 | 0.923 |
U-NET + wav2vec | 10.45 | 2.486 | 0.925 |
실험 결과에 의하면 wav2vec2.0의 자기지도학습표현을 skip-connection에 전달했을 때 베이스라인인 U-Net과 비교하여 SDR, PESQ, STOI의 모든 지표에서 성능이 향상됨을 확인할 수 있다. 제한적인 비교이기는 하나, MMSE 기반 기법, 생성형 기반 음성 향상 모델인 SEGAN, 원시 음성을 입력으로 사용하는 Dilated Wave-U-Net과 성능을 비교하면 제안하는 방법이 PESQ 측면에서 더 높은 성능을 보이는 것을 확인할 수 있다. Wav2vec2.0 모델은 대용량 음성 데이터로부터 비지도 방식 학습을 통해 외부 잡음에 덜 민감한 음성 요소와 비교적 긴 시간 구간의 문맥 정보가 반영된 자기지도학습 표현을 생성할 수 있다. 이러한 자기지도학습 표현을 U-Net의 skip-connection을 통해 전달함으로써 디코더 출력의 음성 스펙트럼 복원을 위해 기존의 Encoder 출력과는 독립적이면서 잡음에 강인한 원시 음성 신호의 음성 특징 정보를 모델 학습 과정에 제공할 수 있다. 이를 통해 마스크 기반 음성 향상에서 기존의 U-Net과 비교하여 보다 향상된 성능을 얻을 수 있는 것으로 판단된다.
V. 결 론
본 논문에서는 음성 향상 기법에 자기지도학습 기반의 음성 표현을 결합하여 성능을 향상시키는 실험을 진행하였다. 실험 결과, 논문에서 제안하는 방법이 음성 향상 성능을 유의미하게 개선하는 데 효과가 있음을 확인하였다. wav2vec2.0의 자기지도학습 음성 표현 z값은 대용량 음성 데이터로부터 학습된 잡음에 강인한 음성 요소와 문맥 정보가 반영된 원시 음성 신호 특징을 포함하고 있어, 이를 U-Net 모델에 결합하여 기존의 음성 향상 기법보다 더 높은 음성 향상 성능을 얻을 수 있었다. 이러한 접근 방식은 SDR, PESQ, STOI와 같은 음성 평가 지표에서 향상을 나타냈다. 향후 연구에서는 복소수 영역을 고려한 DCUNET에서 성능 향상 실험을 진행할 것이며, 논문에서 제안한 방법보다 향상된 성능을 얻는 방법을 연구할 것이다.