vue实现文字转语音功能详解
目前h5新增一个文字转语音的功能(但是正在完善中,勉强能用),h5新增的SpeechSynthesisUtterance实例
首先new一个SpeechSynthesisUtterance对象
使用实例对象的一些属性,包括:
text – 要合成的文字内容,字符串。lang – 使用的语言,字符串, 例如:"zh-cn"voiceURI – 指定希望使用的声音和服务,字符串。volume – 声音的音量,区间范围是0到1,默认是1。rate – 语速,数值,默认值是1,范围是0.1到10,表示语速的倍数,例如2表示正常语速的两倍。pitch – 表示说话的音高,数值,范围从0(最小)到2(最大)。默认值为1。
方法
speak() 将对应的实例添加到语音队列中cancel() 删除队列中所有的语音.如果正在播放,则直接停止pause() 暂停语音resume() 恢复暂停的语音getVoices 获取支持的语言数组. 注意:必须添加在voiceschanged事件中才能生效
但是这个方法不支持老版的ie,需要加浏览器判断方法
isIe(){
if(!!window.ActiveXObject || "ActiveXObject " in window){
return true
}else{
return false
}
},然后根据ie使用方法
voice(e){
window.speechSynthesis.cancel()
let timer
timer = setInterval(() => {
let msg = e
if(this.isIe()){
let voiceObj = new ActiveXObject("Sapi.SpVoice")
voiceObj.Rate = -1 // 语速
voiceObj.Volume = 50 // 音量
voiceObj.Speak(msg,1)
}else{
let speakMsg = new
SpeechSynthesisUtterance(msg)
speakMsg.rate = 1 // 语速
speakMsg.pitch = 3 // 音量
window.speechSynthesis.speak(speakMsg)
}
}, 1000)
setTimeout(() => {
// 一段时间后清除定时器
clearInterval(timer)
}, 1000)
},到此这篇关于vue实现文字转语音功能详解的文章就介绍到这了,更多相关vue语音播报内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
关于vue-lunar-full-calendar的使用说明
这篇文章主要介绍了关于vue-lunar-full-calendar的使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-07-07
vue3+springboot部署到Windows服务器的详细步骤
这篇文章主要介绍了vue3+springboot部署到Windows服务器,配置Nginx时,因为现在是把vue前端交给了Nginx代理,所以这里的端口号不一定是我们在vue项目中设置的端口号,本文给大家介绍的非常详细,需要的朋友参考下吧2022-10-10


最新评论