Skip to content

A "finish the lyrics" game using Spotify, YouTube Transcript, and YouTube Search APIs, coupled with speech recognition and visual machine learning.

License

Notifications You must be signed in to change notification settings

ObjectJosh/Singify

Repository files navigation


Singify

Introducing Singify, the party game! Challenge your friend to who knows songs better. Play random songs from your very own Spotify playlist and duel friends to see who can finish the lyrics first!

RE: SLO Hacks Winner GitHub language count Github line count GitHub repo size


First place winner of RE: SLO Hacks Hackathon

Devpost Submission: Singify



About

How to Play

A two-player game for you and your friends! After telling Singify which playlist you would like to play from, it will choose a random song and start playing a random part of the song for a few seconds, then stop it. Once the song stops, Singify uses visual artificial intelligence to detect who raised their hand first, and allow them to finish the lyrics. If the player gets it wrong, it's the next player's turn to give it a try. Once the point is given, Singify plays the next song. See who is the lyrical genius!


Description

We used machine learning to detect human poses for raising hands, which we trained using our own recorded pose data. A pose uses a body's position in a live camera feed to set skeletal landmark points, which we used to recognize if your hand is up or not. We used speech recognition to take user voice input and parse the speech through pattern matching, and detect matches with the corresponding song lyrics.


Tools and Dependencies

  • Spotify API
  • YouTube Search API
  • YouTube Transcript API
  • SF Speech Recognizer
  • Google Teachable Machine
  • Python Levenshtein

Our Team

Josh Wong
Developer
Christian Honein
Developer
Wesley Luu
Developer
Wilson Szeto
Developer


Getting Started

Requirements

  • MacOS
    • We use SFSpeechRecognizer, which is limited to MacOS and iOS, but we are in the works of Windows compatability
  • Spotify Premium
    • (this is essential, as you can't perform functional features of this app with a Spotify Free Account)
  • pip or pip3
  • Homebrew
    • required for calling stdbuf (coreutils)

Installing Dependencies

  • youtube-transcript-api
  • youtube-search
  • fuzzywuzzy
  • python-Levenshtein
  • coreutils
pip3 install youtube-transcript-api youtube-search fuzzywuzzy python-Levenshtein
brew install coreutils

Run the App

git clone https://github.com/ObjectJosh/Singify.git

Install Dependencies (see above)

cd Singify

Make folder named store and create a blank store.txt file in it

Setting up Spotify API Authorization:

In terminal, make sure you are in the /Singify directory and:

python3 game.py
  • (or python or py)

A page should automatically open in the browser. Copy that URL and Paste into current terminal

Upon success, all further runs of the program can be started using:

python3 game.py
  • (or python or py)

About

A "finish the lyrics" game using Spotify, YouTube Transcript, and YouTube Search APIs, coupled with speech recognition and visual machine learning.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published