Resonance
The Project
Lyrical analysis plays a key role in music therapy, where participants benefit from songs that provide self-expression and relatability. However, lyrics are a largely ignored metric in mainstream music recommendation platforms. Thus, I wanted to automate the process of lyrical analysis - users can enter search queries and get lyrical narrative based recommendations. To achieve this, I created a mobile application that utilizes Natural Language Processing and Machine Learning. To understand lyrics, I used the Rapid Keywords Extraction algorithm. However, that method alone cannot accurately represent song narratives. For example, the same keywords may be present in songs about heartbreak from a breakup and songs about being liberated a toxic partner, but they carry drastically different emotions and cannot be categorized together. Thus, a machine learning model based on the Random Forest algorithm was trained. This model is used to categorize songs into distinct emotional categories. Each song is stored under an emotion category with its keywords. The application was completed using Flutter, a mobile application development tool using the language Dart. The storage of data is handled through Firebase. Testing versions of this application has already been approved by Apple App Store and Google Play Store. By being available to the two biggest smartphone systems, Resonance greatly expands the accessibility of mental health support. The average length of a song is three minutes and thirty seconds. So I want to make people’s days a little better and for them to feel just a little less alone, three minutes and thirty seconds at a time.
Team Comments
I chose to make this project because...During hardships, my friends and I listen to relatable songs as an effective coping mechanism. Indeed, lyrical analysis in therapy yields accessible materials easy for adolescents to resonate with. However, mainstream music recommendation systems neglect lyrics, just focusing on musical elements.
What I found difficult and how I worked it outI struggled with deciding which ML model to use. So, I tested four - logistic regression, decision tree, random forest, and support vector machine. Random forest got the highest accuracy, resolving my indecision. Through conducting extensive research and testing, I was able to build this project.
Next time, I would...I would explore the natural language processing aspect further. I have since started exploring large language models and HuggingFace Transformers, and I’m curious on whether these technologies could be applied in this case. Additionally, I hope to continue interviewing music therapists for feedback.
About the team
Team members
More cool Identity projects
SAFE AND UNSAFE TOUCH
Scratch
School Activities and Events
Scratch