Inspiration
For this hackathon we wanted to apply knowledge that we acquired in class, to create a codejam that challenges us as well as revolves around a field of mutual interest, in this case, machine learning and music.
What it does
Our project resulted in a website, that allows the user to input a song name. Given that song name, we fetch its lyrics and feed them to a machine-learning model which eventually outputs the emotions that those lyrics convey. With that information, we then display back to the user a pie chart of the percentage of each emotion present in the song. On top of that, we built our own database so if the user is looking for a song that carries a particular emotion, they find some examples of it.
How we built it
The main foundation of the project lies in a python file and notebook, with which the model was trained and finetuned, as well as in javascript and ReactJS files, to fetch the data efficiently and build both the backend and the frontend respectively.
Challenges we ran into
If making an intuitive UI is like building a skyscraper, then making a working carousel is like building the foundations out of toothpicks. In addition, who would have thought that running a python code using a javascript file would be an easy task? No one, right? Well, our code did a good job reminding us of it. Finally, after 5 hours of work, we considered giving our model to physicists since they would round our 10% accuracy to 100%.
Accomplishments that we're proud of
Our biggest achievements must be "The Scraper", which by giving it an incomplete song name, manages to find the full title, its lyrics, the artist's name, and the image of its album. Our user-friendly UI, that, despite its apparent simplicity, made us go crazy to try and make it as responsive as possible. Finally, we have to be proud of the massive research that involved finding the right dataset, and tools to actually be able to create a machine-learning model.
What we learned
We learned how to make a multi-language project work, how to effectively collaborate and split the workload equivalently, and how to discuss the project as we go, as opposed to each doing their own thing.
What's next for Search Jam
The roadmap is unclear, although some possibilities include: Adding more emotions to recognize (Nostalgia, hope, ...), migrating to an SQL database, and many more. What remains certain is that this was an incredibly fun project that challenged us, humbled us, and made us hungry for more.
Built With
- git
- javascript
- python
- react
- transformers
Log in or sign up for Devpost to join the conversation.