Most sound identification apps uses fast fourier transform to generate hashes from a sound. These hashes are stored in a huge catalog of audio fingerprints, and when a user tags a song for a few seconds, the app generates their audio fingerprint and seek for a match in the database. The result: «I think that you’re listening to X«.
SIGID (Signal Identification) is a strange hobbie. A lot of people (including myself) are constantly searching for radio signals, trying to identify them through example sounds and waterfall images using software defined radio (RTLSDR, Airspy, SDRPlay, HackRF, etc.).
So first I have downloaded all audio samples from Signal Identification Wiki database and generated a SQLite database for the python script. Listening for about 5-10 seconds, the script can now identify a lot of known signals (about 350)! In this article you can found a direct link to download my database and save potential time and problems.
How can I do the same?
- Install python, pip and dependencies:
sudo apt-get install python-tk ffmpeg portaudio19-dev python-pyaudio python-pip sudo pip install matplotlib termcolor scipy pydub PyAudio
- Clone and set up SQLite database:
git clone https://github.com/baliksjosay/audio_recogition_system cd audio_recognition_system make clean reset
- Download my generated hash database of Sigidwiki:
- Unzip file in /db/ directory.
- Test the script! Two ways:
- Via microphone/virtual cable (5 seconds):
python recognize-from-microphone.py -s 5
- Vía saved audio file (Update: we are all having troubles with this option):
python recognize-from-file.py sampleaudiofile.mp3
PS. – Doesn’t work? Think about demodulation. The same signal sounds pretty different from, i. ex. AM to FM. Some known signals (CW, FM broadcast…) may fail.
PS.2 – Update 4/2/2020. I’ve submitted my project and Rtl-sdr.com blog published a review 😀
PS.3 – Update. Some users reported problems using the «recognize-from-file.py», but no problems with «recognize-from-microphone.py». If you need to work only and exclusively with «from file» option, please contact with the author of the script (and please, share with us your conclusions!). Thank you!
PS.3 – Update 12/2/2020. Dan Maloney wrote a review on Hackaday 😀
Copyright, 2020. José Carlos Rueda, abogado.