robbiebarrat / rapping-neural-network

Rap song writing recurrent neural network trained on Kanye West's entire discography

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Feedback: Great work, heres more lyrics for you

korymath opened this issue · comments

commented

Congrats on the great project and nice work.

Here is a nice dataset of Kanye lyrics which may help you
https://www.kaggle.com/viccalexander/kanyewestverses

Fantastic work so far, and looking forward to seeing how this progresses.

commented

Also, once you have 6000 lines, you may need to start thinking about performance for how you handle data structure operations in rhymeindex()

Thank you so much - the rap it made with this turned out REALLY good - I haven't tried such a large dataset before.

As for performance, I don't see it being a huge problem as it only took my laptop (first gen i5 processor) about 6 or 7 minutes to write a rap. Training could be another issue though... I'll make sure that if there are issues with this i'll redo how rhymeindex() handles the operations.

commented

Can you share the rap?!

Sure! Here it is:
http://pastebin.com/raw/wGsf515H

Did you use the same beat?

I've ran it through speechtest.py and it seems alright but i haven't recorded it. I did use the same beat as i used in my example.

Did you use all 6000 lines?

no, it used 278. It doesn't use too many because if you have so many lines, it is much easier finding a small portion of them that combine into a song rather than rearranging ALL of them to rhyme, etc. The program has a limit (I believe a third of the lyric length is the cutoff -- that or ~100 lines.) The reason this exceeded the 100 lines limit is because it was all one "verse" (it is one single output of the nn), and the check for length is after each verse is written.

Any ideas on how to set the voice to the rhythm? or to calculate the tempo from the beat?

Usually it's just about ~4 tries of trial and error. In speechtest.py you will be adjusting the variable "rate". I have yet to find a link between "rate" and bpm of a song.

Also, does your software depend on AABB rhyme schemes?

No - the neural network learns the rhyme schemes. You could train it on a rapper that uses some obscure rhyme scheme, and it would start rhyming like that. It learns - there are no hard rules that it follows when arranging the lines, really.