기본 콘텐츠로 건너뛰기

spleeter, 딥러닝을 이용해서 MR과 보컬을 분리하자

icon
바람 · · 수정: · 댓글 없음

좋아하는 애니메이션 음악에서 MR이나 보컬만 추출하고 싶으실 때가 있으신가요? 지난 2월, spleeter라는, 딥러닝 기술을 이용해 음성에서 MR과 보컬을 분리해 내는 기술이 발표되었습니다. Github라는 컴퓨터 프로그래머들의 자료 저장소에 공개가 되어 있어, 누구나 사용할 수 있습니다. 

음악에서 MR 부분(반주, Vocal OFF, Instrumental)만 듣고 싶다거나, 보컬(사람 목소리 부분)만 뽑아서 듣고 싶으실 때 spleeter를 쓰시면 됩니다. 테스트 삼아서 해 봤는데 체감상 다른 프로그램에 비해 분리가 잘 되는 것 같습니다. (딥러닝의 힘인가 싶네요) 소리가 지지직되는 것도 적은 것 같습니다.



사이트 주소: https://github.com/deezer/spleeter

 

프로그램 자체는 무료이며 MIT 라이선스로 공개가 되어 있습니다. 따라서 누구나 자유롭게 사용하실 수 있습니다. 설치 방법과 사용 방법 위주로 간단히 소개하고자 합니다.


무설치

spleeter는 직접 설치해서 사용하시는 것을 추천합니다. 그러나, 아무래도 컴퓨터 프로그래머가 아닌 이상 설치하기가 좀 여러운 점이 많은데요, 설치 없이 웹 브라우저만으로 사용하실 수 있는 방법이 있습니다.


주소: https://splitter.ai/

영어로 적힌 대로 파일을 드래그해서 DROP SONG HERE에 놓으시면 됩니다. 처리하는데 시간이 오래 걸리는데요, My Uploads 버튼을 누르시면 처리가 다 끝난 것을 확인하실 수 있습니다. 처리가 다 끝나면 다운로드하면 됩니다.

사용하고 있는 사람이 많으면 처리 시간이 수십분 가량까지도 지연될 수 있습니다. 프로그램은 무료지만 서버는 무료가 아닌 만큼, 한정된 서버를 많은 사람들이 나눠서 쓰기 때문입니다. 아래의 '설치 방법'을 이해하실 수 있는 분들은, 직접 설치해서 사용하시는 것을 추천합니다.

spleeter의 공식 사이트가 아닙니다. spleeter 개발자하고는 전혀 무관한 사이트이므로 유의 바랍니다. 당연하지만 저작권이 있는 파일도 업로드해서는 안 되겠지요.


설치 방법


설치 방법이 많이 복잡합니다. 프로그래머들이 사용하는 여러 가지 프로그램을 같이 설치해야 합니다. 명령 프롬프트 사용법에 익숙하셔야 쉽게 진행하실 수 있습니다.

  • Anaconda 설치: spleeter를 돌리기 위한 프로그램을 설치
  • spleeter 설치

이렇게 두 가지 과정을 거쳐야 합니다.


Anaconda 설치


제 블로그는 컴퓨터 블로그가 아니라, 일본 철도,여행,애니메이션 블로그인 만큼, 이 내용은 다른 블로그 내용을 링크 걸겠습니다.



위 블로그 내용에서, Anaconda Prompt를 검색해서 누르는과정 (5번)까지만 합니다. 검정색 화면에 아래와 같은 글이 있어야 합니다.


(base) C:\Users\(윈도우 유저명)>


 

spleeter 설치


위에서 띄운 검정색 화면(명령 프롬프트, cmd창)에 아래 문구를 그대로 따라 칩니다.


conda install -c conda-forge spleeter

 

이렇게 하면 spleeter 설치가 완료됩니다.



사용법


아까 띄운 명령 프롬프트에 아래와 같이 칩니다.


spleeter separate -i <입력 파일명> -p spleeter:2stems -o <출력 파일 디렉토리>


기존 기술과 다른 것은, 단순히 보컬과 MR을 분리하는 것이 아니라, 드럼이나 베이스, 피아노만 추가로 분리해 낼 수 있다는 것입니다.

  • Vocals (singing voice) / accompaniment separation (2 stems)
  • Vocals / drums / bass / other separation (4 stems)
  • Vocals / drums / bass / piano / other separation (5 stems)


위의 2stems 대신 4stems, 5stems를 넣으면 여러 채널로 음원을 분리해낼 수 있습니다. 2stems(보컬/MR 분리)는 잘 되는 것 같은데 나머지는 조금 어색한 면이 있네요 


원리

딥러닝이란, 수많은 데이터를 이용해 매우 많은 연산을 통해, 컴퓨터가 스스로 학습하는 인공지능힙니다. 모델이라는 틀을 설계한 뒤에, 수많은 데이터를 이용해 모델을 학습시키는 방법으로, 그 틀이 어떻게 계산을 해야 원하는 결과가 나올지 스스로 방법을 찾아 나가는 방식입니다

딥러닝을 잘 아시는 분들을 위해 정리하면, 모델은 12-layer U-Net을 사용했고, loss는 masked input mixed spectrums하고 source target spectrums 간의 L1 loss를 사용했다고 합니다. 학습은 Deezer internal datasets로 했다고 하네요. 이렇게 적었지만 이 것이 어떤 의미인지는 모르겠습니다.

label

댓글 0

댓글 쓰기

취소

댓글 작성이 안 되실 경우 아래 링크를 이용해 주십시오.

댓글 달기