오픈소스 음원 분리 엔진 Spleeter
지난 11월 초, 프랑스의 온라인 음악 스트리밍 회사인 deezer에서 딥 러닝 기술을 활용한 음원 분리 엔진 spleeter를 개발하여 무료로 배포하였습니다. Spleeter를 이용하면 음악 파일로부터 보컬, 드럼, 베이스 등의 각 파트를 손쉽게 분리해낼 수 있습니다. 기존의 음원 분리 작업 방식은 고가의 소프트웨어를 이용해야 함은 물론이고 많은 시간을 들여야 깔끔하게 분리해낼 수 있었지만, spleeter는 몇 개의 파트로 분리하고 싶은지만 명시하면 자동으로 각 파트를 분리해줍니다.
Spleeter는 다음과 같은 세 가지 모드의 음원 분리를 지원합니다.
Deezer 연구팀에서는 의료 영상 분석에 사용되었던 U-net을 이용하여 spleeter를 개발하였습니다. U-net은 위 그림과 같은 구조를 가지고 있으며, 이미지를 입력받은 후 해당 입력에 대한 분석 정보를 담은 결과 이미지를 출력으로 내보냅니다. 아래와 같이 세포 이미지를 입력받아서 세포가 있는 부분만 나타내는 출력 이미지를 내보내는 식입니다.
원래는 이미지를 대상으로 한 네트워크였지만, spleeter에서는 음악을 입력받고 원하는 파트별로 분리된 음악을 출력함으로써 음원 분리를 수행하게 됩니다. 학습을 위한 데이터셋으로는 MUSBD 데이터셋 및 Bean 데이터셋을 사용하였다고 합니다. MUSBD는 공개된 음원 분리 데이터셋이며, Bean 데이터셋은 deezer의 자체 데이터셋으로 미공개입니다.
학습된 엔진 및 소스코드는 깃허브에 공개되어 있으며, 개발에 활용된 기술은 음성 및 신호처리 학회인 ICASSP 2019에서 발표되었습니다. 이번 spleeter 공개는 인공지능 기술 연구개발을 통해 회사에 도움이 되는 것은 물론이고, 관련 학계에도 기여하고 나아가 해당 기술이 필요한 누구나 혜택을 받을 수 있도록 한 좋은 사례로 보입니다.
Spleeter는 다음과 같은 세 가지 모드의 음원 분리를 지원합니다.
- 2 stems: 보컬 / 악기 연주
- 4 stems: 보컬 / 드럼 / 베이스 / 나머지 악기
- 5 stems: 보컬 / 드럼 / 베이스 / 피아노 / 나머지 악기
Deezer 연구팀에서는 의료 영상 분석에 사용되었던 U-net을 이용하여 spleeter를 개발하였습니다. U-net은 위 그림과 같은 구조를 가지고 있으며, 이미지를 입력받은 후 해당 입력에 대한 분석 정보를 담은 결과 이미지를 출력으로 내보냅니다. 아래와 같이 세포 이미지를 입력받아서 세포가 있는 부분만 나타내는 출력 이미지를 내보내는 식입니다.
원래는 이미지를 대상으로 한 네트워크였지만, spleeter에서는 음악을 입력받고 원하는 파트별로 분리된 음악을 출력함으로써 음원 분리를 수행하게 됩니다. 학습을 위한 데이터셋으로는 MUSBD 데이터셋 및 Bean 데이터셋을 사용하였다고 합니다. MUSBD는 공개된 음원 분리 데이터셋이며, Bean 데이터셋은 deezer의 자체 데이터셋으로 미공개입니다.
학습된 엔진 및 소스코드는 깃허브에 공개되어 있으며, 개발에 활용된 기술은 음성 및 신호처리 학회인 ICASSP 2019에서 발표되었습니다. 이번 spleeter 공개는 인공지능 기술 연구개발을 통해 회사에 도움이 되는 것은 물론이고, 관련 학계에도 기여하고 나아가 해당 기술이 필요한 누구나 혜택을 받을 수 있도록 한 좋은 사례로 보입니다.
관련 자료:
- Deezer 연구팀의 Spleeter 공개 포스팅
- Spleeter 깃허브
- U-net 논문
댓글
댓글 쓰기