浏览器文字转语音播报

*注意事项:
重新加载或刷新会导致不能自动语音播报,原因:
chrome浏览器在18年4月起,就在桌面浏览器全面禁止了音视频的自动播放功能。
严格地来说,是Chrome不允许在用户对网页进行触发之前播放音频。
在页面加载完毕的情况下,用户需要click、dbclick、touch等主动交互行为,才能正常播放。
或者在浏览器安全设置中将需要播放语音的网址加进去

方法一、原生speechSynthesis

// 前端语音播报

export function playAudio (text) {
// 取消之前的播报,如不加则存队列依次完成播报
  window.speechSynthesis.cancel()
  // 创建一个新的语音合成对象
  let synth = window.speechSynthesis
  if (!synth) {
    alert('浏览器不支持语音播报!')
  }
  // 创建一个新的语音合成消息
  let utterance = new SpeechSynthesisUtterance()
  // 设置要转换为语音的文本内容
  utterance.text = text
  // 设置语音合成的语言
  utterance.lang = 'zh-cn'
  // 设置语速和音调
  utterance.rate = 1.0 // 数越大,语速就越快
  utterance.pitch = 1.0 // 数越大,声音就越尖锐
  // 将语音合成消息添加到队列中
  synth.speak(utterance)
  // 停止
  // speechSynthesis.cancel(utterance)
}

// 直接调用playAudio(‘传入播放文字’)

方法二、Vue实现语音播报

安装speak-tts包

npm install speak-tts

在页面中引入

import Speech from 'speak-tts'
	// 初始化
	 speechInit(){
        this.speech = new Speech()
        this.speech.setLanguage('zh-CN')
        this.speech.init().then(()=>{
          console.log('语音播报初始化完成...')
        })
      },
      //语音播报
      speak(text){
        this.speech.speak({text: text}).then(()=>{
          console.log("播报完成...")
        })
      },
     // 使用时候调用speak(传入播放文字)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值