Artists and entertainers often make use of multiple sensory outlets that closely interplay to effectively communicate their ideas. For example, in lyrical compositions, lyrics and melody are both essential components that express the musician’s emotions or experiences. A popular trend on YouTube is to generate compositions of music based on the lyrics from popular songs. We know from this that some genres of music are relatively predictable in their mood/melody. We want to understand how these components interact to make meaningful music that audiences love and relate to.

Methods We want our final model to accept the lyrics of an unknown song and produce a list of known songs that it predicts will sound the most similar. We could use Natural Language Processing (NLP) techniques and the nltk Python package to analyze the lyrics of songs and correlate them to other features of the songs, such as genre and publication year. The Million Song Dataset (MSD) contains metadata for one million popular songs, of which over 200,000 come with bag-of-words stemmed lyrics. Intact lyrics can be found by scraping the net if bag-of-words is insufficient. We plan on using artist name, song duration, genre tags, musical key, loudness, time signature, tempo, and year of release metadata. These features will be used to create a feature space to measure song similarity. Lyrics and feature space pairs will act as training input into the model. The goal is to predict the features of a song using only its lyrics, attempting to determine which sections of the lyrics are the most important in comparing and contrasting the songs. Validation will be done using songs from the dataset that were not used to train the model.

Potential Results The accuracy of the model will help determine if it is possible to discern features of a song using only lyrics. If it is not possible, features can be added to the lyrics for more robust input/output pairs. Based on the music labels we have obtained, we can either match it to background music from another song with similar features or potentially try to generate a small piece of synthetic background music ourselves.

Built With

Share this project:

Updates