Speech
The speech component reads the list of voices exposed by the browser's Speech Synthesis API, serialises a stable signature for each one (voiceURI, name, lang, localService, default), sorts the signatures, and hashes the result.
The set of installed text-to-speech voices is highly OS-dependent, which makes this a strong stabilising signal across browsers running on the same machine.
The component waits up to ~800 ms for voices to load (some browsers populate them asynchronously via the voiceschanged event) before producing the result. On browsers without the API, it returns supported: false.
The
speechcomponent is excluded by default on Brave and Firefox via thealwaysstabilisation rule, because those browsers vary the voice list across sessions.
Example
"speech": {
"details": {
"voiceCount": 24,
"voicesHash": "..."
},
"hash": "..."
}
Code
Check out the implementation