Multi-Channel 오디오 신호처리, 음질 개선 (speech enhancement) 작업에 자주 쓰이는 spatial filter인 beamformer에 대해 알아보고 time difference of arrival (TDOA), directivity, beampattern 등 관련 개념들을 정리해봅시다.
Multi-Channel 오디오 신호처리
여러 개의 마이크를 사용해 여러 개의 입력을 받아 신호를 처리하는 것을 다채널 신호처리 (multi-channel signal processing)라고 말합니다. (e.g. 4개의 마이크로부터 입력을 받았다면 입력 채널의 개수는 4개) 이렇게 얻은 입력 신호들을 통해 공간 정보를 얻을 수 있습니다. 여기서 공간 정보란 각 마이크 간 신호가 도달한 시간차 (ITD, interchannel time difference), 위상 차이 (IPD, interchannel phase difference), 신호 강도 차이 (ILD, interchannel loudness difference) 를 말합니다. 이렇게 마이크 배열 내 음성 신호의 물리적 특성에 따라 공간 정보를 다양하게 얻을 수 있습니다. 이걸 잘만 활용한다면 특정 방향에 있는 원하는 신호를 강화하거나 반대로 억제하는 것도 가능하겠죠?
Beamformer
빔포머 (Beamformer)는 특정 방향에 위치한 타겟 소스 신호를 focus하고 그 외의 방향에서 오는 noise와 reverberation을 최소화합니다. 원하는 소스가 위치한 방향에 높은 gain 값을 갖는 beam을 형성하여 desired sound를 얻어내기 때문에 이런 일련의 작업을 공간 필터링 (spatial filtering)이라고도 합니다.
Delay & Sum Beamformer
간단한 예시로 delay & sum beaformer에 대해 알아보겠습니다. 각각의 신호가 uniform linear array (ULA)에서 capture된다고 가정해봅시다. ULA는 일정한 간격을 두고 배치된 마이크 배열을 말합니다. 이때 각 마이크 위치에 따라 원하는 source, noise가 각각 도달하는 시간이 다를 것입니다. 어떤 것은 source가 noise에 비해 더 빨리 마이크에 도착하고 또 어떤 것은 비슷하게 도착할 겁니다.
마이크 신호를 runtime difference에 따라 shift 하여 원하는 소스 신호를 정렬(align) 시켜줄 수 있습니다. alignment 이후 4개의 신호를 더하고 마이크 신호 개수로 나눠 소스 신호의 loudness를 원래대로 스케일링 해주면, 소스 신호는 결과적으로 원래 정보를 유지한 상태로 보존되고 노이즈는 amplitude가 감소하게 됩니다. 이렇게 신호에 delay를 주어 소스의 phase를 조정해줌으로써 원본 desired sound를 추출하고 그 외의 신호를 약화시키는 것을 delay & sum beamformer 라고 합니다.
TDOA
소스의 위치를 안다고 가정해봅시다. 이때 소스를 향한 마이크 배열의 방향 및 각도를 $\theta$, DOA(direction of arrival)라고 합니다.
source가 마이크 배열과 아주 먼거리에 배치된 원거리(Far Field) 상황이라고 가정해봅시다. 이 경우, 마이크 배열에 잡힌 wave signal이 plane wave(평면파)에 근사될 수 있습니다. 결과적으로 $\theta$는 모든 마이크에서 동일한 값을 가지게 됩니다. 실제로는 wave가 정확하게 flat하지 않겠지만 대부분의 원거리 모델에서 이러한 가정이 충분히 잘 동작한다고 합니다.
일반적으로, 첫 번째 마이크에 잡힌 신호를 reference signal이라고 합니다. ULA 구조를 따르기 때문에, 각 마이크 간 거리는 모두 같습니다. 두 마이크 간 거리를 $l$이라고 했을 때, 삼각법을 적용하여 첫 번째와 두 번째 마이크 간의 전파 경로 길이의 차$(\Delta s)$를 계산할 수 있습니다. 물리 공식($시간=\frac{거리}{속력}=\frac{\Delta s}{c}$)에 근거하여, Time Difference of Arrivals (TDOA, $\Delta t$)도 구할 수 있게 됩니다. 네 번째 마이크의 TDOA는 $3\times\frac{l\cdot cos(\theta_s)}{c}$이고 마이크가 $I$개 있다고 가정했을 때 $i$번째 마이크는 $(i-1)\times\frac{l\cdot cos(\theta_s)}{c}$ 식을 계산하여 값을 얻을 수 있습니다.
Directivity
신호가 특정 방향으로 집중되는 정도를 directivity라고 합니다. 마이크에서 받은 특정 방향에서의 신호 강도와 모든 방향의 신호 강도를 평균한 것의 비율로도 나타낼 수 있습니다.
Beampattern
특정 방향(각도)에서 beamformer 출력 신호 강도를 나타낸 것을 beampattern이라고 합니다. 각도 $\theta$에 따라 변화하며 원하는 소스가 위치한 방향에서는 높은 amplitude 값을 갖고 그 외의 방향에서는 낮은 값을 가집니다. 소스에서 마이크 배열 간의 DOA가 60도 일 때, spatial response을 그려보면 같은 각도에서 amplitude가 가장 높은 것을 볼 수 있습니다. 이 beampattern 영역을 main lobe라고 부릅니다.
spatial response는 angle 뿐만 아니라 사운드 소스로부터의 소리의 주파수와도 관련이 있습니다. 신호가 고주파일 경우, 좀 더 조밀하게 spatial response가 그려지는 걸 확인할 수 있습니다. 그런데 이때 60도 말고 160도에서도 신호 강도가 최댓값을 찍는 lobe가 생긴 것을 관찰할 수 있습니다. 이 부가적인 main lobe를 grating lobe라고 합니다. 이는 angle이 160도 일 때 해당 주파수를 가진 소리가 억제되지 않는다는 것을 의미합니다.
다음은 x축이 angle, y축은 frequency, 색깔은 amplitude를 나타낸 beampattern 입니다. 각도가 60도 부근일 때, 노란색으로 칠해진 부분에서 main lobe가 관찰됩니다. 다른 저주파 대역에서는 grating lobe가 관찰되지 않는 반면에 빔패턴의 오른쪽 위 부분에서 grating lobe가 생긴 걸 볼 수 있습니다. 이렇게 고주파 대역 상 다른 angle에서 grating lobe가 관찰되는 이 현상을 spatial aliasing이라고 합니다. 샘플링 시 저주파 대역에 고주파 성분이 포함되는 걸 time aliasing이라 하는 것처럼, spatial aliasing은 원하는 방향의 신호가 아닌 다른 방향으로부터 온 신호가 포함되는 것을 말합니다.
Reference
[1] P. Vary and R. Martin, Digital Speech Transmission. John Wiley & Sons, 2006.
[2] S. Gannot, E. Vincent, S. Markovich-Golan, and A. Ozerov, “A Consolidated Perspective on Multimicrophone Speech Enhancement and Source Separation,” IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 25, no. 4, pp. 692–730, Apr. 2017, doi: https://doi.org/10.1109/taslp.2016.2647702.
[3] “How does Delay-And-Sum-Beamforming in the Time Domain (TDBF) work?,” www.linkedin.com. https://www.linkedin.com/pulse/how-does-delay-and-sum-beamforming-time-domain-tdbf-work-lohmann/ (accessed Mar. 07, 2024).
[4] “A gentle introduction to beamforming,” http://www.youtube.com. https://www.youtube.com/watch?v=etTcru7CrWU (accessed Mar. 07, 2024).
'연구 노트 > 음성신호처리' 카테고리의 다른 글
Wiener filter: 신호 필터링, 예측을 하는데 쓰는 linear filter (2) | 2024.03.13 |
---|---|
MVDR beamformer 완전 정복 (1) | 2024.03.12 |
FFT 수행 시 zero padding이 frequency resolution에 미치는 영향 (0) | 2024.02.14 |
음성신호처리에서 Pre-emphasis filtering을 하는 이유 (1) | 2023.11.10 |
Hamming window와 Rectangular window 비교 (2) | 2023.11.09 |