Skip to content

Full-stack song recognition application with audio fingerprinting and hum to search (QbSH) modules

Notifications You must be signed in to change notification settings

LuffyGT/song-recognition

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pre Requirements

  • ffmpeg (required by librosa to load mp3)
  • nodejs (frontend)
  • MongoDB

Environment Setup

Inside backend/.env:

Edit the default MONGO_URI to your mongodb connection key

MONGO_URI=mongodb://localhost:27017/?readPreference=primary&serverSelectionTimeoutMS=2000&appname=MongoDB%20Compass&directConnection=true&ssl=false
FLASK_ENV=development

Backend

  1. Create conda env (optional)

conda create --name kishikan python=3.8

conda activate kishikan

  1. Install python dependencies (in backend)

Please navigate to backend folder, then

pip install -r requirements.txt

  1. Configure flask (in backend)

export FLASK_APP=app

start the flask using flask run

Frontend

Please navigate to frontend folder, then

yarn install to install dependencies

yarn start to open client

Important Folders Structure

.github
-- postman collection for API testing
backend
-- app/: all code to implement RESTful Flask Server
-- kishikan/: audio fingerprinting module
-- nazo/: query by humming module
frontend: react frontend code in typescript

Demo

Please open backend/audio_fingerprinting.ipynb for audio fingerprinting, and backend/query_by_singing.ipynb for query by humming.

Experiments

If you want to perform experiments, please download the datasets and place them into datasets/:

GTZAN and it's query: https://www.music-ir.org/mirex/wiki/2021:Audio_Fingerprinting

QBSH midi and query: https://www.music-ir.org/mirex/wiki/2021:Query_by_Singing/Humming

Benchmark usage can be found inside jupyter notebooks in backend/

About

Full-stack song recognition application with audio fingerprinting and hum to search (QbSH) modules

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 95.3%
  • Python 2.6%
  • TypeScript 1.6%
  • Other 0.5%