SpeechSynthesisUtterance
テキスト読み上げに使用するJavascriptアプリがあります。一部のブラウザーでは、間違った音声 (言語) が使用されます。たとえば、言語が英語に設定されている 1 つのブラウザでは、TTS はドイツ語の音声を使用して終了します。
使用する音声を設定する構成オプションはありますか?
SpeechSynthesisUtterance
テキスト読み上げに使用するJavascriptアプリがあります。一部のブラウザーでは、間違った音声 (言語) が使用されます。たとえば、言語が英語に設定されている 1 つのブラウザでは、TTS はドイツ語の音声を使用して終了します。
使用する音声を設定する構成オプションはありますか?
Speech APIの仕様によると、ブラウザはデフォルトで使用する音声を決定でき、発話言語ごとに異なるデフォルトの音声を使用できるとされています。
default
属性:この属性は、言語ごとに多くても 1 つの声に当てはまります。言語ごとに異なるデフォルトがある場合があります。デフォルトの音声がどのように決定されるかは、ユーザー エージェントに依存します。
デフォルトの発話言語は、HTMLlang
属性によって決まります。
lang
属性:この属性は、有効な BCP 47 言語タグを使用して、発話の音声合成の言語を指定します。[ BCP47 ] 未設定の場合、スクリプトを取得するために未設定のままになりますが、デフォルトで html ドキュメント ルート要素と関連する階層の言語が使用されます。このデフォルト値は、入力要求が認識サービスへの接続を開くときに計算され、使用されます。
これは、デフォルトで英国の音声を使用するには、次のことを意味します。
<html lang="en-GB">
<body>
<script>
var utterance = new SpeechSynthesisUtterance('Toodle pip');
window.speechSynthesis.speak(utterance);
</script>
</body>
</html>
ただし、Chrome 46 のデフォルトの音声は変更されませんでした (デフォルトの言語はen-GB
です。デフォルトではドイツ語の音声も使用されます)。
デフォルトの発話言語として使用できますが、この回答によると、ブラウザ設定の信頼できる指標ではありません (私にとっては、言語のリストにあるがデフォルトではない と評価されます)。navigator.language
en-US