본문 바로가기
무언가 만들어보기/펭귄맨

펭귄맨 : 프로젝트 개요

by 도리언 옐로우 2024. 4. 1.

1. 프로젝트 배경

내가 피아노를 친지도 거진 2,30년이 다 되어가고 있다. 사실 기간에 비하면 굉장히 어설프지만, 나의 몇 안되는 취미로서 배워놓길 잘했다고 항상 생각하고 있다.
 
펭귄맨은 100% 나의 필요에 의해 기획된 프로젝트이다. 나는 챙겨보는 피아노 유튜버가 몇명있는데, 가끔씩 편곡으로 굉장한 피아노 연주를 보여주곤 한다. 그리고 나는 이게 너무나 치고 싶지만, 1) 피아노 악보가 없는 경우가 대부분이고, 2) 악보가 있더라도 외국 유튜버라 악보를 구매하는 과정이 굉장히 복잡하다는 문제가 있었다. 직접 영상의 건반과 소리를 참고하여 채보도 해보았는데, 나의 실력상 이는 매우 오랜 시간이 걸리는 힘든 작업이 되곤 했다.
 
부스트캠프 AI Tech도 마침 수료만 남았으니, 이제 그동안 배운 것들을 활용해볼 차례인 것 같다. 엔지니어의 진정한 간지는 '원하는 걸 만들 수 있다'에 있지 않을까 생각한다. 펭귄맨은 간지나는 엔지니어가 되기 위해 처음으로 시도해보는 개인프로젝트로서, 기획부터 모든 작업을 100% 혼자의 힘으로 수행해 보려고 한다. 프로젝트 펭귄맨을 한줄로 요약하면, 딥러닝을 활용한 피아노 음원으로 부터의 악보추출 프로젝트라고 할 수 있다.
 

2. 프로젝트 구상도

프로젝트 펭귄맨의 workflow

 
일단 구상하고 있는 프로젝트 모습을 간단하게 워크플로우 느낌으로 그려보았다. 순수하게 내가 사용할 모델이기 때문에 내가 사용하는 악보프로그램인 MuseScore3에 적용될 수 있는 mscz파일을 output으로 한다. 당연히 input은 피아노 음원 파일이다. 음원파일을 input으로 넣어주면 이를 spectrogram으로 변환후 딥러닝 모델을 통해 spectrogram에서 악보의 구성요소를 추출한다. 추출된 구성요소는 다시 musicxml 형식으로 변환시키고, 최종적으로 mscz파일로 변환하면 작업이 완료된다.
 

3. 주요과제

(1) musicxml 파일에 대한 이해

펭귄맨 프로젝트에서는 musicxml파일의 형식에 따라 악보구성요소를 추출해야 하기 때문에, 프로젝트 진행을 위해서는 musicxml파일의 형식과 구성을 명확히 이해할 필요가 있다.

(2) 데이터의 수집 및 처리와 정답 레이블 구축

딥러닝 프로젝트에서 항상 의지해온 AI허브에 관련된 데이터셋이 존재하지 않았다. 따라서 이번 프로젝트를 위해서는 직접 데이터셋을 만들어야 할 것 같다. 거기에 더해 정답레이블 또한 직접 구축해야 하는데 이건 좀 굉장한 작업이 될 것 같다.

(3) 모델 선정 및 학습

항상 Computer Vision 쪽 프로젝트만 진행해왔기 때문에 시계열 데이터를 다루는 것은 이번이 처음이다. 새로운 유형의 데이터를 다루는 만큼 관련된 모델 등에 대한 지식이 별로 없는 상태이다. 내가 진행하려는 task에 맞는 모델 선정 및 학습 또한 이번 프로젝트의 주요 과제중 하나라고 생각한다.
 

4. 프로젝트 진행시 고려사항 - 저작권법과의 조화

저작권법은 저작재산권의 일유형으로 복제권을 규정하여 저작물을 복제할 권리는 저작자에게 있음을 명확히 밝히고 있고(저작권법 제16조), 복제의 개념에 대해 ‘인쇄, 사진촬영, 복사, 녹음, 녹화 그 밖의 방법에 의해 유형물에 고정하거나 유형물로 다시 제작하는 것’이라고 규정한다(저작권법 제2조 제22호). 따라서 이번 프로젝트의 결과물은 디지털 복제로서 저작권자의 복제권을 침해할 소지가 있다.
 
다만 저작권법은 비영리 목적의 개인적 이용 등 사적이용을 위한 복제를 허용하고 있는 바(저작권법 제30조), 본 프로젝트의 결과물을 개인 연습, 연주 목적으로 한정하여 이용한다면 저작권법과 조화를 이룰 수 있을 것이다.
 
요약하면, 이번 프로젝트는 순수하게 나의 취미활동에만 활용해야 하고 서비스화를 해서는 안된다는 것이다. 서비스화 및 모델 배포 등은 다음 프로젝트에서 도전해보자.