Git Product home page Git Product logo

objectjosh / singify Goto Github PK

View Code? Open in Web Editor NEW
10.0 1.0 1.0 105 KB

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

License: MIT License

Python 66.50% JavaScript 1.81% HTML 24.44% CSS 1.52% Swift 5.73%
spotify-web-api spotify-api youtube-transcript-api youtube-search-api python-levenshtein fuzzywuzzy python3 python sfspeechrecognizer google-teachable-machine

singify's Introduction


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)

singify's People

Contributors

chonein avatar objectjosh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

layanohateyou

singify's Issues

store folder

Hi. Pretty new to this kind of stuff. Where do I put the 'store' folder? When I paste the URL into the terminal it says No client id found and No client secret found but I have them in store.txt.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.