🔊 Audio Fingerprint Test

Audio Fingerprint Test

A tone nobody hears, processed by your audio stack, measured to three decimal places.

🔎
Reading this signal…
Runs entirely in your browser. Nothing is stored.
-
Result

What this page read

Reading…

🖐️ One vector is not a fingerprint

Nothing on this page identifies you on its own - it describes a class of machine. What makes a browser recognisable is several stable signals at once, which is what the full test measures and scores.

🖐️ Run the full fingerprint test

Audio Fingerprint Test

AudioContext fingerprinting generates a tone at zero volume, runs it through the browser's audio processing graph, and reads the resulting frequency data. You hear nothing and no microphone is involved. What varies between machines is the arithmetic: floating-point behaviour in the audio stack differs subtly across hardware, operating systems and browser builds, and those differences survive into the numbers this page reads back.

Why this one is hard to spoof

Canvas and WebGL can be answered with a lie - return a fixed string, randomise the pixels - without much breaking. Audio is harder, because the values come out of real signal processing that applications depend on being accurate. A browser that randomises them enough to defeat fingerprinting risks affecting audio applications, so fewer browsers do it and fewer extensions try. That makes audio a quieter but more durable signal than the vectors that get more attention.

How this page measures it

The graph is rendered offline rather than played, which matters more than it sounds. Reading a live audio context after a fixed wait does not always return a settled result, and on our own testing it produced a different hash on roughly one run in four with no randomisation involved at all. That noise is indistinguishable from protection, so a test built that way tells some people they are safe when they are not. Offline rendering computes the same graph deterministically, which is what makes the second-pass comparison below mean anything.

Where it sits among the vectors

Audio contributes less entropy than the WebGL renderer string and is not usually decisive on its own. It earns its place in a fingerprint by being stable and by being one of the vectors people rarely address, so it often survives when the more famous ones have been randomised. If canvas comes back randomised here and audio does not, that gap is the useful finding.

Audio Fingerprint Test - FAQ

Common questions about this specific signal.

What is audio fingerprinting?

It is a tracking technique that uses the Web Audio API to process a silent tone and measure the output. Small differences in floating-point behaviour across audio stacks mean the resulting numbers vary between machines while remaining stable on one. Hashing them produces an identifier that needs no cookie and no storage.

Can websites hear me through audio fingerprinting?

No. Nothing is recorded and no microphone is used - using one would require an explicit permission prompt. The technique only measures how your device processes a tone it generates itself, at zero volume, entirely inside the browser. It is a computation, not a recording.

How do I block audio fingerprinting?

Brave randomises the Web Audio output by default, and the Tor Browser restricts the API. Firefox can block it through its resist-fingerprinting mode, though that mode changes enough other behaviour that it is worth understanding before enabling. General-purpose ad blockers usually do not address it, which is why a browser that reports canvas as randomised may still report audio as stable.

Does a VPN affect audio fingerprinting?

No. The measurement happens inside your browser and never crosses the network, so the value is identical with a tunnel up or down. This holds for every vector on these pages: a VPN changes the address your traffic appears to come from, not what your browser tells a site about the machine it is running on.