창의개인연구 ① 공간 음향으로 만드는 시각 보조 장치
창의개인연구 시리즈. 2025학년도 2학기 동안 진행한 개인 연구를 활동 노트와 코드 변화 위주로 정리한다.
왜 공간 음향인가
처음부터 만들고 싶었던 것은 "보이지 않는 사용자에게 공간을 그려 주는 장치"였다. 흰 지팡이나 일반적인 거리 센서는 "장애물이 있다 / 없다"는 이진 정보만 준다. 그러나 시각이 닫힌 상태에서 정말 필요한 건 "지금 내 왼쪽 2미터 앞에 무엇이 다가오고 있다"는 방향과 깊이다. 이것을 청각으로 자연스럽게 옮길 수 있다면, 사용자는 굳이 머릿속에서 추상적인 거리 수치를 그릴 필요 없이 공간을 직접 듣게 된다.
이런 식의 청각 기반 공간 인지를 가능하게 하는 핵심 기술이 **공간 음향 (spatial audio)**이다. 게임이나 영화의 서라운드 사운드와 비슷한 개념이지만, 단순히 "왼쪽 스피커에서 소리가 난다" 수준이 아니라, "내 머리를 기준으로 어느 방향·어느 거리에서 소리가 발생했는가"를 재현하는 데 목적이 있다. 보조 장치라는 응용에서는 이 정밀도가 곧 사용자의 안전과 직결된다.
그래서 1년짜리 창의개인연구의 큰 그림을 이렇게 잡았다. 먼저 공간 음향이 어떻게 만들어지는지 이론을 익히고, 웹에서 빠르게 데모를 만들어 청감으로 확인한 다음, 시뮬레이터를 거쳐 마지막에는 실제 센서와 연결한다.
공간 음향, 어떻게 만들어지는가
사람이 소리의 방향을 인지하는 핵심 단서는 두 가지로 요약된다.
- ITD (Interaural Time Difference) — 같은 소리가 두 귀에 도달하는 시간 차이. 좌우 방향 판별의 주된 단서.
- ILD (Interaural Level Difference) — 머리에 가려져 생기는 두 귀의 음량 차이. 주로 고주파에서 효과적.
여기에 더해 귓바퀴와 머리의 모양에 따라 주파수가 미세하게 필터링되는데, 이 필터를 수학적으로 모델링한 것이 **HRTF (Head-Related Transfer Function)**다. HRTF는 "이 방향에서 들어온 소리는 두 귀에서 어떻게 들리는가"를 임펄스 응답 형태로 기술한다. Web Audio API의 PannerNode도 HRTF 모델을 옵션으로 제공한다.
이번 연구는 외부 라이브러리 의존을 최소화한 채 브라우저에서 빠르게 검증할 생각이라, Web Audio API의 HRTF 패너를 출발점으로 잡았다.
2채널 vs 멀티채널: 정말 두 개의 스피커로 충분한가
처음으로 진지하게 고민했던 질문이다. 영화관이나 홈시어터는 5.1, 7.1처럼 멀티채널 시스템을 쓰는데, 사람의 귀는 두 개뿐인데 왜 그렇게 많은 스피커가 필요한가.
자료를 찾아보니, 멀티채널이 표준이 된 큰 이유 중 하나는 녹음 편의성이었다. 5채널이면 5개의 마이크로 그대로 녹음해 그 채널을 각 스피커에 보내면 끝이다. 반면 2채널로 같은 공간감을 흉내 내려면 HRTF 같은 모델로 정교한 전처리를 거쳐야 한다. 다시 말해, 2채널은 연산을 추가해 멀티채널의 직관적인 녹음 방식을 대신하는 셈이다.
내가 만들 장치는 마이크로 실제 소리를 녹음해 재생하는 시스템이 아니다. 거리 센서가 측정한 값을 받아 기계음으로 공간을 합성해 들려주는 시스템이다. 그러니 녹음 편의성이라는 멀티채널의 강점은 의미가 없고, "내 머리 기준으로 이 방향에서 소리가 나야 한다"는 위치 정보를 어떻게 계산해서 두 귀에 보낼지가 본질적인 문제가 된다. 결론적으로 2채널 + HRTF 조합이 가장 현실적이라는 판단을 내렸다.
다만 사람은 소리의 방향을 들을 때 귓바퀴, 머리의 미세한 회전, 어깨에서의 반사까지 동원한다. 그래서 2채널 HRTF가 5.1채널과 동일한 공간감을 줄 수 있는 것은 아니다. 일단 이 차이는 인지하고, 검증 단계에서 다시 들여다보기로 했다.