SpeechSynthesis: voiceschanged-Ereignis

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

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-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 neu zu füllen, zwischen denen der Benutzer wählen kann, 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 (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-Ereignis-Handler-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

BCD tables only load in the browser

Siehe auch