Update README.md
Browse files
README.md
CHANGED
@@ -1,3 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
title: Multi Label Music Genre Classifier
|
3 |
emoji: π
|
|
|
1 |
+
# Multi Label Music Genre Classifier
|
2 |
+
|
3 |
+
An extension to my project of: [Single Label Music Genre Classifier](https://github.com/Hetan07/Single-Label-Music-Classifier)
|
4 |
+
|
5 |
+
I was primarily interested on how prediction (or classification)
|
6 |
+
would work in case if a sample can be classified into multiple classes at the same time
|
7 |
+
which is what most of the time is the case with music
|
8 |
+
|
9 |
+
Majority of the work done went into actually making the proper dataset to work and train upon.
|
10 |
+
What I wanted was a dataset similar to the one I worked upon during single label classification.
|
11 |
+
GTZAN has no dataset for mulit-label purposes, and so I had to make one
|
12 |
+
|
13 |
+
A dataset, [MuMU](https://www.upf.edu/web/mtg/mumu) has the mulit-label tags but works on different components or features.
|
14 |
+
So I decided to create a GTZAN-like dataset but with multi-labels
|
15 |
+
|
16 |
+
---
|
17 |
+
|
18 |
+
### Dataset Creation
|
19 |
+
|
20 |
+
The work done for creating the dataset were:
|
21 |
+
|
22 |
+
- Downloading the appropriate songs taken randomly from the MuMu dataset in sampled manner from ~80 genres (tags)
|
23 |
+
- Data Cleaning which included to clean and replace the download songs as many of them were things such as album intros, interludes or skits
|
24 |
+
- There were also issues where the song required was not available on any platform and so had to appropriately replaced for another proper track or I had to manually search and download
|
25 |
+
- Each file had to properly checked to prevent any distortion or disturbances
|
26 |
+
- Applying feature extraction on each downloaded song using the *librosa* library
|
27 |
+
- Reducing the labels from ~80 to around ~15
|
28 |
+
|
29 |
+
There was also an issue: MuMu dataset has no Classical Genre and thus it had to be added manually.
|
30 |
+
|
31 |
+
In the end I decided to have feature extraction work on 3 second samples and thus have around ~24000 samples.
|
32 |
+
|
33 |
+
I have linked the actual dataset created from all the steps if anyone wishes to work upon it
|
34 |
+
|
35 |
+
---
|
36 |
+
|
37 |
+
For this task I decided to primarily work with neural networks and experimented with various architecture
|
38 |
+
|
39 |
+
The models I trained are:
|
40 |
+
|
41 |
+
- ANN
|
42 |
+
- ANN with Batch Normalization
|
43 |
+
- CNN
|
44 |
+
- CRNN
|
45 |
+
|
46 |
+
|
47 |
+
The genres classifed are the following:
|
48 |
+
|
49 |
+
- Metal
|
50 |
+
- Jazz
|
51 |
+
- Blues
|
52 |
+
- R&B
|
53 |
+
- Classical
|
54 |
+
- Reggae
|
55 |
+
- Rap & Hip-Hop
|
56 |
+
- Punk
|
57 |
+
- Rock
|
58 |
+
- Country
|
59 |
+
- Bebop
|
60 |
+
- Pop
|
61 |
+
- Soul
|
62 |
+
- Dance & Electronic
|
63 |
+
- Folk
|
64 |
+
|
65 |
+
I have also deployed this on Hugging Face using streamlit. If one wishes, he can test and play around with different music tracks.
|
66 |
+
|
67 |
+
---
|
68 |
+
|
69 |
+
All of this took me around 3-4 days but in retrospect, I realize that some parts have been slightly rushed.
|
70 |
+
An in-depth analysis of data is further required along with more data. This task as a lot of potential for beginners and experts alike
|
71 |
+
|
72 |
---
|
73 |
title: Multi Label Music Genre Classifier
|
74 |
emoji: π
|