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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
voiceschanged event

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch