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 geändert hat, die von der Methode SpeechSynthesis.getVoices() zurückgegeben werden würden (wenn das voiceschanged-Ereignis ausgelöst wird).

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener(), oder legen Sie eine Ereignishandler-Eigenschaft fest.

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, zwischen denen der Benutzer wählen kann, neu zu füllen, wenn das Ereignis eintritt. Sie können das voiceschanged-Ereignis in einer addEventListener-Methode verwenden:

js
const synth = window.speechSynthesis;

synth.addEventListener("voiceschanged", () => {
  const voices = synth.getVoices();
  for (let i = 0; i < voices.length; i++) {
    const option = document.createElement("option");
    option.textContent = `${voices[i].name} (${voices[i].lang})`;
    option.setAttribute("data-lang", voices[i].lang);
    option.setAttribute("data-name", voices[i].name);
    voiceSelect.appendChild(option);
  }
});

Oder verwenden Sie die onvoiceschanged-Ereignishandler-Eigenschaft:

js
const synth = window.speechSynthesis;
synth.onvoiceschanged = () => {
  const voices = synth.getVoices();
  for (let i = 0; i < voices.length; i++) {
    const option = document.createElement("option");
    option.textContent = `${voices[i].name} (${voices[i].lang})`;
    option.setAttribute("data-lang", voices[i].lang);
    option.setAttribute("data-name", voices[i].name);
    voiceSelect.appendChild(option);
  }
};

Spezifikationen

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

Browser-Kompatibilität

Siehe auch