개요

 

일반적으로 Audio source separation을 위한 모델은 spectrogram 기반 프로세싱을 많이 하고, phase 정보를 무시하고, magnitude 정보만을 가지고 처리한다.

 

이로 인한 한계가 있고, 최근 이를 해결하기 위한 방법으로 spectrogram-based processing이 아닌, Time-domain waveform 기반으로 하는 모델들이 나오고 있다.

 

그 중 대표적인 모델인 WAVE-U-NET 에 대해서 내 마음대로 간단하게 리뷰 해보고자 한다.

 

 

Wave-U-Net 아키텍처

 

우리의 목표는 주어진 Mixture waveform 을 2개의 Source waveform으로 나누는 것이다.

 

Fig 1은 Wave-U-Net 아키텍처의 다이어그램이다. 먼저 크게 2가지 부분으로 구성되어 있다. 이 두 부분은 Fig 상에서 왼쪽(노란색), 오른쪽(초록색) 부분인데, 나는 각각 이 큰 덩어리를 encoder/decoder라고 명명하고 설명하겠다.

 

 

 

[Fig 1] Wave-U-Net 아키텍처 다이어그램

 

 

 

먼저 인코더 부분은 여러 downsampling block의 연속으로 구성되어 있다. 각각의 downsampling block들은 또 2가지 모듈로 구성되어 있는데, 그것은 1D Conv 모듈/ Downsampling 모듈이다. 여기서는 1D-Conv를 통해서, Time domain에서 많은 High-level features map을 추출해 내고,  downsampling을 하며 시간 단계에 대해 특정한 패턴을 따르며 time sample들을 무시하여 Time resolution을 절반으로 줄인다.

 

다음으로, 디코더 부분을 살펴보면, upsampling block의 연속으로 구성되어 있다. upsampling block은 이전과 비슷하게 1D Transposed Conv와 Upsampling 모듈로 구성이 되어 있다. 이 때, Conv와 여러가지 Linear interpolation등의 여러가지 보간 방법을 사용한다.

 

그리고 추가로, 중요한 부분은, Upsampling 경로의 각 Layer는 skip-connection을 통해 downsampling 경로의 해당 Layer에 연결된다.

 

 

다시 한번 설명하면, 

 

Downsampling  블록을 사용하여 Time domain에서 많은 High-level features을 추출해 낸다. 이러한 기능은 Upsampling (US) 블록을 사용하여 이전에 계산 된 Local의 High-resolution features과 결합되어 예측에 사용되는 Multi-Scale 기능을 제공한다. Network에는 L개의 레벨이 있으며 각 연속 레벨은 이전 레벨의 절반 시간 분해능으로 작동한다.

 

이를 위해 제일 먼저 1D-Convolution를  Time domain waveform에 대해 적용한다. 논문에서는 downsampling/upsampling을 위해 각각 24 hidden conv layers with 15 filter size / 12 hidden conv layer with 5 filter size 를 사용했다. 또한 Optimization을 위해서 batchnorm 을 적용하고, activation fucntion으로는 LeakyRelu, 마지막 layer에는 tanh를 사용한다. 

 

Decimation 단계에서는 시간 단계에 대해 특정한 패턴을 따르며 feature(time sample)들을 무시하여 Time resolution을 절반으로 줄인다.

 

Upsampling 단계에서는 시간 방향으로 2 배씩 업 샘플링을 수행하기 위해 Linear Interpolation을 사용한다. 이 때, aliasing 이 생기는데, 이것을 해결하기 위한 다른 방법들을 논문의 뒤에서 추가 설명/제안 한다.

 

Concat (x)는 현재의 High-level feature들과 더 많은 local feature들을 연결(skip-connection)한다. 

 

 

Avoiding aliasing artifacts due to upsampling

 

개인적으로 wave-u-net에서 알고리즘에서 가장 중요한 부분은 upsampling 시, 발생하는 alising 문제를 어떻게 해결하는 방법에 관한 것이다.

 

feature map을 upsampling하기 위해 일반적으로 transposed convolutions with strides 을 사용한다. 이는 aliasing 같은 artifact를 발생시킨다.

 

k의 필터 크기와 1이상의 stride인 Transposed convolutions은 각 원래 값 사이에 x-1만큼 0으로 채워진 feature maps에 적용된 convolutions으로 볼 수 있다. 이는 subsequent low-pass filtering 없이 0으로 interleaving하면, 최종 출력에서도 high-frequency noise가 발생한다.

 

해결방법 I : Linear Interpolation

 

그래서 upsampling을 위해 transposed strided convolutions 대신, linear interpolation을 수행하여 feature space에서 시간적 연속성을 보장 한 다음 normal 컨벌루션을 수행했다고 한다.

 

해결방법 II :  Learned upsampling

 
추가 성능 개선을 위해서 wave-u-net 원 논문에서는 다른 방법도 제시한다.

upsampling을 위해 Linear interpolation은 아주 간단한 해결 방법이기에 성능이 제한될 수 있다.

 

왜냐하면 네트워크의 feature maps들에 사용 되는 feature spaces은 feature spaces의 두 지점 사이의 linear interpolation이 그 자체로 유용한 지점이되도록 학습되지 않았기 때문이다. 만약에 upsampling 되는 feature가 학습 가능하다면 upsampling으로 인한 성능을 더욱 향상시킬 수 있을 것이다.

 

이를 위해 논문에서는 학습 된 upsampling Layer을 제안한다. n 개의 time steps를 갖는 주어진 F × n feature map에 대해, 우리는 매개 변수 W 및 Sigmoid 함수 σ를 사용하여 이웃 한 feature pair f_t, f_t + 1 에 대해 interpolated feature f_t + 0.5 를 계산한다. 수식은 다음과 같다:

 

 

 

이것은 패딩되지 않은 크기가 2 인 F filters를 사용하는 1D convolution으로 구현 될 수 있다.

 

학습 된 interpolation layer는 0.5 이외의 가중치를 가진 featuresconvex한 조합을 허용하므로, 간단한 linear interpolation의 일반화로 볼 수 있다.

 

Prediction with proper input context and resampling

 

 

[Fig 2] a) 일반적인 wav-unet 모델, b) 제안하는 sampling 적용 모델

 

 

a) 경계에 아티팩트를 생성하기 전에 균등하게 입력 된 수의 입력이 포함 된 공통 모델이다 (Common model with an even number of inputs which are zero-padded before convolving, creating artifacts at the borders.). Decimation 후, stride 2를 사용하여 transposed convolution은 여기에서 upsampling by zero-padding intermediate and border values, 다음에 일반 Conv가 발생하여, 출력에서 high-frequency artifacts를 발생시킬 수 있다.

 

b) 섹션 3.2.2의 upsampling을 위한 적절한 input context와 linear interpolation을 가진 모델은 zero-padding을 사용하지 않는다. features의 수는 불균일하게 유지되므로 upsampling에는 extrapolating 값 (red arrow)이 불필요하다. 출력은 더 작지만 artifacts는 예방할 수 있다.

 

 

이전 작업에서, 입력 및 feature mapsconvolving하기 전에 0으로 채워지므로, [Fig 2a]와 같이 결과 feature mapdimension가 변경되지 않는다.

 

그래서 입력 및 출력 dimensions이 동일하므로 네트워크 구현이 간단해진다. 이러한 방식으로 Zero-padding 오디오 또는 spectrogram 입력은 시작과 끝에서 무음을 사용하여 입력을 효과적으로 확장한다.

 

그러나, 전체 오디오 신호의 임의의 위치로부터 취해지면, boundary에서의 정보는 인공적으로된다. 즉, 이 excerpt에 대한 시간적 맥락은 전체 오디오 신호에 주어 지지만 무시되고 silent 로 가정된다.

 

적절한 context 정보가 없으면 네트워크는 sequence의 시작과 끝 근처에서 출력 값을 예측하기가 어렵다.

 

결과적으로, 전체 오디오 신호에 대한 예측을 얻기 위해 테스트 시간에 출력을 겹치지 않는 segment로 연결하면 정확한 context 정보없이 인접 출력이 생성 될 때 인접 출력이 일치하지 않을 수 있으므로 세그먼트 경계에서 audible artifacts를 생성 할 수 있다.

 

이것의 해결책으로, 논문에서는 padding 없이 convolutions을 사용하고, 대신 출력 예측의 크기보다 큰 mixture input을 제공하여 convolutions이 적절한 audio context에서 계산되어 출력 되도록 한다 [Fig 2b 참조].

 

이렇게하면 feature map size가 줄어들기 때문에, 네트워크의 가능한 출력 크기를 제한하여 feature maps이 다음 convolution에 대해 항상 충분히 클 수 있다.


또한, feature mapsresampling 할 때, [Fig 2a] 와 같이, transposed strided convolution에 대한 feature dimensions는 정확히 절반으로 또는 두 배가된다. 

 

그러나 이것은 반드시 경계에서 적어도 하나의 값을 삽입하는 것이고, 이 역시도 아티팩트를 생성한다.

 

대신, 우리는 알려진 이웃 값들 사이에서만 interpolate하고 첫 번째와 마지막 항목을 유지하여 [Fig 2b]에 표시된 것처럼 n에서 2n-1 항목을 생성하거나 그 반대로 생성합니다. 

 

decimation 후 중간 값을 복구하기 위해, 경계 값을 동일하게 유지하면서, feature mapdimensionality가 홀수인지 확인한다.

 

 

 

References

 

[1] WAVE-U-NET: A MULTI-SCALE NEURAL NETWORK FOR END-TO-END AUDIO SOURCE SEPARATION, https://arxiv.org/abs/1806.03185

+ Recent posts