• RBD Lab with Daniel Lederman

Genre Recognition of musical recording using Deep Learning

Updated: Apr 6

This project implements a Convolutional Neural Network-based classifier for the task of Music Genre Recognition based on the work presented in “Costa, Y. M., Oliveira, L. S., & Silla Jr, C. N. (2017). An evaluation of convolutional neural networks for music classification using spectrograms. Applied soft computing, 52, 28-38”. The project also includes a proof-of-concept Genre Recognition and Genre-based Music Recommendation App based on the classifier.

The project was supervised by Dr. Dan Feldman from the department of Computer Science and by Dr. Alon Schab from the department of Music of the University of Haifa with additional consultation from Dr. Dan Tidhar of the University of Cambridge. The project was developed as part of the University of Haifa’s Musicological Lab initiative.

I would like to thank Alastair Porter from the Music Technology Group at the Universitat Pompeu Fabra in Barcelona, for providing me access to the ISMIR2004 genre dataset, which was essential to the project.

This project implements a Convolutional Neural Network-based classifier for the task of Music Genre Recognition based on the work presented in “Costa, Y. M., Oliveira, L. S., & Silla Jr, C. N. (2017). An evaluation of convolutional neural networks for music classification using spectrograms. Applied soft computing, 52, 28-38”. The project also includes a proof-of-concept Genre Recognition and Genre-based Music Recommendation App based on the classifier.

Music Genre Recognition is a task in MIR (Music Information Retrieval) research, whose goal is as follows: given a piece of music (in either symbolic form or audio form), and a set of possible musical genres, find to which genre does the piece belong to. Finding the genre of a piece can be useful for real-life tasks such as Genre-based Music recommendations and indexing of large untagged collections of music.

The project was implemented using the following tools:

  • Development languages: Python 2.7, Bash

  • Tools:

  • Caffe – deep learning framework

  • SoX – audio processing and visualization tool

  • Mp3Info – mp3 information extraction tool

  • IDE: JetBrains PyCharm

  • External python libraries: PyCaffe, NumPy, Pandas, Matplotlib, OpenCV2, lmdb