Music Vision
A computer vision & Machine Learning Project
Overview
The purpose of this project is to better understand what drives popularity of songs. With a better idea of the key metrics that help to shape a song’s popularity, these metrics can be used to assess historical song performance and subsequently forecast future new song performance. The problem is that there is no clear method to identify popularity metrics, measure these metrics in an accurate way and subsequently use these metrics to predict new song performance. With the help of unsupervised and supervised machine learning algorithms, I intend to develop a solution that would provide insight and statistical analysis in a non-technical format for people to understand the potential performance of new songs. I define performance in the context of streaming play counts and revenues.
Problem
The problem is that it is hard to forecast the success of a new song simply based on how the song sounds. Is the similarity of a new song to other historically popular songs the key to “success”? Or is it the unique qualities of the sound in the song that allow it to hit the top of the charts? What are the components of the sound in the song that are most impactful? How impactful is the sound in a song to the overall success of a song? For instance, a new Paul McCartney song will perform a certain way because of the popularity of Paul McCartney. However, how much of that new song’s success could be solely influenced by the sound itself? These are the questions I hoped to investigate.
Solution
The solution was to create a computer vision machine learning model that could accurately forecast the potential revenues of a song based on core metrics visualized in the form of a spectrogram (time, frequency). By finding similarly looking songs via their spectrograms, we could predict a similarly sounding song could potentially have similar revenue performance to historical song performance.
The Statistic
In order to standardize the results of the model, I used the following statistic to classify and contextualize the forecasted performance of the predicted song. I reverse engineered this statistic ultimately to develop the model.
Results
Spotify Popularity Metric Analysis
This is my research into the most important metrics to best describe the performance of a song. I looked at a dataset of top Spotify songs to see which metrics have the strongest correlation to “popularity”.
Spectrogram Classification & Regression Analysis
This research was the designing and construction of the machine learning model. This includes my script for creating my dataset of spectrograms. This research also includes my code for determining the number of clusters for my K-Means model.
Final Full Classification & Regression Analysis
This research is a combined cleaned script containing the full, unleashed model. This is the script to use for running tests with the highest accuracy. The model predicts on the entire song.
Make sure to have Google Colab downloaded
FYI: Web server might take about a minute to rev-up when the page loads