GN⁺: NotShazam - Go 언어로 재구성한 Shazam 알고리듬
(github.com/cgzirim)- Shazam의 노래 인식 알고리듬을 구현한 프로젝트
- Spotify와 YouTube API를 통합하여 노래를 찾고 다운로드할 수 있음
- Go + FFMpeg + MongoDB
- MIT 라이선스
GN⁺의 정리
- NotShazam은 Shazam의 노래 인식 알고리듬을 구현한 오픈 소스 프로젝트임
- Spotify와 YouTube API를 사용하여 노래를 찾고 다운로드할 수 있음
- 이 프로젝트는 Golang, FFmpeg, MongoDB, NPM 등의 기술을 필요로 함
- 유사한 기능을 가진 다른 프로젝트로는 AudD와 ACRCloud가 있음
Hacker News 의견
- Apple이 Shazam의 특허를 2025년 3월까지 보유하고 있음
- Shazam의 공동 창립자인 Avery Wang의 DAFx17 컨퍼런스 강연이 유익했음
- 알고리즘 이론과 실용적인 문제(배경 소음 등)에 대해 다룸
- 최근 Shazam의 정확도가 떨어졌음을 발견함
- Soundhound가 더 나은 결과를 제공함
- Shazam이 아시아 음악 전통에서 많은 결과를 제공하지만, 잘못된 노래임
- 알고리즘 개선이 필요할 수 있음
- 해시 테이블 충돌이 증가했음
- 프로젝트가 사용 및 수정하기 좋지만, 아직 게시하지 않았을 것임
- 설치 지침이 최적이 아님
- MongoDB가 필요하지만 연결 방법이 없음
- MongoDB를 대체할 수 없다면 Dockerfile과 Docker Compose를 제공해야 함
- 클라이언트 npm 설치에 8개의 치명적인 취약점이 있음
- 특허나 저작권 문제를 피하기 위해 이름을 변경해야 함
- wav 파일에서 노래를 추가하는 방법을 추가해야 함
- 프로젝트가 조금 더 다듬어져야 함
- 오디오 매칭 실험을 위해 PR을 만들 계획임
- 모든 노래를 가지고 있지 않으면 쓸모없음
- 알고리즘보다 데이터가 중요함
- Spotify 노래를 삽입하면 Spotify 노래를 출력하는 것이 더 합리적임
- 이 프로젝트가 매우 흥미로움
- 버킷 리스트의 일환으로 이와 같은 것을 구축해보고 싶었음
- Shazam의 핵심은 모르는 노래를 찾는 것임
- 모르는 노래를 어떻게 Spotify 링크로 제공할 수 있는지 의문임
- 누군가 수십억 개의 노래를 "대형 노래 모델"에 합쳐 모든 신호 처리 지식을 무의미하게 만들 때까지 얼마나 걸릴지 궁금함
- UI 알림에서 모든 노래를 표시하는 데몬으로 실행할 수 있음