Skip to content

MarionChaff/piano-transcription

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

piano-transcription

Turn audio recordings into piano sheets

This repo contains two notebooks including (i) audio data preprocessing and (ii) the training of a model designed to recognize piano notes. It can be used to turn audio recordings into piano sheets.

Database

  • Very short midi files with one or many notes played simultaneously (midi files contains information such as as musical notes, timing, velocity, pitch, and instrument data)

X data pre-processing (cf. file 1-data-preprocessing.ipynb)

  • Each midi (.mid) is converted into audio (.wav) file
  • Each audio file (.wav) is converted into a CQT spectrogram (.png)
  • Each spectrogram (.png) is converted into a grey-scale 1d array and resized to a unique format (60 x 150)

y data pre-processing (cf. file 1-data-preprocessing.ipynb)

  • The notes played are extracted from the midi (.mid) files and are one-hot encoded

Model training (cf. file 2-model-training.ipynb)

  • Convolutional layers were used to extract spatial features from each spectogram
  • Sigmoid activation and binary crossentropy loss functions were used to capture multiple notes played simultaneously
  • Model accuracy reaches 0.96 on train, val and test sets