SpeechRecognition: install() statische Methode
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die install() statische Methode der Web Speech API installiert die erforderlichen Sprachpakete für die lokale Spracherkennung in den angegebenen Sprachen.
Um zu überprüfen, ob die Sprachpakete bereits verfügbar sind, verwenden Sie die SpeechRecognition.available() Methode.
Der Zugriff auf die install() Methode wird durch die on-device-speech-recognition Permissions-Policy Direktive gesteuert. Insbesondere wenn eine definierte Richtlinie die Nutzung blockiert, schlagen jegliche Versuche, die Methode aufzurufen, fehl.
Syntax
install(options)
Parameter
options-
Ein Objekt, das Optionen für die Installation spezifiziert. Mögliche Eigenschaften umfassen:
langs-
Ein Array mit einer oder mehreren Zeichenfolgen, die BCP 47 Sprach-Tags enthalten. Jedes repräsentiert eine Sprache, für die Sie das Sprachpaket installieren möchten.
Rückgabewert
Ein Promise, das mit einem boolean Wert aufgelöst wird, der angibt, ob das Sprachpaket erfolgreich installiert wurde. Die Bedingungen, die zu jedem Rückgabewert führen, sind wie folgt:
true-
Alle Installationsversuche für die angeforderten Sprachen waren erfolgreich oder die Sprachen waren bereits installiert.
false-
Eine oder mehrere der angeforderten Sprachen werden nicht unterstützt, ein unterstütztes Sprachpaket konnte nicht installiert werden oder ein leeres Array wurde für die
langsEigenschaft übergeben.
Ausnahmen
InvalidStateErrorDOMException-
Das aktuelle Dokument ist nicht vollständig aktiv.
SyntaxErrorDOMException-
Eine oder mehrere der in
langsangegebenen Zeichenfolgen ist kein gültiges BCP 47 Sprach-Tag.
Beispiele
>Prüfung der lokalen Verfügbarkeit und Installation von Sprachpaketen
Damit die lokale Spracherkennung funktioniert, muss der Browser ein Sprachpaket für die Sprache installiert haben, die Sie erkennen möchten. Wenn Sie die start() Methode aufrufen, nachdem Sie processLocally = true angegeben haben, aber das richtige Sprachpaket nicht installiert ist, schlägt der Funktionsaufruf mit einem language-not-supported Fehler fehl.
Um das richtige Sprachpaket zu installieren, folgen Sie diesen zwei Schritten:
- Überprüfen Sie, ob das Sprachpaket auf dem Computer des Benutzers verfügbar ist, indem Sie die
SpeechRecognition.available()Methode verwenden. - Installieren Sie das Sprachpaket, wenn es nicht verfügbar ist, mit der
install()Methode.
Diese Schritte werden im folgenden Code-Snippet behandelt:
startBtn.addEventListener("click", () => {
// check availability of target language
SpeechRecognition.available({ langs: ["en-US"], processLocally: true }).then(
(result) => {
if (result === "unavailable") {
diagnostic.textContent = `en-US not available to download at this time. Sorry!`;
} else if (result === "available") {
recognition.start();
console.log("Ready to receive a color command.");
} else {
diagnostic.textContent = `en-US language pack downloading`;
SpeechRecognition.install({
langs: ["en-US"],
processLocally: true,
}).then((result) => {
if (result) {
diagnostic.textContent = `en-US language pack downloaded. Try again.`;
} else {
diagnostic.textContent = `en-US language pack failed to download. Try again later.`;
}
});
}
},
);
});
Zuerst führen wir die available() Methode aus, die für eine Sprache (langs: ["en-US"]) die Verfügbarkeit prüft und processLocally: true angibt. Wir testen drei verschiedene Möglichkeiten des Rückgabewerts:
- Ist der zurückgegebene Wert
unavailable, bedeutet das, dass kein geeignetes Sprachpaket zum Herunterladen verfügbar ist. Wir geben auch eine entsprechende Nachricht aus. - Ist der zurückgegebene Wert
available, bedeutet das, dass das Sprachpaket lokal verfügbar ist, sodass die Erkennung beginnen kann. In diesem Fall führen wirstart()aus und protokollieren eine Nachricht in die Konsole, wenn die App bereit ist, Sprache zu empfangen. - Ist der Wert etwas anderes (
downloadableoderdownloading), geben wir eine Diagnosemeldung aus, um den Benutzer zu informieren, dass ein Sprachpaket-Download startet, und führen dann dieinstall()Methode aus, um den Download zu bearbeiten.
Die install() Methode funktioniert ähnlich wie die available() Methode, außer dass ihr Optionsobjekt nur das langs Array enthält. Beim Ausführen startet sie den Download des en-US Sprachpakets und gibt ein Promise zurück, das mit einem boolean aufgelöst wird, der angibt, ob die angegebenen Sprachpakete erfolgreich heruntergeladen und installiert wurden (true) oder nicht (false).
Dieser Code stammt aus unserem Farbumschalter für lokale Spracherkennung (führen Sie die Demo live aus). Siehe Verwendung der Web Speech API für eine vollständige Erklärung.
Spezifikationen
| Spezifikation |
|---|
| Web Speech API> # dom-speechrecognition-install> |