Nowadays hip-hop is in trend among youth and everyone wants to try making raps. One thing that they forget is the flow, or rhyme which makes it a form of music; without the flow, rap looks like a normal text.
So we decieded to create a web-app which is easily accessible to everyone on any device. The web-app we made, called Aapka Apna HipHop uses an LSTM model to generate text, i.e. rap word by word. This tool will help budding hip-hop artists to generate raps and learn about flow, and rhyme and get better at writing their own raps. We as hip-hop lovers could only contribute this much to the genre.
The model is trained on Eminem's, Drake's & Kanye's songs as of now so it generates raps only in their flow. We plan to add more artists to our list and grow our app to a larger scale in the near future.
We thought that the project was done but while deploying on Heroku, I got a slug error i.e. my deployment size was 700 MB and Heroku had a limit of 300 MB. So I went on removing dependencies from the requirements.txt file and redeployed it. The issue was Heroku doesn’t support Tensorflow GPU so I had to change tensorflow imports to tensorflow-cpu imports and the deployment was done.
While using TensorflowJS for the Kanye's prediction model, we faced a lot of difficulties converting our tokenizer of keras and numpy arrays to json and tensor arrays respectively. We went through stackoverflow, github issues and the mentor Dmitrii helped us a lot. Model.predict() in TFJS gave us error repeatedly depending on the shape of our input and it's expected input shape. We wasted our 1 full day to figure this out.
Discussion