SoundDeck Studio: 독립 DJ를 위한 로컬 AI 음악 큐레이션
요약
SoundDeck Studio는 DJ와 음악 애호가를 위해 자연어 지침 기반의 로컬 AI 음악 큐레이션 도구입니다. 사용자가 원하는 분위기나 흐름을 설명하면, 이 도구는 로컬에서 실행되는 언어 모델(Qwen3)과 하이브리드 추천 점수를 결합하여 플레이리스트를 생성합니다. 이는 DJ가 수동으로 트랙을 검색하고 정리하는 과정을 단순화하며, 아티스트 다양성 분석 등 다양한 기능을 제공합니다.
핵심 포인트
- 자연어 지침으로 분위기 기반의 플레이리스트 생성 가능
- Ollama와 Qwen3 같은 로컬 AI 모델 사용 (로컬 추론)
- 음악 메타데이터와 하이브리드 추천 점수 결합 큐레이션
- 아티스트 다양성 및 플레이리스트 분석 기능 제공
SoundDeck Studio: 독립 DJ를 위한 로컬 AI 음악 큐레이션 🎧
이 글은 Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle에 제출하는 내용입니다.
내가 만든 것 (What I Built)
SoundDeck Studio는 DJ와 음악 애호가들이 자연어 지침을 사용하여 플레이리스트를 만들고, 정리하고, 분석할 수 있도록 돕는 로컬 AI 기반의 음악 큐레이션 도구입니다.
좋은 플레이리스트를 만드는 것은 단순히 비슷한 장르의 노래를 찾는 것 이상의 것을 필요로 합니다. DJ들은 분위기(mood), 음악적 유사성, 아티스트 다양성, 그리고 세트 전체의 흐름(overall flow)을 균형 있게 맞춰야 합니다. 이러한 제약 조건들을 중심으로 트랙을 수동으로 검색하고 정리하는 것은 시간이 많이 걸릴 수 있습니다.
SoundDeck Studio는 이 과정을 단순화하는 것을 목표로 합니다.
사용자는 다음과 같이 자연어로 원하는 플레이리스트를 설명할 수 있습니다:
"멜랑콜리한 심야 분위기의 20곡짜리 인디 플레이리스트를 만들어 주세요. 익숙하고 잘 알려지지 않은 아티스트들을 적절히 섞고, 특정 아티스트의 반복은 최소화해 주세요."
SoundDeck은 로컬에서 실행되는 언어 모델(language model)을 사용하여 이 요청을 해석하고, 이를 음악 메타데이터와 하이브리드 추천 점수(hybrid recommendation scoring)와 결합하여 플레이리스트를 큐레이션합니다.
주요 기능 (Key features)
- 자연어 플레이리스트 생성: 일상 언어를 사용하여 원하는 분위기, 장르 또는 청취 경험을 설명할 수 있습니다.
- 로컬 AI 추론(Local AI inference): Ollama를 통해 오픈 가중치 모델인 Qwen3 1.7B를 사용합니다.
- 하이브리드 음악 추천: 음악 메타데이터, 태그, 유사성 점수 등을 결합하여 트랙 순위를 매깁니다.
- 아티스트 다양성: 다양한 아티스트의 활용을 장려하고 특정 아티스트의 과도한 반복을 줄입니다.
- 플레이리스트 분석(Playlist analytics): 아티스트 다양성, 장르 및 분위기 분포, 메타데이터 커버리지, 중복 여부, 추천 점수 등을 검토합니다.
- CSV 내보내기: 큐레이션된 플레이리스트를 다른 음악 워크플로우에서 사용할 수 있도록 내보냅니다.
- 대화형 대시보드(Interactive dashboard): React 기반 인터페이스를 통해 플레이리스트와 분석 결과를 탐색할 수 있습니다.
이 프로젝트는 특정 분위기나 청취 목표에 맞춰 음악을 더 유연하게 정리하고 싶은 독립 DJ, 플레이리스트 큐레이터, 그리고 음악 애호가들을 위해 설계되었습니다.
잠재적 사용자로는 독립 DJ, 이벤트 주최자, 그리고 정기적으로 플레이리스트를 준비해야 하는 음악 큐레이터 등이 포함될 수 있습니다. SoundDeck은 현재 상업적으로 검증된 제품이라기보다는 프로젝트 단계이며, 아직 유료 고객을 확보하지는 못했습니다.
데모
최종 프로젝트 시연 영상을 확인하세요:
[
]이 영상은 SoundDeck Studio와 그 음악 큐레이션 워크플로우를 보여줍니다.
코드
GitHub 저장소:
[https://github.com/Shravan-a11y/SoundDeck-Studio]
저장소에는 애플리케이션 코드, 백엔드 서비스, 프론트엔드 인터페이스, 추천 로직, 분석 기능, 내보내기 기능 및 프로젝트 문서가 포함되어 있습니다.
이 프로젝트는 로컬 AI 추론(local AI inference)과 모듈식 서비스를 중심으로 구축되어 있어 시스템을 검사하고 실행하며 확장하기 쉽습니다.
어떻게 만들었나
SoundDeck Studio의 핵심 아이디어는 독점적인 호스팅 언어 모델 API를 시스템의 핵심으로 삼지 않으면서 실용적인 AI 애플리케이션을 만드는 것이었습니다.
- 로컬 추론을 사용하는 오픈 웨이트(open-weight) AI
저는 Ollama를 통해 로컬에서 구동되는 오픈 웨이트 언어 모델인 Qwen3 1.7B를 사용했습니다.
이 모델은 자연어 플레이리스트 요청을 해석하는 데 도움을 줍니다. 추론을 로컬에서 실행하면 애플리케이션이 모든 플레이리스트 프롬프트를 호스팅된 LLM 제공업체로 전송할 필요 없이 AI 모델을 사용할 수 있게 됩니다.
이 접근 방식은 또한 개발자가 단일 독점 AI API에 종속되지 않고도 모델 구성 및 추론을 실험할 수 있도록 합니다.
- 백엔드 및 추천 엔진
백엔드는 Python과 FastAPI로 구축되었습니다.
Last.fm과 MusicBrainz에서 음악 메타데이터를 통합하고 SQLite를 사용하여 메타데이터를 로컬에 캐시합니다.
추천 시스템은 음악 정보, 태그 분류, 하이브리드 유사도 점수(hybrid similarity scoring)를 결합하여 트랙을 순위화합니다. 아티스트 다양성 순위 지정(Artist-diversity ranking) 기능은 소수의 아티스트에 의해 지배되는 플레이리스트를 방지하는 데 도움을 줍니다.
AI 모델이 사용자의 요청을 해석하고, 추천 및 랭킹 구성 요소가 음악 선택 워크플로우를 처리합니다.
이러한 책임 분리는 애플리케이션 테스트와 개선을 더 쉽게 만듭니다.
- 플레이리스트 분석 및 내보내기(export)
사용자가 생성한 플레이리스트를 이해하는 데 도움을 주기 위해 분석 기능을 구현했습니다. 여기에는 다음이 포함됩니다:
- 트랙 및 아티스트 개수.
- 아티스트 반복 및 다양성.
- 장르 및 분위기 분포.
- 메타데이터 커버리지.
- 중복 감지.
- 추천 점수 요약.
- 충족되지 않은 플레이리스트 제약 조건 보고.
또한 스프레드시트 수식 주입 공격에 대비하여 CSV 내보내기를 구현했습니다.
- 프론트엔드(Frontend)
사용자 인터페이스는 React, Vite, 그리고 Tailwind CSS로 구축되었습니다. 이 인터페이스는 플레이리스트 요청 입력, 생성된 트랙 보기, 분석 탐색, AI 상태 확인 및 결과 내보내기 기능을 제공하는 음악 스튜디오 스타일의 대시보드를 제공합니다.
- 테스트(Testing)
분석, 추천 품질, 플레이리스트 큐레이션, 그리고 CSV 내보내기를 포괄하는 자동화된 테스트를 추가했습니다. 프론트엔드 프로덕션 빌드 또한 개발 과정에서 성공적으로 완료되었습니다.
이 프로젝트는 여전히 진화하고 있습니다. 음악 메타데이터 가용성은 다양하며, 추천 품질은 사용 가능한 데이터와 랭킹 신호에 따라 달라집니다. 따라서 생성된 플레이리스트가 항상 모든 요청된 제약 조건을 충족하거나 사용자의 취향을 완벽하게 포착하지 못할 수 있으므로, SoundDeck은 모든 요청이 충족되었다고 가정하기보다 충족되지 않은 제약 조건을 보고합니다.
오픈 혁신(Open Innovation)은 왜 중요할까요?
SoundDeck Studio를 제가 폐쇄적인 AI 서비스에 전적으로 의존하지 않고도 검사하고, 수정하고, 개선할 수 있는 실험으로 구축하는 것을 가능하게 했습니다. 로컬 추론을 통해 오픈 가중치 모델(open-weight model)을 사용하면 언어 모델이 어떻게 실행되고 애플리케이션에 통합되는지에 대한 통제권을 얻게 됩니다.
또한 몇 가지 실질적인 이점도 제공합니다:
호스팅된 LLM API에 대한 의존도 감소: 핵심 언어 모델 추론(language-model inference)을 유료 호스팅 LLM 엔드포인트가 필요하지 않은 로컬 환경에서 실행할 수 있습니다.
개인 정보 보호를 고려한 처리: 플레이리스트 프롬프트는 로컬에서 처리될 수 있지만, 외부 음악 메타데이터 요청은 여전히 인터넷 접속이 필요합니다.
실험 가능성: 저는 다양한 접근 방식을 탐색하기 위해 프롬프트, 추천 논리, 랭킹 가중치(ranking weights), 모델 구성을 조정할 수 있습니다.
투명성: 추천 및 분석 구성 요소는 단일 독점 서비스 뒤에 숨겨지는 대신 검사하고, 테스트하고, 개선할 수 있습니다.
개발자를 위한 접근성: 오픈 소스 프레임워크와 로컬 추론의 조합은 개발자가 자신만의 AI 기반 음악 도구를 구축할 수 있는 실질적인 출발점을 제공합니다.
오픈 혁신(Open innovation)은 특히 SoundDeck과 같은 프로젝트에 유용합니다. 왜냐하면 음악 큐레이션은 주관적이기 때문입니다. 모든 청취자를 만족시킬 단일한 랭킹 전략은 존재하지 않습니다. 시스템 구성 요소를 실험할 수 있는 능력은 추천을 개선하는 데 필수적입니다.
수상 부문(Prize Categories)
주요 참가: Hacktoberfest 오픈 소스 AI 챌린지 — 2주차: 사이드 허슬(Side Hustle).
저는 SoundDeck Studio를 로컬 추론과 실용적인 음악 큐레이션 워크플로우를 중심으로 구축된 오픈 소스 AI 애플리케이션으로 이 챌린지에 참가합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기