乐趣区

关于前端:js文字转语音播放

SpeechSynthesisUtterance

  • SpeechSynthesisUtterance 是 HTML5 中新增的 API, 用于将指定文字合成为对应的语音. 也蕴含一些配置项, 指定如何去浏览 (语言, 音量, 音调) 等

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <input type="text" id="textMsg" value="有新的订单,请及时处理">
  <button onclick="speak()"> 播放 </button>
  <button onclick="pause()"> 暂停 </button>
  <button onclick="resume()"> 持续播放 </button>
  <button onclick="cancel()"> 勾销播放 </button>
  <script>
    var speech = new SpeechSynthesisUtterance();

    // 播放
    function speak() {// speech.pitch = 1 // 获取并设置话语的音调(值越大越尖利, 越低越消沉)
      // speech.rate  = 5 // 获取并设置谈话的速度(值越大语速越快, 越小语速越慢)
      // speech.voice = 10 // 获取并设置谈话的声音
      // speech.volume = 1 // 获取并设置谈话的音量
      // speech.lang = speechSynthesis.getVoices()[0] // 设置播放语言,测试没成果
      // speech.cancel() // 删除队列中所有的语音. 如果正在播放, 则间接进行
      speech.text = textMsg.value // 获取并设置谈话时的文本
      speechSynthesis.speak(speech);
    }

    // 暂停
    function pause() {speechSynthesis.pause()
    }
    // 持续播放
    function resume() {speechSynthesis.resume()
    }

    // 勾销播放
    function cancel() {speechSynthesis.cancel()
    }
  </script>
</body>

</html>
  • tips: 如果播放没声音,可尝试重启浏览器播放
退出移动版