このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

SpeechSynthesis: getVoices() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2018年9月.

getVoices()SpeechSynthesis インターフェイスのメソッドで、現在の端末で利用できるすべての音声を表す SpeechSynthesisVoice オブジェクトのリストを返します。

構文

js
getVoices()

引数

なし。

返値

SpeechSynthesisVoice オブジェクトのリスト(配列)です。

JavaScript

js
function populateVoiceList() {
  if (typeof speechSynthesis === "undefined") {
    return;
  }

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

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

HTML

html
<select id="voiceSelect"></select>

仕様書

Specification
Web Speech API
# dom-speechsynthesis-getvoices

ブラウザーの互換性

関連情報