2016-02-26 230 views
4

我目前正在研究一個工具,允許我讀取所有通知,這要歸功於連接到不同的API。語音識別,nodeJS

它工作得很好,但現在我想放一些人聲命令來做一些動作。

就像軟件說「鮑勃的一封郵件」一樣,我想說「閱讀它」或「存檔」。

我的軟件通過節點服務器運行,目前我沒有任何瀏覽器實現,但它可以是一個計劃。

節點JS啓用語音到文本的最佳方式是什麼?

我已經看到了很多線程,但主要是使用瀏覽器,如果可能的話,我想在開始時避免這種情況。可能嗎?

另一個問題是某些軟件需要輸入一個wav文件。我沒有任何文件,我只是希望我的軟件能夠在我說出命令時總是傾聽我說的反應。

你有什麼信息可以做到嗎?

乾杯

+0

我見過一些連接到谷歌服務的實現,我想這就是你在說什麼。我懷疑一段時間沒有足夠的權力會有一個本地語音解析器。 – Phix

回答

3

要得到音頻數據到應用程序,你可以嘗試像microphone一個模塊,我還沒有使用它看起來很有希望。這可以避免必須使用瀏覽器進行音頻輸入。

要做到實際的語音識別,您可以使用IBM Watson Developer Cloud的Speech to Text服務。該服務支持websocket interface,這樣您就可以擁有全雙工服務,將音頻數據傳輸到雲端並獲取轉錄結果。您可能需要考慮實施一種onset detection的形式,以避免向服務傳輸大量(相對)沉默 - 這樣,您可以保留在免費層中。

還有一個文本到語音服務,但它聽起來像你有一個解決方案已經爲你的工具的一部分。

披露:我是IBM Watson的傳播者。

3

要識別幾條命令而不將它們傳輸到服務器,可以使用node-pocketsphinx模塊。 Available在NPM中。

的代碼來識別連續的流幾條命令應該是這樣的:

var fs = require('fs'); 

var ps = require('pocketsphinx').ps; 

modeldir = "../../pocketsphinx/model/en-us/" 

var config = new ps.Decoder.defaultConfig(); 
config.setString("-hmm", modeldir + "en-us"); 
config.setString("-dict", modeldir + "cmudict-en-us.dict"); 
config.setString("-kws", "keyword list"); 
var decoder = new ps.Decoder(config); 

fs.readFile("../../pocketsphinx/test/data/goforward.raw", function(err, data) { 
    if (err) throw err; 
    decoder.startUtt(); 
    decoder.processRaw(data, false, false); 
    decoder.endUtt(); 
    console.log(decoder.hyp()) 
}); 

而不是readFile你剛纔讀從麥克風中的數據,並通過它來識別器。關鍵字檢測的名單應該是這樣的:

read it /1e-20/ 
archive it /1e-20/ 

有關詳細信息與pocketsphinx點滴見Keyword Spotting in SpeechRecognizing multiple keywords using PocketSphinx

1

雙方已經在這裏的答案是好的,但我認爲你在尋找因爲是Sonus。它爲您處理音頻編碼和流媒體。它總是在離線觀看可定製的熱門詞彙(如Siri或Alexa)。您也可以通過編程方式觸發監聽。在與像say模塊組合,你可以通過執行類似啓用例如:

say.speak('One mail from Bob', function(err) { 
    Sonus.trigger(sonus, 1) //start listening 
}); 

您還可以使用不同的啓動字詞來處理後續識別的語音以不同的方式。例如:
通知書。最近的。」和「發送消息。你今天怎麼樣」

扔東西到PI或與你的辦公桌上的麥克風芯片和你有一個個人助理讀取您的通知和反應命令。

簡單的例子:
https://twitter.com/_evnc/status/811290460174041090

一些更復雜的:
https://youtu.be/pm0F_WNoe9k?t=20s

完整的文檔:
https://github.com/evancohen/sonus/blob/master/docs/API.md

免責聲明:這是我的項目:)