[Radio] Algorithm to Match Songs Based on Lyrics

Hello I will begin this proposal by presenting the reason why I´m doing this.

 

I like music, technology and I like discovering new things. It bugs me that every time I try to use Spotify "radio" function on a chosen song it selects songs that are not related to the song I choose. By not related I mean that song lyrics are not related in any mater 1 out of 10 times. When I choose to start a radio on a chosen song, it means that I want to discover songs that have similar lyrics or for those without lyrics are in the same speed.

I searched through this forum and the most presented ideas are about how the client should look like, or how people should be able to move songs around etc... Correct me if I'm wrong but I see no reason why you have to put a lot of energy on the design when most of the algorithms used in Spotify, (excuse the language) sucks.

I therefore purpose making use of various algorithms that detect similarities in song lyric and choose songs (of course in the same genre) that are similar in that way. If the song is missing a lyric (instrumental) the algorithm should choose songs depending on similarities in wave properties or speed.

One way of doing this is by dividing lyrics in different graph based databases, every word should be a node and every song that use the word, is connected to that word through a relation.

For instance let’s take a song by the name "My Love", the lyric of this song goes as follows, "I Love You".

This should look like this in the database, My_Love-[GotTheWord]->(Love),My_Love-[GotTheWord]->(You)

As we see here, the song "My Love" got 2 relations.

Now let’s take another song by the name "One Love", the lyric of this song goes as follows "I Love You".

In the same way here, the lyric gets divided and "One Love" is connected to the lyric.

This should look like this in the database, One_Love-[GotTheWord]->(Love),One_Love-[GotTheWord]->(You)

As we see here, the song “One Love” got 2 relations.

Now on this level, one could use already implemented mathematical graph-traversing algorithms and by that, the selection of the songs should be based on the similarity of connected edges between songs. ( with other words, lyrics similarity)

The same concept should work on songs without lyric (instrumental) by quantifying the speed of the music or various wave properties, then after doing that, divide the properties by chunks for node creation in the database.

 

That was my proposal, if you are interested in a deeper technical implementation of the ide, I could use some spare time to write a complete report on the matter.

By the way, don’t tell me that it is not possible to implement this, I would agree that it would difficult but possible.

Sorry for the cruel language.   
With Regards FromTheFuture

 

Updated: 2016-04-19

Hello!

Your idea has been submitted a while ago but unfortunately hasn't gathered enough kudos (50 per year). In order to keep an overview of the active & recent ideas in this forum, we will close this idea for now. However this does not mean that your idea has been declined by Spotify.

If you still feel strongly about your request, we encourage you to post your idea in a little different form again! Maybe now is the right time to receive the support of our community for your suggestion! ;)

Do you have any further questions on how the idea exchange is managed? Just click here!



Related Ideas

Comments
Rock Star 28
Rock Star 28
Status changed to: New Idea
Updated: 2015-04-20

Marked as new idea and edited the title slightly to make it easier to find via search.



Rock Star 28
Rock Star 28
Status changed to: Inactive Idea
Updated: 2016-04-19

Hello!

Your idea has been submitted a while ago but unfortunately hasn't gathered enough kudos (50 per year). In order to keep an overview of the active & recent ideas in this forum, we will close this idea for now. However this does not mean that your idea has been declined by Spotify.

If you still feel strongly about your request, we encourage you to post your idea in a little different form again! Maybe now is the right time to receive the support of our community for your suggestion! ;)

Do you have any further questions on how the idea exchange is managed? Just click here!