- 음악 인식은 마이크가 받은 공기 진동을 파형으로 바꾼 뒤, 이를 스펙트로그램과 소수의 강한 주파수 피크로 압축해 곡의 지문을 만드는 방식으로 이뤄짐
- 원시 파형은 볼륨과 재생 환경에 따라 쉽게 달라지므로 식별 기준으로 쓰기 어렵고, 짧은 구간마다 FFT를 적용해 시간별 주파수 구조를 드러내야 안정적인 비교가 가능해짐
- 남겨진 피크들은 단일 점이 아니라 anchor와 target zone의 쌍으로 묶여 해시가 되며, 이런 조합은 특정 녹음본을 구분할 만큼 구체적인 지문 해시로 작동함
- 검색은 곡을 하나씩 대조하지 않고 해시를 키로 바로 찾는 hash-first 구조를 쓰며, 마지막에는 일치한 해시들의 시간 간격까지 맞는지 확인해 신뢰도를 높임
- 서버 기반 대규모 데이터베이스와 온디바이스 방식은 규모와 제약이 다르지만, 핵심은 대부분의 정보를 버리고 랜드마크 피크만 남겨 짧고 시끄러운 클립에서도 빠르게 곡을 찾아내는 데 있음
소리를 역으로 해석하는 과정
- 휴대폰 마이크는 매우 얇은 다이어프램으로 공기 진동을 측정하고, 이를 시간별 공기 압력을 나타내는 숫자열인 파형으로 바꿔 저장함
- 귀의 고막도 같은 압력파를 받지만, 휴대폰은 이를 소리 자체가 아니라 숫자 시퀀스로 다룸
- 들어온 소리는 초당 수만 번 샘플링되며, 보통 44,100 Hz를 사용함
- 원시 파형만으로는 곡 식별이 어렵고, 같은 곡도 더 크게 재생하면 전혀 다른 파형이 되며, 다른 곡끼리도 비슷한 파형을 만들 수 있음
- 재생 환경이 달라져도 동일한 곡의 파형이 달라질 수 있어 파형 자체는 식별 기준으로 부적합함
- 이 문제를 줄이려면 파형을 작은 조각으로 나눈 뒤 FFT를 적용해 각 시점에 어떤 주파수들이 들어 있는지 분해해야 함
- 질문으로 바꾸면, "이 짧은 소리 조각을 다시 만들려면 어떤 순수 톤들을 더해야 하는가"에 해당함
- 각 조각의 결과를 옆으로 쌓으면 시간축, 주파수축, 밝기축으로 이뤄진 스펙트로그램이 됨
- FFT는 아무리 복잡한 파형도 서로 다른 주파수, 진폭, 위상을 가진 사인파 합으로 표현할 수 있다는 점을 이용함
- 예시로 1,024개 샘플을 넣으면 각 주파수에 얼마나 많은 에너지가 있는지 나타내는 스펙트럼을 돌려줌
- 각 주파수 bin마다 모든 샘플을 그 주파수의 사인파와 곱해 더하고, 해당 주파수가 실제 신호에 있으면 합이 커지고 없으면 상쇄됨
- FFT의 핵심은 속도이며, 순진한 분해는 조각마다 수백만 번 연산이 필요하지만 FFT는 수학적 대칭성을 이용해 대략 n log n 수준으로 줄임
- 이 정도 속도라서 휴대폰에서도 초당 수백 번 실행 가능함
- 장치는 이 창을 오디오 위로 계속 이동시키며 각 조각에 FFT를 적용하고, 그 결과를 쌓아 스펙트로그램을 만듦
- 단순한 예시는 순수 주파수 하나로 이뤄진 합성음이라 이해에는 도움이 되지만 실제 음악은 훨씬 복잡함
- 실제 음악이나 허밍을 마이크로 넣으면 스펙트로그램이 훨씬 어수선하게 보이지만, FFT는 그 안에서도 실시간으로 구조를 드러냄
- 브라우저 예시에서는 모든 오디오가 브라우저 내부에서 처리되며, 녹음하거나 외부로 전송하지 않음
적을수록 더 강해지는 지문
- 시스템은 스펙트로그램 전체를 저장하지 않고, 가장 큰 피크만 남겨 희소한 점 집합으로 압축함
- 약한 신호를 버리고 가장 강한 지점만 남기면 음향적으로 중요한 랜드마크만 남게 됨
- 이렇게 대부분을 버리는 이유는 전체 스펙트로그램을 저장하고 검색하는 일이 컴퓨터에도 지나치게 느리기 때문임
- 임계값을 높일수록 희미한 신호는 사라지고 큰 피크만 살아남는 구조임
- 이 방식은 잡음 내성을 높여줌
- 배경 잡음은 스펙트로그램 전반에 낮은 에너지를 더하지만, 보통 특정 영역의 최강 피크까지 만들지는 못함
- 남는 랜드마크는 잡음을 뚫고 드러난 지배적 주파수들임
- 대신 이 지문 방식은 노래를 직접 불러 넣을 때 성능이 떨어지기 쉬움
- 매우 잘 부르더라도 원곡과 다른 해시가 만들어질 가능성이 큼
- 그래서 더 새로운 머신러닝 기반 시스템은 정확한 주파수 대신 멜로디를 기준으로 허밍과 노래를 처리함
점들을 연결해 해시 만들기
- 점 하나만으로는 구분력이 부족하지만, 두 점의 조합은 훨씬 덜 우연적이라 지문 해시로 쓰기 적합함
- 예시로 어떤 시점의 1,200 Hz 하나는 수천 곡에 등장할 수 있지만, 1,200 Hz 뒤에 0.3초 후 2,400 Hz가 오는 조합은 훨씬 더 구체적임
- 알고리듬은 각 피크를 차례로 anchor로 삼고, 그 오른쪽에 시간과 주파수 범위를 가진 target zone을 잡아 그 안의 모든 피크와 짝지음
- 각 쌍은 두 주파수와 시간 차이, 총 세 숫자로부터 짧은 hash를 만듦
- 해시는 같은 입력에서 항상 같은 결과가 나오고, 입력이 조금만 바뀌어도 완전히 다른 값이 나오는 짧은 코드로 동작함
- Shazam류 시스템은 작은 변동을 다루는 체계를 갖고 있지만, 기본적으로 해시는 정확한 주파수와 타이밍에서 만들어짐
- 그 결과 이 해시는 곡 자체보다는 특정 녹음본의 지문처럼 작동함
- 그래서 cover나 remix는 맞추기 더 어려워짐
- 3분짜리 곡 하나에서도 이런 지문 해시를 수천 개 만들 수 있고, 데이터베이스는 이를 모두 저장함
- 휴대폰은 5초 클립에서 얻은 소수의 해시를 들고, 데이터베이스는 방대한 수의 곡에서 뽑은 수백만 해시를 들고 매칭 단계로 넘어감
정확한 매치 찾기
- 각 해시는 일종의 주소처럼 쓰이며, 시스템은 클립에서 얻은 해시마다 거대한 테이블을 바로 조회해 그 해시를 가진 곡을 찾음
- 곡 단위로 하나씩 훑는 대신 해시 자체를 키로 삼아 접근함
- 직관적인 song-first 방식은 모든 곡을 하나씩 검사하며 해시 겹침을 확인해야 해서 곡 수가 늘수록 느려짐
- 본문은 이를 O(N) 시간으로 표현함
- 예시 데이터베이스와 5초 클립 해시 목록으로 이런 비효율을 시각화함
- 컴퓨터는 이를 뒤집어 hash-first 방식으로 처리할 수 있음
- 각 해시에 대해 "어떤 곡들이 이 해시를 포함하는가"를 바로 물음
- 책 뒤의 색인처럼, 모든 페이지를 다시 읽는 대신 특정 단어 항목으로 곧장 이동하는 구조에 비유함
- 이 접근은 조회를 거의 O(1) 에 가깝게 만듦
- 곡이 100개든 1억 개든 대략 비슷한 시간 안에 처리됨
- 가능한 해시 수가 매우 많아, 수백만 곡이 있어도 각 주소에는 보통 소수의 항목만 들어감
- 단순히 같은 해시를 공유한다고 끝나지 않고, 마지막 검증은 시간 간격에서 이뤄짐
- 예시로 클립 안에서 17403C와 19A998가 1.2초 간격이면, 매칭 후보 곡도 같은 두 해시가 1.2초 간격으로 나와야 함
- 일치하는 해시들의 시간 차가 서로 맞아떨어지고 개수도 충분해야 신뢰도 높은 매치가 됨
- 시스템 전체는 컴퓨터가 특히 잘하는 작업에 맞춰 설계됨
- 숫자 비교와 주소 조회 중심으로 구성됨
- 그래서 수백만 곡을 상대로도 전체 조회가 1초보다 훨씬 짧은 시간 안에 끝남
더 현대적인 접근
- Shazam 같은 다수의 곡 인식 서비스는 오디오 클립을 서버로 보내고, 서버에 있는 대규모 지문 데이터베이스에서 매칭을 수행함
- 데이터베이스가 매우 크고 계속 바뀌며, 검색에 상당한 연산 자원이 필요하기 때문에 이런 구조를 씀
- 반대로 Apple의 온디바이스 인식과 Google Pixel의 Now Playing은 휴대폰 안에서 전부 로컬로 실행됨
- 더 작고 선별된 데이터베이스와 최적화된 모델을 사용함
- 완전한 포괄성 대신 속도를 택하고, 잡음과 오디오 변형에 더 강한 정교한 머신러닝 접근도 포함함
- 온디바이스 방식은 더 빠르고 인터넷 연결 없이도 동작하지만, 매칭 가능한 곡 데이터베이스가 훨씬 작다는 제약이 있음
- 새 노래 반영도 일반적으로 더 느림
- 위치 변화가 감지되면 새로운 데이터를 다시 가져와야 할 수 있음
- 지역별 인기곡 차이도 온디바이스 데이터 구성에 영향을 줌
- 일본의 히트곡과 미국의 히트곡은 다를 수 있음
- 매칭이 서버에서 일어나든 기기 안에서 일어나든 핵심 기법은 같음
- 대부분의 정보를 버리고 소수의 랜드마크 피크만 남기면, 시끄러운 카페에서 얻은 5초 클립도 수백만 곡 중 한 곡을 짚을 만큼 정밀한 좌표 집합으로 바뀜
- 인식의 핵심은 많은 것을 듣는 일이 아니라, 무시할 것을 정확히 버리는 일에 가까워짐
기반이 된 논문
- 본문 상당수는 Avery Wang의 2003년 논문 An Industrial-Strength Audio Search Algorithm에 기반을 둠
- 신호 처리와 시스템 설계를 더 깊게 보고 싶다면 그 논문이 직접적인 출발점이 됨
- 전체 흐름은 파형 변환, 피크 선택, 피크 쌍 해시, 역색인 조회, 시간 정렬 검증으로 이어짐
- 이 단계들이 합쳐져 짧고 시끄러운 클립에서도 빠른 곡 식별을 가능하게 만듦

3 hours ago
1








English (US) ·