Shazam은 대체 어떻게 작동할까?
·2026.04.23 15:47
핵심 내용
FFT와 피크 해시로 짧고 시끄러운 클립에서 곡을 찾는 방법.
자세히 보기
휴대폰 마이크가 받은 소리는 파형 으로 저장되지만, 볼륨과 재생 환경이 달라지면 그대로 비교하기 어렵다. 짧은 구간마다 FFT 를 돌려 주파수 성분을 분해하고, 이를 쌓아 스펙트로그램 을 만든다.
- 스펙트로그램에서 가장 강한 피크만 남겨 희소한 점 집합으로 압축한다.
- 배경 잡음은 대부분 버려지고, 지배적인 주파수 랜드마크만 남는다.
- 이 과정은 44,100 Hz 샘플링 같은 표준 오디오 입력 위에서 돌아간다.
각 피크는 anchor 가 되고, 오른쪽의 target zone 안 피크들과 짝지어져 두 주파수와 시간차로 hash 를 만든다. 3분짜리 곡에서도 이런 지문 해시를 수천 개 만들 수 있고, 결과는 노래 전체보다 특정 녹음본에 더 가깝다.
검색은 곡을 하나씩 훑는 대신 hash-first 역색인으로 처리한다. 클립에서 얻은 해시를 바로 조회한 뒤, 일치한 해시들의 시간 간격 까지 맞는지 확인해 오탐을 줄인다.
- 서버형 Shazam은 대규모 지문 데이터베이스를 쓰고,
- Apple의 온디바이스 인식과 Google Pixel의 Now Playing 은 더 작은 로컬 DB와 ML 최적화를 쓴다.
- 핵심은 많은 정보를 저장하는 것이 아니라, 버려도 되는 정보를 정확히 버리는 것이다.
기반은 Avery Wang의 2003년 논문 An Industrial-Strength Audio Search Algorithm 이다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.