Skip to content
Audio fingerprint

Audio fingerprint test — silent tracking, no mic

The audio surface in any browser fingerprint test is the surprise. No microphone permission is requested, no sound plays, yet the result is one of the most reliable cross-browser identifiers available — because the floating-point math behind audio processing differs subtly across CPU + JavaScript engine combinations.

Live test

This card runs only the audio fingerprint probe. To run all six fingerprint surfaces at once, use the full browser fingerprint test.

Audio fingerprint
measuring…

OfflineAudioContext + DynamicsCompressor produces a tiny floating-point sum that varies by ~12 bits across hardware. No mic permission required.

Block this surface in your browser

Browser Leaks Fingerprint Shield is a free Chrome extension that spoofs canvas, WebGL, plugins, and WebRTC out of the box. Install it, refresh this page, and watch the hash above change.

Add to Chrome — Free
What is an audio fingerprint?

What is an audio fingerprint?

An audio fingerprint is a tiny floating-point sum produced by running a synthetic signal through an OfflineAudioContext with a DynamicsCompressor in the chain. Because compressors involve nonlinear math and the result depends on the underlying CPU's floating-point precision plus the V8/SpiderMonkey audio implementation, the sum varies between machines by ~12 bits of entropy.

Audio fingerprinting was popularized in academic research circa 2016 and is now in every major commercial fingerprint vendor. It runs in milliseconds, requires no permissions, plays no sound, and works in incognito.

How the audio test works

How the audio test works

The test creates a 1-second 44.1 kHz OfflineAudioContext, attaches a triangle wave oscillator at 10 kHz, routes it through a DynamicsCompressor with specific threshold / knee / ratio / attack / release parameters, calls startRendering(), and then sums the absolute values of samples 4500–5000 from the rendered buffer. That floating-point sum, formatted to 8 decimal places, is the fingerprint.

Run the test twice — same number. Run it on a friend's machine — different number. Combined with your canvas and WebGL hashes, the audio sum becomes a powerful tracking signal.

How to block audio fingerprinting

How to block audio fingerprinting

The honest defense is to perturb a small number of samples returned by AudioBuffer.prototype.getChannelData with multiplicative noise so faint it's inaudible — but enough to scramble the fingerprint sum. Naive defenses that add a constant offset to every Nth sample produce a periodic spike pattern that's itself detectable.

Browser Leaks Fingerprint Shield applies seeded multiplicative jitter to a sparse set of samples (~1 in 1024). The audio sounds identical, but the audio fingerprint hash changes on every page load. Install it and refresh this page.

FAQ

Audio fingerprint questions

Does the audio test play any sound?
No. OfflineAudioContext renders the audio signal silently to a buffer in memory; nothing reaches your speakers. You can run this test in a quiet room with no audio device connected.
Does the audio fingerprint test ask for microphone permission?
No microphone permission is needed. The test generates its own synthetic signal — it never accesses your input devices. That is part of why audio fingerprinting is dangerous: it works in zero-permission contexts.
Why is the audio fingerprint stable across reloads?
The synthetic signal and the compressor settings are deterministic. The only source of variation between machines is the CPU + audio-stack floating-point behavior, which itself is stable per machine.
Does muting my browser change the audio fingerprint?
No. The fingerprint is computed before the buffer would have been played. Muting only affects the output stage; it has zero effect on the computed sum.

Run the full browser fingerprint test.

See your composite hash across all six surfaces — canvas, WebGL, audio, WebRTC, Client Hints, and User-Agent — in one click.

Open the browser fingerprint test →