I want to know what makes a great rapper.

What it does

It visualizes rhymes across adjacent lines.

How I built it

In beaker, using python for processing, and d3.js for visualization. Used nltk to translate word to phoneme (it uses cmudict). Implemented Smith-Waterman alignment algorithm (typically used in genomics) to align phonemes from adjacent lines.

Challenges I ran into

Used a heuristic phoneme similarity measure (for the alignment algorithm). Hard to make it better than the baseline (which was just exact match).

What's next for RapGraph

TTR: text to rap. Then the entire pipeline, for a rap battling robot.

Share this project: