GN⁺: 샤잠 작동 원리 (2022)
(cameronmacleod.com)요약 제목: Shazam 음악 인식 기술의 원리
Shazam이란 무엇인가?
- Shazam은 주변에서 재생되는 음악을 식별하는 앱임.
- 앱을 열고 음악이 재생되는 동안 몇 초간 오디오를 녹음하여 데이터베이스에서 검색함.
- 과거에는 전화번호로 서비스를 제공했으며, 통화 품질의 한계로 인해 음악 인식이 어려운 작업이었음.
음악 인식이 어려운 이유
- 신호 처리에 익숙하지 않은 사람에게는 오디오 신호의 복잡성으로 인해 음악 인식이 어려운 문제임.
- 노래의 특정 부분을 전체 트랙에서 찾는 무차별 대입 방식은 매우 느리며, 백그라운드 노이즈와 주파수 효과 등으로 인해 신호의 형태가 크게 변할 수 있음.
시스템 개요
- Shazam은 음악을 등록하고 인식하는 두 가지 흐름으로 나뉘며, 두 흐름 모두 스펙트로그램 계산, 스펙트로그램 내 피크 찾기, 피크 해싱 등의 공통 단계를 가짐.
- 등록 흐름은 해시를 데이터베이스에 저장하고, 인식 흐름은 데이터베이스 내 해시와 비교하여 재생 중인 노래를 식별함.
스펙트로그램 계산
- 오디오의 스펙트로그램을 얻기 위해 Fourier 변환을 이해해야 함.
- Fourier 변환은 오디오에서 존재하는 주파수를 알려주며, 이를 통해 시간에 따른 주파수 변화를 나타내는 스펙트로그램을 생성함.
스펙트로그램
- 스펙트로그램은 시간에 따라 변하는 주파수를 더 잘 표현하기 위해 노래를 작은 부분으로 나누고 Fourier 변환을 적용함.
- 스펙트로그램은 시간(X축), 주파수(Y축), 강도(Z축/색상)의 3D 그래프임.
지문 생성
- 스펙트로그램에서 가장 큰 주파수를 나타내는 피크를 찾아 오디오의 고유 지문을 추출함.
- 이러한 피크는 노이즈나 기타 왜곡에도 견딜 수 있어 지문 생성에 적합함.
피크 찾기
- 스펙트로그램의 피크는 신호에서 가장 강한 주파수를 나타내며, 오디오 지문에서 사용하기 위해 고르게 분포되어야 함.
- 최대 필터 기법을 사용하여 스펙트로그램의 피크를 강조하고 위치를 찾음.
해싱
- 스펙트로그램 피크의 쌍을 만들어 해시를 생성하고, 이를 통해 고유성을 높임.
- 해시는 두 피크의 주파수와 시간 차이를 포함하여 데이터베이스에 저장됨.
매칭
- 데이터베이스 내 지문 컬렉션에서 주어진 오디오 샘플과 일치하는 지문을 찾는 과정을 설명함.
- 해시를 검색하고, 노래별로 그룹화한 다음, 해시가 일치하는지 확인하여 가장 많이 일치하는 트랙을 선택함.
결론
- Shazam은 노래를 등록하고 인식하기 위해 스펙트로그램 계산, 피크 추출, 해시 쌍 생성, 지문 저장 등의 과정을 거침.
GN⁺의 의견
- 이 기사에서 가장 중요한 것은 Shazam이 음악을 인식하는 복잡한 과정을 이해하기 쉽게 설명하고 있다는 점임.
- 기술적인 세부 사항을 단계별로 분해하여 초급 소프트웨어 엔지니어도 이해할 수 있도록 만들어진 점이 흥미롭고 매력적임.
Hacker News 의견
-
Shazam의 효율적인 해시 기반 접근 방식
2008년 Shazam이 출시될 때, 노래를 계산적으로 효율적으로 해시로 변환하는 방법을 개발하는 것이 현명한 접근이었음. 오늘날 같은 서비스를 출시한다면 기본적으로 모델을 훈련시키는 R&D 방식을 취할 것이지만, 이는 비효율적이고 비용이 많이 들 수 있음. 노래의 수가 유한하기 때문에 해시 기반 접근이 훨씬 더 성능이 좋을 수 있음.
-
Shazam의 지속적인 마법 같은 매력
Shazam은 20년이 넘도록 마법 같은 느낌을 주는 드문 제품 중 하나로, 기술자들이 지향해야 할 대상임.
-
Shazam의 작동 원리를 설명하는 Wall Street Journal 비디오
Wall Street Journal이 제작한 Shazam의 독특한 오디오 지문을 만드는 방법을 설명하는 아름다운 비디오가 있음.
-
Chromaprint와 AcoustID에 대한 설명
Chromaprint는 스펙트럼의 최대값 대신 음높이 변화 패턴을 기반으로 작동하며, AcoustID라는 대규모 오픈 데이터베이스에 사용되어 MusicBrainz 녹음과 오디오 지문을 연결함. Shazam만큼 상업적 지원을 받지 않았음에도 불구하고 데이터베이스에 많은 음악이 포함되어 있어 놀라움.
-
Shazam과 디지털 신호 처리에 대한 흥미로운 글
Shazam의 작동 방식과 디지털 신호 처리에 대한 훌륭한 입문서로, 오디오 지문 인식이 어떻게 작동하는지 이해하고자 하는 사람들에게 필독임.
-
다른 미디어에도 적용 가능한 유사 알고리즘
오디오 지문 인식뿐만 아니라 다른 미디어에도 적용 가능한 유사한 근사 알고리즘이 있으며, 실제 세계의 해싱을 이해하고자 하는 사람들은 이 글을 천천히 공부해야 함.
-
Every Noise At Once 웹사이트의 중요성
Every Noise At Once는 음악 장르 분류와 새로운 노래 서명이 도입하는 분기 서브 장르에 알고리즘 매칭을 적용하는 놀라운 사이트로, 호스팅 문제로 인해 서비스가 중단될 위험이 있으며, 이는 월드 와이드 웹에 큰 손실이 될 것임.
-
음악 인식 과정의 직관성
이 시스템은 우리의 인식 과정과 매우 유사하게 멜로디 조각을 식별하고 이를 순서대로 매칭하는 방식으로, 우리가 몇 개의 음표를 듣고 노래를 인식하는 방식과 일치함.
-
음악 인식에 사용되는 푸리에 변환
음악 인식에 자주 사용되는 푸리에 변환에 대한 언급이 있으며, 이는 Echoprint라는 오픈 소스 버전에서도 사용되었지만, Spotify에 인수된 후 서비스가 중단됨.