2013-12-23 290 views
5

我目前正在嘗試將我自己的J.A.R.V.I.S系統創建爲一個Web應用程序。所以當然,就像任何好的J.A.R.V.I.S系統一樣,它需要良好的語音識別。我已經完成了一項研究,試圖找到一個我可以自定義的JavaScript語音識別API,並決定使用Annyang。 (這很簡單,而且效果很好)Annyang語音識別問題

我花了一些時間玩它,而當我認爲我已經得到它的工作,我遇到了一個問題。當我試圖在本地查看文件時,它不工作,所以我將它與MAMP一起存放在我的電腦上,以查看它是否有效。它提出了「localhost想要訪問麥克風」的對話框,但是當我點擊允許時,它重新出現。它不斷消失,直到我點擊否認時纔會消失。我正在使用以下代碼:

<!DOCTYPE html> 

<script src="http://cdnjs.cloudflare.com/ajax/libs/annyang/1.0.0/annyang.min.js"></script> 
<script> 
if (annyang) { 
// Let's define our first command. First the text we expect, and then the function it  should call 
var commands = { 
'show tps report': function() { 
    alert("hello"); 
} 
}; 

// Initialize annyang with our commands 
annyang.init(commands); 

// Start listening. You can call this here, or attach this call to an event, button, etc. 
annyang.start(); 
} 
</script> 

這是他們在their website上提供的演示代碼。

如果有人能幫我弄清楚爲什麼當我點擊允許時反覆要求使用我的麥克風,那麼先謝謝

乾杯, Fjpackard。

+0

謝謝你,我的工作不正常,我理解它只有在文件位於服務器上時才起作用:) – Faizan

回答

0

如果每次Listening動作開始時都沒有SSL,則提示將重新出現。

如果您在FQDN上擁有有效的SSL,只要您正確設置了JavaScript,它就可以工作。

現在它正在提示,因爲在您允許之後,它會循環執行預配置的匹配,然後重新開始,然後再次提示。

我有一個工作示例的保加利亞,如果你想看看:https://piperko.com

0

即使我遇到了同樣的情況,我把它解決了。有兩種解決方案可以解決這個問題。

  1. 關閉使用麥克風的所有其他選項卡。
  2. 複檢,你annyang.js文件

    abort: function() { 
        autoRestart = false; 
        if (isInitialized) { 
         recognition.abort(); 
        } 
    } 
    

    其中,需要刪除所有未使用的分頁停止麥克風的活動,只需要激活當前的標籤。