본문 바로가기

AI 탐색하기

음향구조기반 음악추천 EXE

 

 

https://drive.google.com/file/d/1_tiVB_tjF4pR5zPkkLBB3H4Sf0JlltDY/view?usp=sharing

왜 만들었나?

Spotify, Tidal, YouTube Music 같은 스트리밍 서비스의 추천은 "이 곡 들은 사람이 저 곡도 들었다" 방식이다. 나는 "저음이 풍부한 곡", "리듬 구조가 비슷한 곡"처럼 음향 자체가 유사한 곡을 찾고 싶었다. 스포티파이에 기능이 있다고 하는데 실제 사용해보지 않아서 모르겠지만, 당장 사용해보려고 만들어봤음.

 

어떻게 작동하나?

  1. 곡을 입력하면 YouTube에서 오디오를 가져온다
  2. librosa로 음향 특징을 추출한다:
    • MFCC (음색/질감)
    • 저역 에너지 비율 (저음 비중)
    • 템포, 비트 강도 (리듬)
    • 크로마, 톤네츠 (화성 구조)
    • 스펙트럼 분포 (음향 밸런스)
  3. Last.fm에서 후보곡을 가져와 같은 방식으로 분석
  4. 코사인 유사도로 가장 비슷한 5곡 추천
  5. 마음에 드는 곡 선택 → 그 곡 기반으로 다시 추천
  6. 반복할수록 취향이 정교해진다

 

기술 스택

  • Python
  • customtkinter (GUI)
  • librosa (오디오 분석)
  • yt-dlp (오디오 추출)
  • Last.fm API (후보곡 검색)
  • scikit-learn (유사도 계산)

한계

  • 분석에 시간이 걸린다 (곡당 다운로드 + 분석)
  • Last.fm에 없는 곡은 후보에 안 올라온다
  • 가사, 감정 같은 요소는 반영 안 된다

 
※ 단지, 소리요소로만 비슷한 곡 찾고 싶으신 분들은 DNDN~~