Inspiration
As a team, we are all extremely passionate in music. We love to listen to new songs, however we've noticed a trend in how popular streaming companies recommend songs to users. Instead of actually caring about what these songs sound like, they mostly design algorithms that rely on tags and popularity. We wanted to design something that instead actually cares about what the user would want to hear. We wanted to take you to your next destination in music.
What it does
Sound Wave is a deep neural solution that aims to learn peoples taste in music, without the bias of humans. Nowadays, many top music sites provide songs based off of popularity and tags; however, largely ignore the composition of the music. We aimed to solve that problem.
Soundwave doesn't observe artist, genre, or popularity, and solely analyzes the music. By analyzing the syntactical and semantic structure of your favorite songs, Soundwave learns your preferences from a purely music based perspective. It locates songs with similar sounds, rhythms, and patterns to try to learn what music YOU truly enjoy!
For the sake of the demo, the user will only select one song, for sake of streamlining. However, the model is infinitely scalable, and if it was fed someones entire playlist, the model would be able to better extrapolate a density distribution of the persons taste, fully personalizing to the music they like!
How we built it
Soundwave uses deep neural encodings via VQ-VAEs in order to extract relevant features from data. As a result, none of the features have any human bias. They contain the most condensed information about the songs rhythm, tone, tempo, and structures defining the music in an easy medium such that similarity between songs can be easily compared.
Once Soundwave has determined what is important about the music, it will be able to quickly on demand query recommendations from its database, based on whatever song the user is listening to. This is done via k-nearest neighbors, and Gaussian Mixture Models.
In order to feed the model to generate a suitable latent distribution, we had to perform a heavy amount of data-mining.
Challenges we ran into
One of the biggest challenges that we ran into was actually retrieving all the song data. In order for our software to work, we needed to provide our machine learning model with extensive amounts data that we did not have at the time. This was a huge issue, but we managed to overcome it. We spent a lot of time developing a working data mining script for python, which shifted back development on everything else.
Another huge challenge we ran into was actually feeding the data into our model. We were extremely limited by the hardware we had for the time. Because of this we had to make sure everything ran perfectly the first time, as even one mistake could set us back a few hours.
Finally, we had severely underestimated the difficulty in developing a web application. Initially, we thought developing the functionality would take the most time, but our lack of experience in web development led us to dedicating a lot more time than anticipated on the actual web design.
Accomplishments that we're proud of
We're proud that we managed to finish such an extensive project in such little time. Usually training these models could take weeks to months. The fact that we were able to train such a complex model in such little time shocked us.
At first, the results that our algorithm was producing worried us, however after looking through the results again, we found that our AI is able to see patterns in music that we wouldn't be able to hear at first. We realized that it can find near perfect harmonies to songs that are completely unrelated to each other. What surprises us more is that it's able to do this with such a small amount data. If we had more, the capabilities could be endless. We think that this could be extremely beneficial for research purposes.
What we learned
The most valuable thing that we learned from all of this is that even though it is possible to do all of this in 24 hours, it just isn't recommend. Even when making the tight deadlines that we had for every step, we still found that we cut it extremely close. However we also learned that we are capable of much more than we previously thought. We want to use this passion to drive other ventures that we may have in the future.
What's next for Sound Wave
Given that we were accomplish so much with so little time and resources, we want to see what we could do with this if we had what we previously lacked. We have several goals that we want accomplish. First we want to make our machine learning model as accurate as it can be. Instead of only sampling a few given songs, we want to sample as many as we can. Second, we want to improve our front end design. We think that looks great with the time given, however we think that given more time in the future, we can always make improvements.
Log in or sign up for Devpost to join the conversation.