/Chords-recognizer-django

A Django server for chord recognition from audio data trained with ML models

Primary LanguageJupyter Notebook

Chords Recognizer

A Django server for chord recognition from audio data trained with ML models

Description

This repository contains models written with Python's Scikit-learn and Tensorflow libraries to deal with the chords classification task and currently is much more a Proof of Concept rather than a ready-for-production application.

On this research I tested several models using several combinations of signal pre-processing to find out the scenarios behavior. The dataset was recorded by myself using a Classical (Nylon) Guitar, 48 classes (minor, major, minor 7 and major 7) and with 2 different samples size.

About the datasets:

  • ~14300 samples with 1024 features (audio samples) each, 48 classes - training with Scikit-learn library
  • ~3200 samples with 20480 samples each, 48 classes - training with Tensorflow (GPU - GTX 1060 6GB)

Some of the used models:

Scikit-learn:

  • Linear Regression
  • Support Vector Machine
  • Decision Trees
  • Logistic Regression
  • Multi-layer Perceptron

Tensorflow:

  • Neural Networks
  • Convolutional Neural Networks

Some of the pre-processment used:

  • Signal Windowing
  • Fourier Transform
  • Short-time Fourier Transform
  • Chroma feature extraction

You can follow all the research on the following article (Portuguese-Brazil): https://goo.gl/F614Kf