SpeechSynthesis: voiceschanged Ereignis

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022.

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

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener(), oder setzen Sie eine Ereignisbehandler-Eigenschaft.

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

onvoiceschanged = (event) => { }

Ereignistyp

Ein generisches Event ohne zusätzliche Eigenschaften.

Beispiele

Dies könnte verwendet werden, um eine Liste von Stimmen, die der Benutzer auswählen kann, neu zu befüllen, wenn das Ereignis ausgelöst wird. Sie können das voiceschanged Ereignis in einer addEventListener Methode 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 onvoiceschanged Ereignisbehandler-Eigenschaft:

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

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

Browser-Kompatibilität

Siehe auch