keunwoochoi / music-auto_tagging-keras

Music auto-tagging models and trained weights in keras/theano
MIT License
616 stars 142 forks source link

Music similarity using music-auto_tagging for feature extraction #17

Closed srinidhikrs closed 6 years ago

srinidhikrs commented 7 years ago

Hi ,

I have used the music-auto_tagging for feature extraction along with a classifier and come up with an approach to recommend music based on music similarity.

Accoustically similar music have some accoustic features which can be used to identify similar sounding music. We have considered the following four accoustic features in order to distinguish different kind of music. 1)Drag : Songs which are very slow moving 2)Beats : Songs in which rythmic beats are more prominent and highlighted 3)Melody : Songs without too much beats /slow or medium tempo (speed) / 4)Fast : Songs which have fast tempo (speed) .

We picked manually around 60-80 music samples under each of the above categories. Then we formed a binary cluster for each category as follows : For example in order to train for Drag category , we formed two groups with 65 samples in each group. 1)Drag group (65 samples) : all samples in this group are very slow moving songs. 2)Others group (65 samples ) : We mixed samples from beats melody and fast category which are not slow moving but with medium to fast tempo(speed).

Then we trained a convolutional neural network (CNN) model using normalized spectrograms of all samples from both groups. The trained model was used to identify the dragscore for a song.

Using the same approach as explained above , separate CNN models were trained in order to get beatsscore, melodyscore and fastscore from a song.

Now using the four separately trained CNN models , we obtained dragscore,beatsscore,melodyscore and fastscore for every song in the test data (around 3000+ music samples) which were not part of training data.

For any selected song from test set , based on the four scores of the selected sample song , songs which have similar scores in the test set were listed in the result page with option to listen to the selected and listed samples.

The listing based on score similarity seemed to match the selected song in terms of music similarity for 85-90% of the selections.

keunwoochoi commented 7 years ago

So it works well? then it's good news :)

srinidhikrs commented 7 years ago

Thanks. I have tried with very few samples only (around 60-70 samples per category). I will need to try with more samples per category and check if I can get better accuracy .