Generate lyrics with TensorFlow and the Genius API
Generate intriguing lyrics with TensorFlow and an internet connection.
tflyrics
is a Python package that allows you to easily select lyrics of
specific artists from genius.com, and train a deep
neural network to generate text that sounds similar to those lyrics. This
work was inspired from The Unreasonable Effectiveness of Recurrent Neural
Networks and
Text generation with an
RNN.
from tflyrics import Poet, LyricsGenerator
artists = ['Bob Dylan', 'Tim Buckley', 'The Beatles']
gen = LyricsGenerator(artists, per_artist=5)
p = Poet()
p.train_on(gen, n_epochs=10)
poem = p.generate(start_string='Hey ', n_gen_chars=1000)
print(poem)
A LyricsGenerator
object makes it easy for you to create a data pipeline
that feeds from the Genius API directly into a recurrent neural network; aPoet
object is a wrapper around a recurrent neural network.
You can find another, more data-intensive example on
Google Colab.
This example also shows that LyricsGenerator
doesn’t need to wait for all
songs to be downloaded before providing the first training examples.
Note that the Genius API requires you to have an access token. Without
that, tflyrics
won’t be able to get lyrics for you. You can get an access
token for free at docs.genius.com. Once you have
it you can either pass it under the token
argument of a LyricsGenerator
constructor, or store it as en environment variable (with export
GENIUS_ACCESS_TOKEN='<your token here>'
). tflyrics
will detect this
environment variable automatically, if it exists.
You can install this package with pip
:
pip install -q tflyrics
Or, if you want the latest (possibly not stable) version, you can installtflyrics
from source with:
pip install -e git+https://github.com/ggiuffre/tf-lyrics.git#egg=tflyrics