What it does

It's a chatbot that freestyles to user input by rhyming a few bars of generated lyrics to whatever the user feeds it.

How we built it

The chatbot is based on a python backend that generates unique lyrics based on our 15,000+ entries database of recent and old-school rap lyrics. Rhyming line endings are created by phonetically matching the user input to a set of rhyming words. The lyrics are then generated using reverse-fed markov chains that create lines of text backwards to ensure a consistent rhyming pattern.

The database was fed using a Java program, consuming a public music API. The user interacts with the chatbot through a custom built Angular front-end that takes user input and interacts with our API middle-layer and then displays the generated lyrics. The whole project was deployed on a DigitalOcean droplet and is available at http://138.68.103.192/ .

Challenges we ran into

Rap lyrics are proprietary and therefore most music APIs require decent amounts of authentication or only expose limited artists or only excerpts of lyrics per song.

Accomplishments that we're proud of

It all works. The database can be used for future projects.

What's next for Rap Bot

Syllable matching for generated lyrics to preserve a notion of flow from one line to the next. More fleshed out front-end.

Share this project:

Updates