テキスト読み上げに Web Speech API を使用しており、デフォルトの音声を判別できるようにする必要があります。これを行うには、ボイスを呼び出しspeechSynthesis.getVoices()
て列挙し、デフォルトが true のボイスを見つけます。
私は米国にいて、すべてのデバイスで米国英語ロケールを使用しています。Windows および Mac 上の Chrome では、返されるデフォルトの音声は Google US English です。ただし、Chromebook では返されるデフォルトの音声は Chrome OS のドイツ語です。それは本当に正しいデフォルトですか?
Chromebook に不足している他のロケール設定はありますか? ChromeVox のデフォルトの音声を変更しようとしましたが (変更前は Chrome OS のドイツ語でした)、うまくいきませんでした。
または、言語を に渡す方法はありgetVoices()
ますか?
HTML
私のページの HTML 言語は米国英語に設定されています。
<!DOCTYPE html>
<html lang="en-US">
lang="en"、DOCTYPE宣言の削除などを試しましたが、変更はありません。
Javascript
var _voices = [];
speechSynthesis.onvoiceschanged = listVoices;
function listVoices() {
_voices = speechSynthesis.getVoices();
}
function getDefaultVoice() {
var voice = '';
_voices.some(function(v) {
if (v.default) {
voice = v.name;
return true;
}
});
return voice;
}