Inspiration
As avid karaoke consumers, we tend to run out of songs to sing, or end up choosing songs that are out of our vocal range. Most modern song recommender systems like Spotify create suggestions for listening leisure, rather than for singing. Also, in a group setting, we will like to choose songs that the group will like to sing as well. However, in reality, it's difficult to achieve this.
What it does
With these shortcomings in mind, we have built Karamonke, a mobile application that finds suitable songs for your karaoke session based on ease of singing, song mood similarities, and overall genre.
How we built it
Using sci-kit learn, we utilised unsupervised learning on a song dataset to generate a model that suggests similar songs based on an initial song or playlist. From these suggestions, we will query the user for feedback which we will be fed to a deep learning model to learn the user's preference. This aims to further tailor the recommendations to the user. We then built a simple web application with nextjs for users to get their song recommendations.
Challenges we ran into and our solutions
The spotipy API was easy to use and contained a lot of features that were ideal for training our model, but Spotify unfortunately disallows its use for ML. We had to find other datasets for developing our model.
Unsupervised learning does not take into account user input. Since Karamonke is a song recommender, it needs to learn user preference. Thus, we had to figure out a way to incorporate user preference into our model. Hence, we implemented a deep learning model to learn user preferences and used it to further evaluate the songs recommended by our unsupervised model.
Accomplishments that we're proud of
This is the first time we have used machine learning in a hackathon that aims to provide insights using real-world data, which is an exciting milestone for us :D
What we learned
We have learned to use many new tools and frameworks, such as fastapi and pymongo.
What's next for Karamonke
We hope to implement more features for Karamonke, most notably to add support for group song recommendations.
Built With
- fastapi
- nextjs
- pymongo
- scikit-learn
- tensorflow
Log in or sign up for Devpost to join the conversation.