ブラウザの TextToSpeech を async function で書く

投稿者: ytyng 11ヶ月, 3週間 前

SpeechSynthesisUtterance の speech メソッドを await するコードです。 ウェブブラウザに発声させる処理を同期的に行います。

ちなみに、ブラウザを開いた瞬間に自動的に speak することはブラウザのセキュリティの都合上できません。 最低1回、ページ内のなにかのボタンをクリックするなどをユーザーにしてもらわないと発声しません。

function asyncSpeak(text) {
  const ssu = new SpeechSynthesisUtterance()
  ssu.text = text
  ssu.lang = 'en-US'
  speechSynthesis.speak(ssu)
  return new Promise((resolve, reject) => {
    ssu.onend = () => {
      resolve()
    }
  })
}

async function onStarted() {
  await asyncSpeak('one two three four five six seven eight nine ten')
  console.log('end')
}
現在未評価

コメント

アーカイブ

2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011