Inspiration

One of the team mates is an aspiring rapper trying to better his craft, and one way to do it is with suggestions from a smart rap bot.

What it does

Rapatronics streamlines the production of raps by significantly reducing the time required to write lyrics, by augmenting the lyrics with crowdsourced raps from other users using the app. To start, the user freestyles into the mic and the app converts the music to text lyrics (which can include slang). Natural Language Processing including sentiment analysis, entity analysis as well as syntactic analysis to provide the user with analytics and evaluation. This data is used and to provide feedback to the user to improve their rap game.

When the user presses suggestions, 5 suggestions will be provided to the user, which match sentiment, topic, rhyme, syntax of previous lines, and salience with respect to to the user's previous rap. These are used in combination to create a fire new line which will make a great addition to the user's previous rap lyrics.

Finally, RapTronics will use audio synthesis to append the suggested line to the user's previous freestyle rap. We believe this will create an almost realistic visualization of the new lyrics, and show the user whether it is something they would actually use in real life.

How we built it

We used Flask and Python as the backend. Python was excellent for this project, as it allowed us to use many libraries for our features. Notable APIs include NLTK (for text analysis, counting syllables), PuyDub (to mix audio and create new soundtracks). As well, we used Google Cloud Platform for speech to text. text to speech, syntactical & entity analysis. Finally, we used Indico API to perform sentiment analysis and some machine learning.

The Android App was written with Android Studio and communicates with the backend through HTTP requests using Realm, Retrofit, ButterKnife, and Dagger.

Challenges I ran into

We found it extremely difficult to integrate with third party APIs and libraries. Almost all the APIs were never used by members of the backend team, which made it a great learning experience.

Accomplishments that I'm proud of

Being able to actually analyze a rap and coming up with an actual lyrics that makes sense.

What I learned

Learned how to set up 3rd Party APIs to use for the app.

What's next for Rapatronics

Allows the user to overlay a beat while they are freestyling. We can provided analytics on how in-sync the beat was with the rhymes, and how good the flow is. Finally, we wish to allow users to vote on their favourite freestyle raps, and provide real feedback.

We can also generate completely new rap lyrics using markov chains. We had an initial implementation, but it is not as useful or funny and as it is less likely to make sense.

Built With

  • android-development-studio
  • flask
  • google-api-speech-to-text
  • google-natural-language-processing-api
  • indico
  • java
  • natural-language-toolkit
  • python
Share this project:

Updates