您好,登錄后才能下訂單哦!
本篇內容介紹了“vue如何實現文本轉語音”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
vue實現文本轉語音的方法:1、創建一個SpeechSynthesisUtterance對象;2、通過“isIe(){...}”方式實現瀏覽器判斷;3、根據ie使用方法即可,代碼如“if(this.isIe()){let voiceObj = new ActiveXObject("Sapi.SpVoice")voiceObj.Rate = ...)”。
vue實現文字轉語音功能詳解
目前h6新增一個文字轉語音的功能(但是正在完善中,勉強能用),h6新增的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如何實現文本轉語音”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。