sudo apt update && sudo apt install -y
build-essential cmake pkg-config
libfftw3-dev
python3 python3-dev python3-pip
python3 -m pip install --user numpy matplotlib
A song recognition application. Based on audio processing and working within the frequency domain. This application is a mere attempt to re create the main idea behind Shazam, provide a FAST hash based song matching and do so also pointing out the exact piece of played song.
In more detail here is how the algorithm is implemented from song up loading to the final decision of a song.
In the code it is possible to allow spectrogram creation to see how sound looks plotted in a frequency domain. Also in the main root of the project after running a song recognition algorithm a sound file will appear - a reconstruction of the inputted audio after the lowpass filter and downsampling were applied!
When running the recognition function you will see such logs in the console:

The audio gets filtered, turned to mono, downsampled, and turned into a spectrogram and a bunch of fingerprints.
Then you will see a print out of the matching function. That filters out songs where a lot of complete
TGZ's are missing. And then it will count the most appearing offset in comparison to db matches.
Lastly it prints out the decision.



