- ffmpeg (required by librosa to load mp3)
- nodejs (frontend)
- MongoDB
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
- Create conda env (optional)
conda create --name kishikan python=3.8
conda activate kishikan
- Install python dependencies (in
backend
)
Please navigate to backend
folder, then
pip install -r requirements.txt
- 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
.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
Please open backend/audio_fingerprinting.ipynb
for audio fingerprinting, and backend/query_by_singing.ipynb
for query by humming.
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/