All fingerprints
Rendering

Speech voices

Text-to-speech voices carry OS-specific names and counts.

Read viaspeechSynthesis.getVoices()

What it is

The speech synthesis API lists the text-to-speech voices installed on the machine: names, languages and whether they are local. Windows ships Microsoft David and Zira, macOS ships Alex, Samantha and a long list of localised voices, Chrome adds its own Google voices on top.

How websites read it

speechSynthesis.getVoices().map((v) => v.name);
// macOS: ["Alex", "Samantha", ...]   Windows: ["Microsoft David", "Microsoft Zira", ...]

getVoices() needs no permission. The list may arrive asynchronously, so pages wait for the voiceschanged event.

Why it identifies you

Voice names spell out the operating system and often its language packs, and the count is a stable secondary identifier — a Mac with 200 voices stays a Mac with 200 voices.

How risk-control systems use it

The names are matched against the claimed OS: Apple voices on a Windows UA, or Microsoft voices on a Mac, contradict the label directly. An empty list on a desktop Chrome is unusual and reads like a stripped-down automation build.

Common mistakes

Forgetting voices while spoofing the OS; an empty list; a list that changes between page loads.

Mango is accepting waitlist registrations. These capabilities describe its first release; client access opens with invitations.

How Mango Browser handles it

Real

The voice list follows the profile OS (Microsoft voices on Windows, Apple voices on macOS).

Check yours

Jump to this signal in your scan results.

Open my results

Related fingerprints