본문 바로가기

paper_review

[논문리뷰] SoundFlower: A Robust Sound Source LocalizationSystem for Voice Assistants

1. Introduction

이미 아마존이나 구글, 애플 등 많은 기업에서 음성 비서를 개발했습니다. 그리고 요즘 SSL 분야에서 음성 비서를 위한 위치 추정 연구도 많이 진행되었습니다. 음성 비서가 사용자의 음성을 통해 사용자의 위치를 파악할 수 있다면 무엇이 좋을까요?
음성 명령의 맥락을 더 잘 이해하고 더 적절한 반응을 할 수 있습니다.

  • TV나 조명에 명령을 전달
  • 각도, 볼륨, 밝기를 조절하는 등의 작업 수행
  • 사용자 경험을 향상시키고 에너지 효율도 개선
  • 음성 인식 정확도를 높이는 데 도움
  • 피팅룸, 보안 시설 등 사용자 프라이버시 보호


하지만 3차원 공간에서 음원의 위치를 정확히 추정하는 것은 쉽지 않습니다. 음원의 위치는 다음 세 가지 차원으로 표현됩니다:

  • 방위각 : 좌우방향
  • 고도각 : 상하방향
  • 거리 : 얼마나 멀리있는지. 거리 추정 방법 - Monaural(한쪽귀) / Binaural(양쪽귀)

Binaural이 양쪽귀라는 뜻으로 마이크 2개를 사용해서 위상 차이, 도착 시간 차이 등 논문에서 사용할 거리 추정 방법입니다.

 


2. Related Work

 

기존 SSL 연구 방법으로는 음원 거리 추정이 어려웠습니다. Machine Learning을 사용하면 라벨의 정밀도 때문에 성능이 제한되었고, 오디오와 비전을 fusion하는 방법도 있었지만 카메라같은 추가 장비가 필요했습니다. 그리고 신호의 사전 정보를 사용하는 방법도 고려되었지만 일반 음성 비서 환경에서는 사용하기에 어려움이 있습니다.

DOA란 방향 각도로, Far-field effect 기반 2개의 마이크에서 받은 신호 차이를 분석하면 DoA 계산이 가능합니다. 음원이 충분히 멀어서 파면을 평면으로 보고, 시간차만으로 방향을 추정할 수 있습니다. 가까우면 구형이 돼서 각 마이크로 가는 방향이 달라지기 때문에 Far-field 가정에 기반해야 합니다.

하지만 DOA는 multipath가 존재하면 추정이 어려워집니다. multipath는 소리가 벽, 천장 등에 반사되어 여러 경로로 들어오는 현상입니다. 기존 DOA 연구는 대표적으로 아래 두 가지가 있습니다.

 

GCC-PHAT

Generalized Cross Correlation - Phase Transform의 약자로, 일반화된 상관 함수 기반 - 위상 가중치 사용을 뜻합니다.

오 : weighting function

이 식은 X1, X2가 얼마나 비슷한지 상관도를 구하는 함수입니다. x2를 계속 움직이면서 얼마나 비슷한지 측정하고, 추정한 τ가 가장 최대인 게 TDoA입니다. 즉 시간영역에서 correlation이 최대인 곳이 peak이고 이 위치가 delay(=TDoA)입니다. multipath인 경우, peak가 여러개 생기는 문제 해결하기 위해 PHAT weighting 함수를 써서 magnitude를 제거하고 phase만 남깁니다. 하지만 여전히 multipath를 근본적으로 해결하진 못합니다.

MUSIC

MUltiple Signal Classification의 약자로, 소리가 어느 각도에서 왔는지 방향 추정합니다. source uncorrelated, noise uncorrelated 가정 하에 여러 마이크 신호를 모은 공분산 행렬 → 고유값 분해 →  signal / noise subspace →  noise subspace와 직교하는 방향을 음원 방향으로 찾는 고해상도 알고리즘입니다. 이 알고리즘 또한 multipath인 경우, 같은 소리가 복사되면서 매우 correlated하게 되어 음원 분리가 깔끔하게 되지 않고, 해상도가 나빠집니다.

 

마지막으로 음성 비서 분야에서의 SSL은 추가 센서 설치가 없어야 하고, 사전 작업 없어야 하지만 기존 연구들에서는 depth camera, 사용자 키, 방 구조 등 정보가 필요합니다.

VoLoc

이 모델은 multipath를 버릴 잡음이 아니라, 오히려 추가 정보로 사용해 위치를 추정합니다. 그래서 두번째 반사 경로에서 위치 정보를 추출합니다. 하지만 아래 조건을 만족해야하며, 사용자가 몸을 숙이면 성능이 저하됩니다.

  • 음성 비서가 벽 근처에 위치
  • 벽까지 거리 + 방향 필요
  • 사용자 키 입력 요구

MAVL

음성 위치 추정을 하기 전에 스피커에서 넓은 대역의 chirp 신호를 방출하여 방 안 구조를 알아낸 후 위치 추정합니다. multipath 환경에서 비교적 강하고, localization 정확도가 향상될 수 있지만

방안 반사 구조를 먼저 알아야 하고 chirp 신호가 필요하기 때문에 실시간 음성 비서 환경에 부적합합니다. 

chirp : 주파수가 시간에 따라 계속 변하는 신호, chirp를 보내고 돌아오는 신호량을 비교하여 시간 지연을 찾을 수 있다.

 


3. Architecture

TDoA란 두 마이크 사이의 음원 도착 시간 차이를 말합니다. 먼저 TDoA를 시간 영역에서 찾기 어렵기 때문에 주파수 영역으로 바꿉니다. 시간 영역에서는 peak 하나를 찾는 문제라서 그게 앞서 언급한 GCC 방식입니다. 실제 환경에서는 신호가 반사되서 들어오기 때문에 LoS peak를 찾기 어렵습니다. 주파수 영역에서는 주파수 bin마다 직선 패턴을 찾아 평균으로 구할 수 있습니다. 

음원(source)에서 전송되는 신호를 s(t)라고 합시다. 두 개의 마이크가 수신한 신호 x_1(t), x_2(t)와 h는 채널 상태 정보를 나타내며, n은 노이즈를 뜻합니다. 여기서 τ를 구하면 두 마이크와 음원 사이의 거리 차이를 계산할 수 있고, 이걸로 음원 위치를 계산할 수 있습니다.

ω : 각주파수 τ : TDoA ε : noise θ : cross spectrum에서 얻은 위상 차이

위 식이 성립하려면 LoS가 존재해야 FT할 때 계산이 쉬워지고 위상이 직선 관계가 되고, noise uncorrelated이어야 하지만, 실제 환경에서는 multipath효과로 상관되는 잡음이 위상 데이터를 오염시켜 성립이 안됩니다. 그래서 본 논문에서는 TDoA 추정 문제를 직선 기울기 τ를 찾는 회귀 문제로 모델링합니다.

 

Cross spectrum은 cross-correlation 결과의 푸리에 변환한 값으로, 두 신호가 주파수별로 얼마나 비슷한지, 시간 차이가 얼마나 나는지 알 수 있습니다. 켤레를 곱하면 앞에 a1,a2 크기와 위상 차이만 깔끔하게 분리할 수 있습니다. 여기서 magnitude는 노이즈 영향을 크게 받기 때문에 버리고 phase만 사용하게 됩니다.

cross spectrum의 phase θ(f) = 2πfτ

그리고 또 하나 조건이 있습니다. 주파수가 c/d보다 작을때만 위상을 wrapping없이 추적 가능합니다. f<c/d이면 wrapping이 안 생기고
f>c/d 이면 wrapping이 생겨서 phase unwrapping을 해야합니다. phase wrapping이란 실제 phase는 계속 증가하는데, 측정값은 2π 범위 안으로 접혀 갑자기 점프 현상입니다. 접혀 보이는 phase를 다시 이어 붙여서 원래의 연속적인 phase로 복원하는 것이 phase unwrapping입니다.

물리적으로는 마이크 간 거리보다 파장이 더 길어야 한다고 볼 수 있습니다. 파장이 짧아질수록 같은 거리 차이에도 phase가 훨씬 많이 변하기 때문에 파장이 거리차이보다 길어야 wrapping이 덜 생깁니다.


4. Experiment

 


5. Conclusion