Who doesn't love music? We all do. I feel it is extremely soothing to be able to listen to the right music that suits your mood. It is interesting how the best pop songs are annoying when you're not in the mood. But often, we ourselves do not know what mood we're in, and in that case, it becomes quite a task to find the right song or to even realize that the right song is all that we need. This app is an effort to sort that out and give you the best of music.

What it does

It analyzes your mood by taking a glance at your conversations with a friend (ONLY if you consent to it) and suggest you songs aptly.

How I built it

I built it in Python. It extensively uses Google Cloud Services and pygame. The code analyzes the sentiment of your text using the Natural Language Processing sentiment analysis available on the Google Cloud Platform. With the knowledge of the sentiment and its intensity, it suggests an apt song. Currently, it just chooses the best option from my personal repo of songs.

Challenges I ran into

Setting up and using GCP and Google SDK. I also realized it will take weeks of NLP research at the least to incorporate for complex emotions like "in love, but sad"; and this is difficult to achieve in a 24 hour hackathon, though this is definitely a part of my future work on this project.

Accomplishments that I'm proud of

The idea and its utility. I text a lot, and every time I open Spotify on my phone, I keep thinking about what I want to play.

What I learned

Using NLP by GCP. The fact that our moods are not always easily classifiable and positive and negative are not the only ways we can feel.

What's next for Mood Songs

I would like to make an amazing UI and deploy this on Google Play. And get deeper into NLP to incorporate for more complex emotions. I would also like to extend the library of songs to non-English languages. Also, I would want to make the app learn on the basis of whether the user skips the song or keeps playing it. This part would be simple reinforcement learning.

Built With

Share this project: