Inspirational lyrics can be difficult to write. However, Shower Thoughts generates lyrics of your choice at one click of a button. This aids songwriters in creating lyrics that are the best for their song of any topic. Writing lyrics has never been so easy.

Be the lyrics you want to see in the shower. Never take a million showers a day to generate song ideas. No longer will you be a shriveled, shivering soul.

What it does

  • Generates completely new lyrics based off a user-given topic.
  • Uses data from Genius (a song lyrics website) to find the deeper meaning of song lyrics in order to generate meaningful songs.
  • Uses Markov chains to create new text based off previous popular songs.
  • Searches for annotations that are reliable and authentic.

How we built it

  • Used Genius API (an online website that contains song lyrics with annotations to explain each line) in order to obtain 5,000 annotation data points
  • Datapoints were analyzed to identify key words and concepts using the IBM Watson API
  • This allowed for one to find all song lines related with a specific topic (the “deeper meaning” of the song was used as opposed to the “literal meaning”)
  • Thus, it was possible to create a Markov chain to model the text data, allowing the generation of new text (a Markov chain contained words as nodes with links to other words having varying probabilities depending on the data analyzed)

Challenges we ran into

  • The Genius and IBM Watson APIs had rate limits and took relatively a long time to run. The obtaining of song lyrics with annotations took around an hour and the subsequent analysis took around thirty minutes.
  • Integrating front-end web interface with the Python backend. In the end, we used Flask in order to integrate our back-end and front-end.
  • The WiFi was relatively slow at times which caused difficulties when obtaining song lines with the Genius API and analyzing song lines with the Watson API

Accomplishments that we're proud of

  • Successfully using Markov chains to generate sensible lyrics that flow reasonably well
  • Used multi-threading to speed up the obtaining and analysis of song lines
  • Eating over 20 brownies over the course of the hackathon

What we learned

  • Markov chains can be used to generate reasonable new text when given a previous text of a relatively large size.
  • Some songs are very weird and abstract. Numerous annotations opened our eyes to another meaning of the songs.
  • Coding while being sleep-deprived is a bad idea.

What's next for Shower Thoughts

  • Potentially create songs based off a specific artist to emulate their style. Such an application would allow for people who love a specific artist to create/listen to music similar to their style before waiting for a new album/track.
  • Add an accounts system to allow for the saving of generated songs
  • Create a platform to allow people to vote on all songs that have been generated, allowing for the identification of popular songs.

Shower Thoughts

  • When you drink alcohol you are just borrowing happiness from tomorrow.
  • When you say “forward” or “back”, your lips move in those directions.
  • Teenagers drive like they have limited time, and old people drive like they have all the time in the world.

Proposed Domains


Built With

Share this project: