Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

SpeechSynthesis: voiceschanged-Ereignis

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2022 browserübergreifend verfügbar.

Das voiceschanged-Ereignis der Web Speech API wird ausgelöst, wenn sich die Liste der SpeechSynthesisVoice-Objekte geändert hat, die von der Methode SpeechSynthesis.getVoices() zurückgegeben würde.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("voiceschanged", (event) => { })

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
onvoiceschanged = (event) => { }

Ereignistyp

Ein allgemeines Event ohne zusätzliche Eigenschaften.

Beispiele

Wenn das Ereignis ausgelöst wird, können Sie damit eine Liste von Stimmen neu befüllen, aus denen Benutzer wählen können. Sie können das voiceschanged-Ereignis mit der Methode addEventListener verwenden:

js
const synth = window.speechSynthesis;

synth.addEventListener("voiceschanged", () => {
  const voices = synth.getVoices();
  for (const voice of voices) {
    const option = document.createElement("option");
    option.textContent = `${voice.name} (${voice.lang})`;
    option.setAttribute("data-lang", voice.lang);
    option.setAttribute("data-name", voice.name);
    voiceSelect.appendChild(option);
  }
});

Oder verwenden Sie die Event-Handler-Eigenschaft onvoiceschanged. Beachten Sie jedoch, dass dies gegebenenfalls andere mit onvoiceschanged hinzugefügte Event-Listener ersetzt:

js
const synth = window.speechSynthesis;
synth.onvoiceschanged = () => {
  const voices = synth.getVoices();
  for (const voice of voices) {
    const option = document.createElement("option");
    option.textContent = `${voice.name} (${voice.lang})`;
    option.setAttribute("data-lang", voice.lang);
    option.setAttribute("data-name", voice.name);
    voiceSelect.appendChild(option);
  }
};

Spezifikationen

Spezifikation
Web Speech API
# eventdef-speechsynthesis-voiceschanged
Web Speech API
# dom-speechsynthesis-onvoiceschanged

Browser-Kompatibilität

Siehe auch