vue實現文字轉語音的方法:1、創建一個SpeechSynthesisUtterance物件;2、透過「isIe(){...}」方式實現瀏覽器判斷;3、根據ie使用方法即可,程式碼如「if(this.isIe()){let voiceObj = new ActiveXObject("Sapi.SpVoice")voiceObj.Rate = ...)」。
本教學操作環境:windows7系統、vue3、Dell G3電腦。
vue怎麼實現文字轉語音?
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.js影片教學》
以上是vue怎麼實現文字轉語音的詳細內容。更多資訊請關注PHP中文網其他相關文章!