首頁 > web前端 > Vue.js > vue怎麼實現文字轉語音

vue怎麼實現文字轉語音

藏色散人
發布: 2022-11-19 17:08:30
原創
4253 人瀏覽過

vue實現文字轉語音的方法:1、創建一個SpeechSynthesisUtterance物件;2、透過「isIe(){...}」方式實現瀏覽器判斷;3、根據ie使用方法即可,程式碼如「if(this.isIe()){let voiceObj = new ActiveXObject("Sapi.SpVoice")voiceObj.Rate = ...)」。

vue怎麼實現文字轉語音

本教學操作環境: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中文網其他相關文章!

相關標籤:
vue
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板