2013-06-11 104 views
4

我開始使用此瀏覽器(chrome)功能。 我已經寫了一個JS的基礎上,但問題是,它只識別一次講話,並結束。它不會持續,我需要一直按下按鈕開始語音識別。告訴我我應該在哪裏調整。我已經設置「recognition.continuous = true」仍然沒有幫助?使用Webkit語音API進行連續語音識別

var recognition = new webkitSpeechRecognition(); 
recognition.continuous  = true; 
recognition.interimResults = true; 

recognition.onstart = function() { 
    console.log("Recognition started"); 
}; 
recognition.onresult = function(event){ 
    console.log(event.results); 
}; 
recognition.onerror = function(e) { 
    console.log("Error"); 
}; 

recognition.onend = function() { 
    console.log("Speech recognition ended"); 
}; 

function start_speech() { 
    recognition.lang = 'en-IN'; // 'en-US' works too, as do many others 
    recognition.start(); 
} 

我從一個按鈕調用「start_speech」!這就是它

回答

8

也許在這條線錯字:

recognition.continuos = true; 

應該等於:

recognition.continuous = true; 
7

我知道這是一個古老的線程,但我也有這個問題。我發現,即使設置了連續標誌,如果輸入語音中存在暫停,則會引發「無語音」錯誤(觸發onerror事件),並關閉引擎。我只是在onend添加的代碼重新啓動發動機:

recognition.onend = function() { 
    recognition.start(); 
}; 

你可能會得到下一個問題是,每一次的引擎重新啓動,用戶必須重新授予權限,讓瀏覽器中使用的麥克風。目前唯一的解決方案似乎是確保您通過HTTPS連接到您的站點(來源:http://updates.html5rocks.com/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API以粗體顯示的帖子底部)