SpeechSynthesisUtterance:voice 属性

基线 广泛可用

此功能已经相当成熟,并在许多设备和浏览器版本中都能正常工作。它自 2018 年 9 月.

报告反馈

voice 属性是 SpeechSynthesisUtterance 接口的属性,用于获取和设置用于朗读语句的语音。

此属性应设置为 SpeechSynthesisVoice 对象之一,这些对象由 SpeechSynthesis.getVoices() 返回。如果在朗读语句之前未设置此属性,则将使用最适合语句的 lang 设置的默认语音。

示例

一个 SpeechSynthesisVoice 对象。
const synth = window.speechSynthesis;

const inputForm = document.querySelector("form");
const inputTxt = document.querySelector("input");
const voiceSelect = document.querySelector("select");

const voices = synth.getVoices();

// ...

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];
    }
  }
  synth.speak(utterThis);
  inputTxt.blur();
};

规范

js
Web 语音 API
# 规范

浏览器兼容性

dom-speechsynthesisutterance-voice

另请参见