MLEnd Hums and Whistles
A dataset for extreme music recognition
About Dataset
Music is part of our lives.
Many of us can't stop listening to music and spend a considerable amount of time trying to decide what to listen to next or what is worse, looking for that song whose title we have forgotten! How do we go about finding that song we want to listen to, but have forgotten?
We can try to remember a fragment of the lyrics and simply use a text-based search engine. What if we don't recall the lyrics or they are in a language we don't even speak? Well, we can ask for help: we hum to the song and hope that someone will recognize it - no matter how poorly we do it. Think about it. It is amazing that we can recognize a song when we listen to it. But isn't it even more amazing that we can recognize it when someone else is humming or whistling to it? Wouldn't it be great to have an audio-based search engine that did this for us?
This would truly be extreme music recognition.
The MLEnd Hums and Whistles dataset will give you an opportunity to explore the non-trivial problem of recognizing music from extreme interpretations, in our case, hums and whistles produced by people like you and me. This dataset comes with additional demographic information about our participants, so that you can explore how people with different backgrounds interpret music. A small version of this dataset can be found here.
The MLEnd datasets have been created by students at the School of Electronic Engineering and Computer Science, Queen Mary University of London. Other datasets include the MLEnd Spoken Numerals dataset, also available on Kaggle. Do not hesitate to reach out if you want to know more about how we did it.
Enjoy!
Sample Dataset
Here are some samples of Hums and Whistles.
Potter:Hum
Potter:Hum
Potter:Whistle
Frozen: Hum
Hakuna: Whistle
Mamma: Whistle
Mamma: Hum
Panther: Hum
Rain: Hum
Showman: Whistle
StarWars: Hum
StarWars: Whistle
Download Data
Install mlend
To download the Spoken Numerals data, first step is to install mlend
library. Use pip to install library.
pip install mlend
Download subset of data
To download subset of the data, song ‘Potter’ from first five interepreters, that includes humming and whisteling, use following piece of code:
import mlend
from mlend import download_hums_whistles, hums_whistles_load
subset = {'Song':['Potter'],'Interpreter':list(range(5))}
datadir = download_hums_whistles(save_to = '../MLEnd', subset = subset,verbose=1,
overwrite=False,pbar_style='colab')
This code will download data in given path (‘../MLEnd’) and returns the path of data as datadir (='../MLEnd/hums_whistles')
Download full dataset
To download full dataset, use empty subset, as in following piece of code:
import mlend
from mlend import download_hums_whistles, hums_whistles_load
subset = {}
datadir = download_hums_whistles(save_to = '../MLEnd', subset = subset,verbose=1,
overwrite=False,pbar_style='colab')
Load the Data and benchmark sets
After downloading partial or full dataset, mlend allows you to load the dataset with specified method of training and testing split.
Note, mlend doesn’t read and load the audio files in memory, instead it reads the path of files, for further reading and cleaning data as per requirement of the model. For more details, check help(hums_whistles_load)
.
import mlend
from mlend import download_hums_whistles, hums_whistles_load
subset = {'Song':['Potter'],'Interpreter':list(range(5))}
datadir = download_hums_whistles(save_to = '../MLEnd', subset = subset,verbose=1,
overwrite=False,pbar_style='colab')
TrainSet,TestSet, MAPs = hums_whistles_load(datadir_main = datadir,
train_test_split = 'Benchmark_A',
verbose=1,encode_labels=True)
MLEnd Documentation
For mlend documentation use help(fun)
in python terminal or Jupyter-notebook. Alternately, check out