语音合成:getVoices() 方法

基线 广泛可用

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

报告反馈

语法

getVoices() 方法是 SpeechSynthesis 接口的方法,它返回一个 SpeechSynthesisVoice 对象列表(数组),这些对象表示当前设备上所有可用的语音。
getVoices()

js

参数

无。

返回值

示例

JavaScript

getVoices() 方法是 SpeechSynthesis 接口的方法,它返回一个 SpeechSynthesisVoice 对象列表(数组),这些对象表示当前设备上所有可用的语音。
function populateVoiceList() {
  if (typeof speechSynthesis === "undefined") {
    return;
  }

  const voices = speechSynthesis.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);
    document.getElementById("voiceSelect").appendChild(option);
  }
}

populateVoiceList();
if (
  typeof speechSynthesis !== "undefined" &&
  speechSynthesis.onvoiceschanged !== undefined
) {
  speechSynthesis.onvoiceschanged = populateVoiceList;
}

HTML

一个 SpeechSynthesisVoice 对象列表(数组)。
<select id="voiceSelect"></select>

规范

html
Web 语音 API
# 规范

浏览器兼容性

dom-speechsynthesis-getvoices

另请参阅