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 vom System unterstützte Stimme. Jede SpeechSynthesisVoice
hat ihren eigenen relativen Sprachdienst, einschließlich Informationen über Sprache, Name und URI.
Instanz-Eigenschaften
SpeechSynthesisVoice.default
Schreibgeschützt-
Ein boolescher Wert, der angibt, ob die Stimme die Standardstimme für die aktuelle Anwendungs-Sprache ist (
true
) oder nicht (false
). SpeechSynthesisVoice.lang
Schreibgeschützt-
Gibt ein BCP 47-Sprachtag zurück, das die Sprache der Stimme angibt.
SpeechSynthesisVoice.localService
Schreibgeschützt-
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
Schreibgeschützt-
Gibt einen für Menschen lesbaren Namen zurück, der die Stimme repräsentiert.
SpeechSynthesisVoice.voiceURI
Schreibgeschützt-
Gibt den URI-Typ und den Ort des Sprachsynthese-Dienstes für diese Stimme zurück.
Beispiele
Der folgende Ausschnitt stammt aus unserer Sprachsynthesizer-Demo.
const synth = window.speechSynthesis;
function populateVoiceList() {
voices = synth.getVoices();
for (const voice of voices) {
const option = document.createElement("option");
option.textContent = `${voice.name} (${voice.lang})`;
if (voice.default) {
option.textContent += " — DEFAULT";
}
option.setAttribute("data-lang", voice.lang);
option.setAttribute("data-name", voice.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 (const voice of voices) {
if (voice.name === selectedOption) {
utterThis.voice = voice;
}
}
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 |