ML Project using my music collection

I think it’s time I start one of these in order to pressure me to not drop it lol.

After getting interested in Machine Learning or Data Science in general through watching videos, reading books and a couple lectures I now want to marry this interest with finally learning python.
And what better way to do it then to tackle a real “problem”, that being that given my growing music library I would like to have a way of actually hearing a good chunk of it without just going through it by artist.
My plan is to start simple and more focused on getting familiar with python through setting up communications with the mpd and grabbing the tags of the songs played and saving them somewhere in a suitable format.
Following that I plan to use the collected tags and order in which I played these songs to predict one or more attributes of the next song and give me matching songs. This point is likely going to be at least conceptually the most difficult part since I have no idea how much listening it will actually take to get good confidence in the system and there are probably tons of other problems lurking.
The late game plans are to use librosa to not only use the tags of a song but also actually extracted characteristics of the track but aside from even learning librosa it would likely be the realm of neural nets to get a good prediction going from that data, so while I will try to keep it as a sort of north star to aim for it’s truly out of my depth right now.

I will do this as a weekends project and hopefully get something fun and useful for me and others out of it; with updates to match(I don’t think many people care to see introductory python stuff).

3 Likes

Give it a try. I have some ML PDFs and Video that I go from the Humble Bundle store. Have not had a chance to crack them open yet but I intend to learn proper Python (3.x) in order to use the libraries that are already out there.

I want to make some smart home things for my wife so we can de-cloud and stop over paying for devices that loose support shortly after being released.

1 Like

Getting PDFs is pobably a good idea since I haven’t found any books in my library yet, at least not some that are up to date and not too long for adding to my book backlog.

As for my update: As expected it’s been mostly getting to know python itself and finding the right libs for the job. I found python-mpd2 and tinytag which enable me to interact with mpd and pull the tags from the files being played respectively. The next step is picking a file format and properly representing the relations between the songs, petastorm looks fancy but I am hesitant to use it because of the complexity.