Coursework 2 : Music Informatics (2021) Queen Mary University of London
An implementation and evaluation of an audio fingerprinting and identification system using librosa and 2D-array peak picking algorithm.
This system by default uses the GTZAN datasets for recorded audio (for fingerprinting) 1 and query audio (for identification) 2.
- python3
- librosa
- numpy
- skimage
- scipy
- hashlib
- matplotlib
To run both the fingerprinter and the identification against the two default datasets:
$ make print-and-id
The program is also callable from a python environment as follows:
> fingerprintBuilder(/path/to/database/,/path/to/fingerprints/)
> audioIdentification(/path/to/queryset/,/path/to/fingerprints/,/path/to/output.txt)
To only invoke the fingerprint builder:
$ make fingerprinter
Or
> fingerprintBuilder(/path/to/database/,/path/to/fingerprints/)
To only invoke the audio identification program:
$ make shazam
Or
> audioIdentification(/path/to/database/,/path/to/fingerprints/)
NOTE: The default location for the database recordings is './database_recordings' and the default location for query recordings is'./query_recordings' niether of which is included in this repo.
To evaluate a single run you must have your estimates and your ground truth sequences in local files and the evaluator can be evoked by running:
$ make eval-one BEAT_ESTIMATE=<path-to-estimate-sequence> BEAT_GROUND_TRUTH=<path-to-ground-truth>
To evaluate the outputs
$ make evaluate
Or
> evaluate.py