JavaScript でしゃべらせる
どうやら Chrome とかだとしゃべらせることができるらしい。
SpeechSynthesisUtterance - Web API | MDN
Web Speech API の SpeechSynthesisUtterance インターフェイスは、発話リクエストを表します。これには、speech サービスが読み上げるコンテンツと、その読み上げ方についての情報 (言語、音の高低、音量) が含まれます。
function speak() {
var speech = new SpeechSynthesisUtterance();
speech.text = document.querySelector('.haiku').innerText.replace('\n', '、');
speech.lang = 'ja-JP';
speech.rate = 0.8;
var voices = [...window.speechSynthesis.getVoices()].filter((e) => e.lang === 'ja-JP');
if (voices.length > 0) {
speech.voice = voices.pop();
}
speechSynthesis.speak(speech);
}
rate はしゃべる速度を調整できる。
ちょっと遅めがいいので 0.8
にしている。
音声はブラウザに入ってるものしか使えないので ja-JP
のものだけを取得して一番ユニークそうなものを採用することにした。