DEV Community

firefrog
firefrog

Posted on

wavio

| Audio Fingerprinting Without the ML Tax
Most audio identification tools today reach for embeddings and neural nets. wavio doesn't.

It's a fast, deterministic acoustic fingerprinting library written in Rust — built on the same peak-based approach as Shazam, with none of the ML overhead. No embeddings, no models, no runtime. Just spectral peaks, combinatorial hashing, and raw speed.

How it works

wavio runs a straightforward DSP pipeline:

pipeline

Each step is deterministic: the same input always produces the same fingerprint. That makes results reproducible and debuggable — no model drift, no version mismatches.

Why it's fast

  • In-memory & on-disk indexing — query thousands of tracks in microseconds
  • Zero unsafe code (#![forbid(unsafe_code)])
  • Optional parallelism via rayon

Benchmarks on synthetic 22,050 Hz audio (release build):

Task Median
Fingerprint a 3-min track 88.6 ms
Index 1,000 tracks 1.04 ms
Query (1,000 lookups) 0.57 µs/query

Use it from Rust, Python, or the CLI

wavio ships as a Rust crate, a Python package (via PyO3/maturin), and a CLI:

wavio-cli index --db ./wavio.db ./music/
wavio-cli query --db ./wavio.db ./clip.wav
Enter fullscreen mode Exit fullscreen mode

Who it's for

If you're building music identification, duplicate detection, or content matching and don't want to carry an ML stack for it, wavio gives you a lean, predictable alternative.

Check it out: github.com/MinLee0210/wavio

Top comments (0)