Skip to content

AhadKhan98/Flyrics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Flyrics - Lyrics On The Fly

Did you ever want to sing along to a song but don't know the lyrics?
Tired of going through the tedious process of searching for multiple sites to find the right lyrics?

We have a solution!

Flyrics uses Artifical Intelligence and Machine Learning to generate lyrics for a song in a matter of minutes.
No need to search online databases just to find out the lyrics to a song.
Check out the project details below in order to learn how flyrics works, and get started right away!

Report Bug · Submit Feature


How it Works

Flyrics uses an Artifical Intelligence and a Machine Language approach to generate lyrics on the fly. The project is divided into a backend (python & flask) and a frontend (react native). The user is able to either record a sample of a song, or upload an already existing file in the frontend. The frontend then communicates with the flask server in the backend which is responsible for all of the processing. This processing includes the usage of a python library spleeter which uses a trained model to separate the vocals from the song that was inputted. The vocals are then slowed down in order to increase speech recognition accuracy. The slowed file is passed on to Google's Speech-to-Text API which handles the conversion of the vocals into text. The result is a JSON object which is passed back to the frontend. Finally, the result is displayed in the frontend and the files that were created in the backend are deleted to save disk space.

Getting Started

The process of getting started is twofold, and is described below.

Cloning The Repo

  1. Make sure you have git installed on your computer.
  2. Run the following command to clone the repo: git clone https://github.com/AhadKhan98/Flyrics.git

Setting Up FFmpeg

  1. Flyrics uses a library that is dependent on an external audio tool FFmpeg.
  2. Please refer to their instructions on setting it up. Downnload FFmpeg

Firing Up The Backend Server

  1. Browse into the flask-backend folder.
  2. Make sure you have python3 and pip installed.
  3. Install dependencies using the following command: pip install -r requirements.txt OR pip3 install -r requirements.txt
  4. Run the following command to start the server: python main.py OR python3 main.py
  5. If you see a message like the one below, you have successfully started the backend server.

backend success

Running The Frontend App

  1. Browse into the frontend folder.
  2. Make sure you have Node and NPM installed.
  3. Install dependencies using the following command: npm install
  4. Once dependencies are installed, start the metro bundler using react-native start.
  5. Start the emulator using react-native run-android or if for iOS react-native run-ios.
  6. If on windows, use npx as prefix before commands.
  7. If everything is set up correctly, you'll see android or iOS emulator depending on the command with App working.

NOTE: Make sure that you have Android Studio or iOS emulator all set up before hand. For detailed instructions to set up React Native Development environment, read React Native Documentation.

Contributing

We would absolutely love for you to help us in making Flyrics better by contributing to our project. Head to the Contributors page to get started right away!

Code of Conduct

We promote an open and a welcoming environment in this community. We pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. Learn more about our Code of Conduct.

App UI

Screenshot 1 Screenshot 2 Screenshot 3

Screenshot 4 Screenshot 5 Screenshot 6

Video Demo

Watch our demo on YouTube

License

MIT @ MLH Fellowship 2020

Made with ❤ by Ahad Zai and Saurabh Kumar Suryan during MLH Fellowship Explorer Sprint 3 (Fall 2020)