JS中的語(yǔ)音識(shí)別——Speech Recognition API

簡(jiǎn)介

HTML5中和Web Speech相關(guān)的API實(shí)際上有兩類,一類是“語(yǔ)音識(shí)別(Speech Recognition)”,另外一個(gè)就是“語(yǔ)音合成(Speech Synthesis)”,這兩個(gè)名詞聽(tīng)上去很高大上,實(shí)際上指的分別是“語(yǔ)音轉(zhuǎn)文字”,和“文字變語(yǔ)音”。

語(yǔ)音識(shí)別使用SpeechRecognition API,目前只有Chrome支持,使用時(shí)要加上webkit前綴。

  • 創(chuàng)建SpeechRecognition的新實(shí)例
var recognition = new webkitSpeechRecognition();
  • 設(shè)置是持續(xù)聽(tīng)還是聽(tīng)到聲音之后就關(guān)閉接收。
recognition.continuous = true;
  • 設(shè)置是否允許臨時(shí)結(jié)果,臨時(shí)結(jié)果是識(shí)別的中間過(guò)程,這時(shí)候返回結(jié)果的isFinal = false。
recognition.interimResults = true;
  • 設(shè)置語(yǔ)言
recognition.lang = 'cmn-Hans-CN'; //普通話 (中國(guó)大陸)
  • 控制語(yǔ)音識(shí)別的開(kāi)啟和停止,可使用start()和stop()方法,分別對(duì)應(yīng)onstart、onend事件
// 開(kāi)啟
recognition.start();
// 停止
recognition.stop();
  • 對(duì)識(shí)別到的結(jié)果進(jìn)行處理,可以使用一些事件方法,比方說(shuō)onresult:
recognition.onresult = function(event) { 
    console.log(event);
}

event返回結(jié)果格式

{
    results: {
        0: {
                0: {
                    confidence: 0.695017397403717,
                    transcript: "你好,世界"
                },
                isFinal:true,
                length:1
        },
        length:1
    },
}
  • 錯(cuò)誤處理
recognition.onerror = function(event) { 
    console.log(event);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容