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> |