- 부산대학교 전자공학과 졸업과제 소스 코드 입니다.
- 프로젝트 기간: 2022년 2학기 (2022.07 ~ 2022.12)
- 주요 내용: Music Source Seperation 모델인 Demucs를 활용한 음원 분리와 audio2midi 모델을 활용한 Automatic Music Transcription
- 본 프로젝트는 Meta AI의 Demucs for colab 코드를 바탕으로 됐습니다.
- 기존 프로젝트 소스 코드 원본은 여기를 참조해주세요.
-
audio_to_midi
- tiagoft/audio_to_midi 레포지토리 참고
- Fundamental Frequency Detection
- Onset detection
- Hidden Markov Models
- Musicological Models
- Acoustic Models
- Estimating priors
- 참고
- 여기에서 다운로드 받고 실행
- 명령 프롬프트 혹은 git에서
git lfs install
실행
brew install git-lfs
git lfs install
git clone https://github.com/gsgh3016/2nd_semester.git
git lfs pull
# 클론 디렉토리로 이동
cd /path/to/cloned/project
# 파이썬 버전 관리
pyenv local 3.11.7
# 가상 환경 생성
python -m venv {가상 환경 이름}
# 가상 환경 활성화(Linux, macOS)
source {가상 환경 이름}/bin/activate
# Window
{가상 환경 이름}\Scripts\activate
# 비활성화 시
deactivate
pip install -r requirements.txt
- ipykernel 모듈이 설치가 안 된 경우
pip install ipykernel
- 생성한 가상환경을 주피터 노트북 커널에 등록하기
python -m ipykernel install --user --name={커널_이름_지정} --display-name="선택_메뉴_이름_지정"
- 명령어로 실행하기(커널 선택 후 노트북 쉘마다 실행할 수 있음)
python graduate_project.ipynb
-
input
: 사용자 음원 -
output
: 악기 별 분리 음원(기본 값bass
,drums
,other
,vocals
) -
figures
: 악기 별 그래프({곡 제목}_{악기}_{그래프 종류}.png
) -
midi_output
: 두 모델(sound_to_midi
,basic_pitch
)에 따른 악기 별 MIDI 파일 -
docs
: 발표 자료 -
util
: 사용한 함수 모듈화* sound_to_midi: tiagoft/audio_to_midi 레포지토리 클론 후 모듈 버전에 따른 코드 수정
- demucs (A Défossez, 2019)
- Madmom (S Böck, 2016)
- basic pitch (RM Bittner, 2022)
- (2022.07 ~ 2022.12)
- Madmom 모듈 충돌로 basic pitch로 대체 (2024.02)