https://github.com/soundhive/cpp-fingerprint-generator
Lib that takes the PCM data of audio and create ginerprints corresponding to it.
https://github.com/soundhive/cpp-fingerprint-generator
audio audio-fingerprint audio-fingerprinting fingerprint
Last synced: about 2 months ago
JSON representation
Lib that takes the PCM data of audio and create ginerprints corresponding to it.
- Host: GitHub
- URL: https://github.com/soundhive/cpp-fingerprint-generator
- Owner: soundhive
- License: apache-2.0
- Created: 2020-06-01T02:37:55.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-04-24T21:24:22.000Z (about 4 years ago)
- Last Synced: 2024-11-18T21:46:45.867Z (8 months ago)
- Topics: audio, audio-fingerprint, audio-fingerprinting, fingerprint
- Language: C++
- Homepage:
- Size: 865 KB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cpp_fingerprint_generator
Library that simplify creation of fingerprints from an audio file.
Give a `mp3` or `wav` file as input, get fingerprints as hash and offset pairs as output in a txt file.
This piece of software relies on [my own wav file decoder](https://github.com/soundhive/cpp-canonical-wav-decoder) to read wav files, [minimp3](https://github.com/lieff/minimp3) to read mp3 files, and the CPP port of [DejaVu](https://github.com/salsowelim/dejavu_cpp_port) to generate the hashes.
When you run it, it will create a `TEMP` directory in which it will dump the PCM files it requires to then generate the fingerprints (I intend to mmake this lib able to run without having to dump a file).
As an output, you will get at the specified output directory a text file containing the prints.
## Compile
```bash
git clone --recurse-submodules https://github.com/soundhive/cpp-fingerprint-generator/tree/master
cd cpp-fingerprint-generator
mkdir build
cd build
cmake ..
cmake--build .
```
## Use```bash
chmod +x cpp_fingerprint_generator
./cpp_fingerprint_generator path/to/input.wav path/to/output_prints.txt
```