An audio fingerprint doesn't use your microphone or play any sound. A script asks the browser to generate a tone and run it through audio effects, entirely in memory, and then reads the resulting numbers. Small differences in how browsers and systems do that math make the result vary between computers, so it can help recognize a browser. Researchers at Princeton found this technique in use on real websites in their 2016 study of one million sites. This audio fingerprint test shows your value and checks whether it behaves like an unmodified browser.
How the test works
The test uses an OfflineAudioContext, which renders sound into memory as fast as possible instead of playing it through your speakers:
- A triangle-wave oscillator generates a 10,000 Hz tone.
- The tone passes through a dynamics compressor, an effect that evens out loud and quiet parts.
- The browser renders 5,000 samples at 44,100 samples per second.
- The page adds up the absolute values of the last 500 samples and hashes the same samples with SHA-256.
- It runs everything a second time and compares the two results.
This is the same kind of calculation fingerprinting scripts use. Nothing leaves your browser.
Reading your results
Audio fingerprint value
The sum of 500 samples, shown with 12 decimals. The digits far after the decimal point are where browsers and systems differ, because each implementation computes the compressor and the oscillator slightly differently.
Audio hash
A short form of the SHA-256 hash of the same samples. It's another way to compare results: two browsers with the same hash produced exactly the same numbers.
Same result twice
The same calculation run twice in one page should give exactly the same numbers. If it doesn't, something changes the output on every run, and that is easy for a script to notice. The row is yellow in that case.
Why the value differs between computers
The Web Audio API is specified by the W3C, but the specification leaves room for differences in floating-point math and in how effects such as the compressor are implemented. Browser engines, their versions, the operating system and the processor can all change the last digits. That's why the value is the same on many computers with the same browser and system, and different across browsers and platforms. On its own it's a weak identifier; combined with canvas, WebGL, fonts and other details it adds information.
Noise, and what testers look for
Some browsers change audio results on purpose. Brave adds small changes to canvas, WebGL and Web Audio output with a value fixed per site and per session, so the same site sees a stable value during a session. Apple announced advanced fingerprinting protection for Safari Private Browsing in 2023. Antidetect browsers can add noise per profile.
What matters to testers is how believable the result is:
- Stable within a session or profile. A value that changes between two runs on the same page shows that something is randomizing it.
- Plausible for the browser. A value that no real browser of the claimed type and version produces can stand out more than the real one.
- Consistent with the rest. Audio is one signal among many. A changed audio value doesn't help if the time zone, languages and IP address disagree. Check those with the browser fingerprint test.
What to do about problems
- Different result twice. Look for a browser extension that randomizes fingerprints on every call, and turn it off for the sites you use.
- Web Audio not available. Some privacy settings switch the Web Audio API off. Many websites with sound, video calls or games need it.
- A value that changes after every browser restart. In privacy browsers that's expected. In an antidetect browser profile it usually means the profile is set to get a new fingerprint on every start.
Limits of this test
This test runs one kind of audio calculation. Fingerprinting scripts may use other oscillator types, frequencies or effects, and they combine the result with many other signals. The test doesn't compare your value with other visitors, so it can't tell you how common it is.
Audio in Multime
Each Multime profile has a seed. With audio noise on, the seed fixes the noise, so the profile gives the same audio value every time it opens (unless you choose a new fingerprint on every start), and different profiles give different values. Open this page inside a Multime profile to check it, together with the WebGL fingerprint test and the canvas fingerprint test.