Hidden Markov Models for Chord Recognition - Intuition and Applications

This tutorial describes the intuition behind Hidden Markov Models, with less mathematical formulas and with an application on Music Analytics - Chord Recognition


In machine learning, traditional mathematical models are still a good choice when dealing with small to medium datasets. However, the theory behind some of them is still hidden under heavy mathematical jargon, making it difficult for a broader application of them in science and in business.

This tutorial's objective is to introduce you to the concept of Hidden Markov Models (HMM), which is a probabilistic framework to work with sequence data, such as speech and language processing and GPS positions. The main idea is to show everyone What is a HMM and provide them with sufficient basis so you can use it in your next projects. The concept will be presented with a specific story and application in music:

  • "Given an input music signal, can we identify which chords were played and in which sequence?"

We will go through a Python Jupyter Notebook, which will introduce you to the following topics:

  1. How is sound represented in the computer?
  2. Signal Processing 101 - Preprocessing the music signal and feature extraction
  3. Introduction to Markov Models
  4. Introduction to Hidden Markov Models

Break (15 minutes)

  1. Modelling the Chord Recognition problem with HMM
  2. Initial Results and Conclusions -
  3. General framework for modelling a problem with HMM

After those topics, you'll be able to explain in common language what is a HMM, how it works and mainly, how you can use it next time you work with sequence data.

You don't need to know python, but you'll be able to engage more with the workshop in case you have at least the basics of it. Lastly, we'll talk about some mathematical concepts, such as probabilities and probability densities but, if you are just interested in the mixture of mathematics, programming and music, this tutorial will be for you!

The notebook and slides will be shared on Github and, for the presentation day, the notebook will be virtually shared with My Binder, so everyone can execute it by themselves.


Domains:

Algorithms, Data Science, Machine Learning, Statistics

Domain Expertise:

some

Python Skill Level:

none

Abstract as a tweet:

Come check out Caio's workshop on music+programming+stats on PyData