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!
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!
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.
- Spotify API
- YouTube Search API
- YouTube Transcript API
- SF Speech Recognizer
- Google Teachable Machine
- Python Levenshtein
Josh Wong Developer |
Christian Honein Developer |
Wesley Luu Developer |
Wilson Szeto Developer |
- 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
orpip3
- Homebrew
- required for calling stdbuf (coreutils)
- youtube-transcript-api
- youtube-search
- fuzzywuzzy
- python-Levenshtein
- coreutils
pip3 install youtube-transcript-api youtube-search fuzzywuzzy python-Levenshtein
brew install coreutils
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
- Set up a new Spotify Developer Project
- Set Redirect URI: https://github.com/ObjectJosh and
Save
Copy
Client ID andPaste
into first line ofstore.txt
- Click
SHOW CLIENT SECRET
Copy
Client Secret andPaste
into second line ofstore.txt
- Save the file (
store.txt
)
In terminal, make sure you are in the /Singify
directory and:
python3 game.py
- (or
python
orpy
)
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
orpy
)