/AudioFingerprint

An audio search algorithm that can recognise any audio clip in it's database by listening to 5 seconds recording

Primary LanguagePython

Fingerprint audio files & identify what's playing

This is an audio search algorithm that can recognise any audio clip in it's database by listening to a 5 seconds recording.

For Ubuntu

Install following additional requirements if installing requirements.txt raises an error Installing portaudio may raise an error try $ sudo apt-get install portaudio19-dev Also install tkinter and ffmpeg $ sudo apt-get install python3-tk $ sudo apt install ffmpeg

For Windows

Support for windows is limited and may not work reliably Install following additional requirements before However the app stills works reliably Installing portaudio requires Visual Sudio and Visual C++ 14.0 or higher ffmpeg can be downloaded from it's official website

Since command prompt does not support coloured output most of the text will be garbled

How to set up

  1. Run $ make clean reset to clean & init database struct
  2. Run $ make tests to make sure that everything is properly configurated
  3. Copy some .mp3 audio files into mp3/ directory
  4. Run $ make collect to analyze audio files & fill your db with hashes
  5. Start play any of audio file (from any source) from mp3/ directory, and run (parallely) $ make listen5 for recording 5 seconds.

How to remove specfic entry

  • To remove a specific song & related hash from db

    $ python sql-execute.py -q "DELETE FROM songs WHERE id = 6;"
    $ python sql-execute.py -q "DELETE FROM fingerprints WHERE song_fk = 6;"

Thanks to