demo ยท v139
Availability & Language Matrix
Probe the current on-device Web Speech hooks for language readiness. The lab calls SpeechRecognition.available() with processLocally and quality, installs packs with SpeechRecognition.install(), and then starts a recognizer with processLocally = true.
SpeechRecognitionchecking
processLocallychecking
available()checking
install()checking
Permissions Policychecking
Networkchecking
Probe controls
processLocally = true
Audio and transcript are required to stay on this device. Missing packs return
downloadable, downloading, or a language-not-supported error when recognition starts.
processLocally = false
The user agent can use either local or service-based recognition. This may work when no local language pack is installed, but the page cannot promise local privacy.
Language matrix
| Language | Local pack status | Remote-allowed status | Actions |
|---|
Live result
Choose a language, then probe availability. Recognition results and install outcomes appear here.
Current API pattern
const Recognition = window.SpeechRecognition;
const recognition = new Recognition();
recognition.lang = "en-US";
recognition.processLocally = true;
const status = await Recognition.available({
langs: ["en-US"],
processLocally: true,
quality: "dictation",
});
if (status === "downloadable" || status === "downloading") {
await Recognition.install({
langs: ["en-US"],
processLocally: true,
quality: "dictation",
});
}
recognition.onresult = (event) => {
render(event.results[0][0].transcript);
};
recognition.start();