vue實現(xiàn)文字轉(zhuǎn)語音功能詳解
目前h5新增一個文字轉(zhuǎn)語音的功能(但是正在完善中,勉強能用),h5新增的SpeechSynthesisUtterance實例
首先new一個SpeechSynthesisUtterance對象
使用實例對象的一些屬性,包括:
text
– 要合成的文字內(nèi)容,字符串。lang
– 使用的語言,字符串, 例如:"zh-cn"voiceURI
– 指定希望使用的聲音和服務(wù),字符串。volume
– 聲音的音量,區(qū)間范圍是0到1,默認(rèn)是1。rate
– 語速,數(shù)值,默認(rèn)值是1,范圍是0.1到10,表示語速的倍數(shù),例如2表示正常語速的兩倍。pitch
– 表示說話的音高,數(shù)值,范圍從0(最?。┑?(最大)。默認(rèn)值為1。
方法
speak()
將對應(yīng)的實例添加到語音隊列中cancel()
刪除隊列中所有的語音.如果正在播放,則直接停止pause()
暫停語音resume()
恢復(fù)暫停的語音getVoices
獲取支持的語言數(shù)組. 注意:必須添加在voiceschanged事件中才能生效
但是這個方法不支持老版的ie,需要加瀏覽器判斷方法
isIe(){ ? ? if(!!window.ActiveXObject || "ActiveXObject " in window){ ? ? ? ? return true ? ? }else{ ? ? ? ? return false ? ? } },
然后根據(jù)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) ? ? },
到此這篇關(guān)于vue實現(xiàn)文字轉(zhuǎn)語音功能詳解的文章就介紹到這了,更多相關(guān)vue語音播報內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在vue項目中(本地)使用iconfont字體圖標(biāo)的三種方式總結(jié)
這篇文章主要介紹了在vue項目中(本地)使用iconfont字體圖標(biāo)的三種方式總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09el-table-column 內(nèi)容不自動換行的解決方法
本文主要介紹了el-table-column 內(nèi)容不自動換行的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08