A program that can learn and recognize audio files by fingerprinting them. If one of these sounds are playing nearby, it can recognize it after listening to it for 15-30s even if there is some noise in the background.
Audiophile looks for at the frequencies and time gaps between notes to match. If the original audio file is manipulated in some way (changed pitch or tempo) or is a different recording of the same song (like a live version), it may not not match most of the time! This can be overcome by making it learn all the popular versions of a song.
- Needs ffmpeg to record audio and convert various audio formats to WAV.
- Install pipenv and clone this repository.
- Once inside the project folder, do
pipenv install
To learn all the songs in a folder
pipenv run python src/main.py learnall <folder>
To learn a particular song
pipenv run python src/main.py learn <audio file>
To match a recorded clip with all known songs
pipenv run python src/main.py search <audio file>
To listen to something playing outside and match with all known songs
pipenv run python src/main.py listen <time in seconds> <sound card>
sound card is 0 on most systems.