SpeechSynthesisVoice
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2018.
Das SpeechSynthesisVoice
-Interface der Web Speech API repräsentiert eine Stimme, die das System unterstützt. Jede SpeechSynthesisVoice
verfügt über ihren eigenen Sprachdienst, der Informationen über Sprache, Name und URI enthält.
Instanz-Eigenschaften
SpeechSynthesisVoice.default
Nur lesbar-
Ein boolescher Wert, der angibt, ob die Stimme die Standardstimme für die aktuelle App-Sprache ist (
true
), oder nicht (false
). SpeechSynthesisVoice.lang
Nur lesbar-
Gibt ein BCP 47-Sprachtag zurück, das die Sprache der Stimme angibt.
SpeechSynthesisVoice.localService
Nur lesbar-
Ein boolescher Wert, der angibt, ob die Stimme von einem lokalen Sprachsynthesizer-Dienst bereitgestellt wird (
true
) oder von einem entfernten Sprachsynthesizer-Dienst (false
). SpeechSynthesisVoice.name
Nur lesbar-
Gibt einen menschenlesbaren Namen zurück, der die Stimme repräsentiert.
SpeechSynthesisVoice.voiceURI
Nur lesbar-
Gibt den URI-Typ und den Ort des Sprachsynthesedienstes für diese Stimme zurück.
Beispiele
Der folgende Ausschnitt ist aus unserem Sprachsynthesizer-Demo entnommen.
const synth = window.speechSynthesis;
function populateVoiceList() {
voices = synth.getVoices();
for (let i = 0; i < voices.length; i++) {
const option = document.createElement("option");
option.textContent = `${voices[i].name} (${voices[i].lang})`;
if (voices[i].default) {
option.textContent += " — DEFAULT";
}
option.setAttribute("data-lang", voices[i].lang);
option.setAttribute("data-name", voices[i].name);
voiceSelect.appendChild(option);
}
}
populateVoiceList();
if (speechSynthesis.onvoiceschanged !== undefined) {
speechSynthesis.onvoiceschanged = populateVoiceList;
}
inputForm.onsubmit = (event) => {
event.preventDefault();
const utterThis = new SpeechSynthesisUtterance(inputTxt.value);
const selectedOption =
voiceSelect.selectedOptions[0].getAttribute("data-name");
for (let i = 0; i < voices.length; i++) {
if (voices[i].name === selectedOption) {
utterThis.voice = voices[i];
}
}
utterThis.pitch = pitch.value;
utterThis.rate = rate.value;
synth.speak(utterThis);
utterThis.onpause = (event) => {
const char = event.utterance.text.charAt(event.charIndex);
console.log(
`Speech paused at character ${event.charIndex} of "${event.utterance.text}", which is "${char}".`,
);
};
inputTxt.blur();
};
Spezifikationen
Specification |
---|
Web Speech API # speechsynthesisvoice |
Browser-Kompatibilität
BCD tables only load in the browser