I first explored the topic of rap music clarity over the summer. By clarity, I mean how easy it is to transcribe lyrics while listening to a song. Slow songs with simple lyrics and familiar enunciation are easy to transcribe. Kendrick Lamar’s Look Out for Detox is difficult.
Measuring clarity of music is interesting because it can reveal more about our preferences. Does clarity determine how one engages with a song? How many people are really hearing the lyrics? By identifying and classifying the fundamentals of clarity, we can then start piecing together trends of preference and detailed profiles of artists. Perhaps we can determine that Kanye West has a relatively high score but that Future has a relatively low score. That’s probably one reason audiences have a hard time singing along at Future concerts.
I developed Cypher so fans of rap music can measure clarity of their favorite songs. It works by comparing IBM’s Watson’s attempted transcription of a vocal track with the actual lyrics scraped from RapGenius. RapGenius provides a control, while Watson is a listener that is consistently objective. An advanced text matching algorithm then calculates a correlation score. Though the scope is limited since it only works with acapella tracks (raw vocals with no instrumental), I think that this is an exciting first step.
Let’s see how Future stacks up against Biggie Smalls.
Future – F*ck Up Some Commas
Objectively: It is difficult to understand words and phrases that aren’t repeated, even on multiple play-throughs. Enunciation is terrible. Slang is prevalent.
Vocal Track: Synthetic, with noise, mediocre quality
Correlation score: 0.45833826
Biggie Smalls – Juicy
Objectively: Enunciation is great, but sometimes exaggerated. The song is slow but makes heavy usage of slang and proper nouns.
Vocal Track: Studio Acapella, perfect quality
Correlation score: 0.76490223
Cypher tells us that Biggie Smalls’ clarity in Juicy (.76) is significantly better than Future’s in F*ck Up Some Commas (.45). The sharp contrast between the two songs can be easily detected by a human, and the primitive version of Cypher also picked up on the disparity.
With this result in hand, I plan to develop Cypher further. In my next post, I will release the source code, provide a live demo, and fine tune the matching algorithm. Thanks for following along and let me know what you think!