Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Recurrent Neural Network for generating piano MIDI-files from audio (MP3, WAV, etc.)
| Date | Stars |
|---|---|
| 2026-07-31 | 267 |
| 2026-08-05 | 267 |
| 2026-08-06 | 267 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# Automatic Polyphonic Piano Transcription with Recurrent Neural Networks

IPython-notebook templates for neural network training and then using it to generate piano MIDI-files from audio (MP3, WAV, etc.). The accuracy will depend on the complexity of the song, and will obviously be higher for solo piano pieces.
# Update (2021 May)
There is another pre-trained __*Magenta's*__ model in __*TensorFlow Lite*__ format, it can be downloaded here:
https://storage.googleapis.com/magentadata/models/onsets_frames_transcription/tflite/onsets_frames_wavinput.tflite
or look for the link in the GitHub-repository:
https://github.com/magenta/magenta/tree/master/magenta/models/onsets_frames_transcription/realtime
It takes as input approximately 1 second of raw audio (not 20 seconds of mel spectrogram). There is an example of using the model in my fifth IPython template ("5 TF Lite Inference.ipynb"). This model is super-fast on my Android device and accuracy is still not bad. To see my app for Android 4.4 KitKat (API level 19) or higher, click on the following screenshot:
[](https://GitHub.com/BShakhovsky/PianoTranscription_Android/blob/master/README.md)
or get it on Google Play:
[](https://play.google.com/store/apps/details?id=ru.BShakhovsky.Piano_Transcription)
The previous full Tensorflow model (not TensorFlow Lite) is used in my app for Windows 7 or later, to see it click on the following screenshot:
[](https://GitHub.com/BShakhovsky/PianoTranscription3D/blob/master/README.md)
# Update (2019 June)
There is Google's model called __*"Onsets & Frames"*__ with very good accuracy, see the following blog post:
https://magenta.tensorflow.org/onsets-frames
or GitHub-repository:
https://github.com/magenta/magenta/tree/master/magenta/models/onsets_frames_transcription
Just for fun, I blindly copied those model parameters, and trained the model in the second IPython template. But my resultant accuracy was slightly less, probably because of the reduced batch size. So, eventually, in the third IPython template, instead of training my own model, I just copied the weights from the Google's pre-trained tensorflow checkpoint:
https://storage.googleapis.com/magentadata/models/onsets_frames_transcription/maestro_checkpoint.zip
# Troubleshooting
If Python __*"Librosa"*__ module cannot open any audio format except WAV, __*download FFmpeg codec:*__
[](https://web.archive.org/web/20200918014242/https://ffmpeg.zeranoe.com/builds/)
Choose your Windows architecture and static linking there. And do not forget to add the __*"PATH"*__ environment variable with the location of your downloaded __*"ffmpeg.exe"*__. Or see more detailed instructions here:
https://www.wikihow.com/Install-FFmpeg-on-Windows
# Dataset: MAESTRO (MIDI and Audio Edited<br>for Synchronous TRacks and Organization)
Downloaded from Google Magenta: https://magenta.tensorflow.org/datasets/maestro#download
## Warning
For some samples last midi note onsets are slightly beyond the duration of the corresponding WAV-audio.
# Not used datasets
## Not used: MAPS (from Fichiers - Aix-Marseille Université)
https://amubox.univ-amu.fr/index.php/s/iNG0xc5Td1Nv4rR
### Issue 1 (small dataset and not as natural)
From https://arxiv.org/pdf/1810.12247.pdf, Page 4, Section 3 "Dataset":
`MAPS ... “performances” are not as natural as the MAESTRO performances captured from live performances. In addition, synthesized audio makes up a large fraction of the Excerpt of 17,172 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:249fa192a1eeb760, llm:Repository description and README: 'Recurrent Neural Network for generating piano MIDI-files from audio (MP3, WAV, etc.)', topics include 'piano-transcription', 'audio-to-midi', 'recurrent-neural-network', 'cnn-keras', 'constant-q-transform', 'mel-spectrogram', and references to TensorFlow/Magenta models and inference notebooks.
matched fp:249fa192a1eeb760, llm:Repository description and README: 'Recurrent Neural Network for generating piano MIDI-files from audio (MP3, WAV, etc.)', topics include 'piano-transcription', 'audio-to-midi', 'recurrent-neural-network', 'cnn-keras', 'constant-q-transform', 'mel-spectrogram', and references to TensorFlow/Magenta models and inference notebooks.