Start · Sprachen · JavaScript · Referenz · SpeechRecognitionPhrase.phrase

SpeechRecognitionPhrase.phrase

Eigenschaft

Gibt als schreibgeschützten String das Wort oder die Phrase zurück, die die Spracherkennung per kontextuellem Bias bevorzugt erkennen soll.

seit JavaScript Experimentell: Chromium-basierte Browser (neuere V Kategorie: webapi

Signatur

SpeechRecognitionPhrase.phrase

Beschreibung

Die Eigenschaft phrase eines SpeechRecognitionPhrase-Objekts ist schreibgeschützt. Sie enthält den Text, den du beim Erzeugen mit new SpeechRecognitionPhrase(phrase, boost) übergeben hast. Solche Phrasen landen im Array SpeechRecognition.phrases. Dort sagen sie der Erkennungs-Engine, welche Begriffe im aktuellen Kontext wahrscheinlich vorkommen. Das nennt man kontextuelles Biasing (gezielte Bevorzugung bestimmter Begriffe).

Nützlich ist das vor allem bei Fachbegriffen, Produkt- und Eigennamen, Abkürzungen oder ungewöhnlichen Schreibweisen, die ein allgemeines Sprachmodell oft falsch versteht. Beispiele sind Medikamentennamen, Artikelnummern oder Namen von Personen im Adressbuch.

Wie stark eine Phrase bevorzugt wird, legt die zugehörige Eigenschaft boost fest. phrase liest du typischerweise aus, um die aktuelle Bias-Liste anzuzeigen, zu prüfen oder zu protokollieren. Ändern kannst du den Wert nicht. Für einen anderen Text erzeugst du ein neues SpeechRecognitionPhrase-Objekt und ersetzt damit das alte im Array.

Rückgabewert

Typ
string
Beschreibung
Das Wort oder die Phrase, die bei der Erkennung bevorzugt werden soll. Der Wert entspricht genau dem ersten Argument des Konstruktors.

Beispiele

Phrase anlegen und auslesen

const phrase = new SpeechRecognitionPhrase('Ibuprofen', 5.0);

console.log(phrase.phrase); // Text der Phrase
console.log(phrase.boost);  // Gewichtung
Ibuprofen 5

Fachbegriffe für die Erkennung setzen und protokollieren

const SR = window.SpeechRecognition ?? window.webkitSpeechRecognition;

if (SR && 'SpeechRecognitionPhrase' in window) {
  const recognition = new SR();
  recognition.lang = 'de-DE';
  recognition.processLocally = true; // Biasing wird oft nur lokal unterstützt

  const begriffe = ['Kubernetes', 'WebAssembly', 'TypeScript'];
  recognition.phrases = begriffe.map((b) => new SpeechRecognitionPhrase(b, 3.0));

  // Aktuelle Bias-Liste ausgeben
  recognition.phrases.forEach((p) => console.log(`${p.phrase} (Boost ${p.boost})`));

  recognition.onresult = (e) => console.log('Erkannt:', e.results[0][0].transcript);
  recognition.onerror = (e) => console.error('Fehler:', e.error);
  recognition.start();
} else {
  console.warn('Kontextuelles Biasing wird nicht unterstützt.');
}
Kubernetes (Boost 3) WebAssembly (Boost 3) TypeScript (Boost 3)

Phrase „ändern“ durch Ersetzen des Objekts

const liste = [
  new SpeechRecognitionPhrase('Müller', 2.0),
  new SpeechRecognitionPhrase('Schmitt', 2.0)
];

// phrase ist schreibgeschützt – deshalb neues Objekt erzeugen
const index = liste.findIndex((p) => p.phrase === 'Schmitt');
liste[index] = new SpeechRecognitionPhrase('Schmidt', liste[index].boost);

console.log(liste.map((p) => p.phrase));
["Müller", "Schmidt"]

// Wichtig · Fallstricke

  • Schreibgeschützt: Eine Zuweisung wie p.phrase = 'x' wird im normalen Modus stillschweigend ignoriert. Im Strict Mode wirft sie einen TypeError. Für einen anderen Text erzeugst du ein neues Objekt.
  • Experimentell: Kontextuelles Biasing ist eine neue Ergänzung der Web Speech API. Bislang unterstützen es nur neuere Chromium-Versionen, und dort oft nur bei lokaler Verarbeitung (processLocally = true). Firefox und Safari unterstützen es derzeit nicht. Prüfe die Unterstützung vorher, etwa mit 'SpeechRecognitionPhrase' in window.
  • Kann die Engine keine Phrasen verarbeiten, kann die Erkennung mit einem error-Ereignis abbrechen, dessen Code "phrases-not-supported" lautet. Fange diesen Fall im onerror-Handler ab.
  • Ein Bias ist nur ein Hinweis und keine Garantie. Zu viele Phrasen oder zu hohe boost-Werte (erlaubt sind 0.0–10.0) können die Erkennung anderer Wörter verschlechtern.
  • Phrasen können sensible Daten enthalten, zum Beispiel Kontaktnamen. Bei Erkennung über einen Server werden sie unter Umständen an einen Clouddienst übertragen.