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();

    see also