{"id":13808366,"url":"https://github.com/salsowelim/dejavu_cpp_port","last_synced_at":"2026-01-17T04:02:07.742Z","repository":{"id":144332018,"uuid":"186439967","full_name":"salsowelim/dejavu_cpp_port","owner":"salsowelim","description":"c++ implementation of the fingerprinting algorithm suggested in the dejavu audio fingerprinting project ","archived":false,"fork":false,"pushed_at":"2020-07-17T15:16:11.000Z","size":150,"stargazers_count":54,"open_issues_count":3,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-19T00:44:21.385Z","etag":null,"topics":["audio-fingerprinting","cplusplus","signal-processing","spectrogram"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/salsowelim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-13T14:49:45.000Z","updated_at":"2024-06-09T05:28:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"bd7d9f7f-6fdf-47ac-8443-69ad4c7e7d4f","html_url":"https://github.com/salsowelim/dejavu_cpp_port","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/salsowelim/dejavu_cpp_port","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salsowelim%2Fdejavu_cpp_port","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salsowelim%2Fdejavu_cpp_port/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salsowelim%2Fdejavu_cpp_port/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salsowelim%2Fdejavu_cpp_port/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/salsowelim","download_url":"https://codeload.github.com/salsowelim/dejavu_cpp_port/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salsowelim%2Fdejavu_cpp_port/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28494153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T02:39:23.645Z","status":"ssl_error","status_checked_at":"2026-01-17T02:34:19.649Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-fingerprinting","cplusplus","signal-processing","spectrogram"],"created_at":"2024-08-04T01:01:41.070Z","updated_at":"2026-01-17T04:02:07.711Z","avatar_url":"https://github.com/salsowelim.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"\nDejavu c++ port (audio fingerprinting)\n==========\n\nThis is a c++ implementation of the fingerprinting algorithm suggested in the dejavu audio fingerprinting project (https://github.com/worldveil/dejavu specifically: the fingerprint.py file). [link on how dejavu works](http://willdrevo.com/fingerprinting-and-audio-recognition-with-python/)\n\n## Prerequisites:\n- opencv (= 3.4.5)\n- boost library (= 1.60)\n- c++14\n- for demo only: ffmpeg\n\nThe \"fingerprint\" function will accept array of floats as an input (raw audio pcm data). It will returns a list of hashes with offsets (as a json string).\n\n## Why the c++ port?\n1. You can run c++ code on iOS or Android (tested it myself, works Flawlessly).\n2. In theory: performance boost. In practice: didn't see much difference.\n\n## Demo\nThe main function will load a test mp3 file, uncompressed it using ffmpeg (as a mono channel, 22050 sample rate), feed it to fingerprint function, then prints the list of hashes-offsets.  \n\n## Update 2020: Include it in react-native/iOS/Android\nNow a sample code is provided in a [different repository](https://github.com/salsowelim/mobileAfp) that demonstrates how to include this function in a react-native project. [Blog post](http://en.suliman.ws/posts/mafp) is available that explains how to do it. \n## Final notes\n- I wrote this code initially for prototype purposes. while I have tested the correctness of the algorithm output, I didn't optimise the code to c++ best standards. If you want to improve the code in this manner I will gladly accept pull requests.\n- Performance (speed wise) is really slow when the audio input is large. However on small audio files (\u003c10 seconds) it is similar or better than python implementation. For now, I'm not interested to look after this issue. If you have a fix, PR.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalsowelim%2Fdejavu_cpp_port","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsalsowelim%2Fdejavu_cpp_port","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalsowelim%2Fdejavu_cpp_port/lists"}