Skip to content

Shazam audio fingerprinting signature generator as JNI library.

License

Notifications You must be signed in to change notification settings

alexmercerind/shazam-signature-jni

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shazam-signature-jni

Shazam audio fingerprinting signature generator as JNI library.

The implementation is extracted from SongRec by @marin-m. All of the research credit goes to them. The original project page provides details about the algorithm & its working.

Build

  1. Clone the repository.
git clone https://github.com/alexmercerind/shazam-signature-jni.git
cd shazam-signature-generator
  1. Create .cargo/config to specify the Android NDK location. e.g.
[target.aarch64-linux-android]
ar = "$(ANDROID_NDK)/bin/llvm-ar"
linker = "$(ANDROID_NDK)/bin/aarch64-linux-android21-clang"

[target.armv7-linux-androideabi]
ar = "$(ANDROID_NDK)/bin/llvm-ar"
linker = "$(ANDROID_NDK)/bin/armv7a-linux-androideabi21-clang"

[target.i686-linux-android]
ar = "$(ANDROID_NDK)/bin/llvm-ar"
linker = "$(ANDROID_NDK)/bin/i686-linux-android21-clang"

[target.x86_64-linux-android]
ar = "$(ANDROID_NDK)/bin/llvm-ar"
linker = "$(ANDROID_NDK)/bin/x86_64-linux-android21-clang"
  1. Add Android targets for Rust.
rustup target add armv7-linux-androideabi
rustup target add i686-linux-android
rustup target add aarch64-linux-android
rustup target add x86_64-linux-android
  1. Build for each target.
cargo build --target TARGET --release

Legal

This software is released under the GNU GPL v3 license. Please note that in certain countries located outside of the European Union, especially the United States, software patents may apply.

About

Shazam audio fingerprinting signature generator as JNI library.

Resources

License

Stars

Watchers

Forks

Languages

  • Rust 100.0%