2011-03-03 63 views
6

是否有人知道可免費獲得並可能提供API的關鍵字發現系統?演講中的關鍵字發現

CMU Sphinx 4和MS Speech API是語音識別引擎,不能用於KWS。

SRI有一個關鍵字定位系統,但沒有下載鏈接,甚至沒有評估。 (我什至找不到任何鏈接聯繫他們的軟件)

我發現一個here但它是一個演示和有限。

回答

3

CMUSphinx實現了pocketsphinx引擎關鍵詞識別,詳見FAQ entry.

要識別單一的關鍵詞,你可以在「搜索的關鍵詞」模式運行的解碼器。

從命令行嘗試:

pocketsphinx_continuous -infile file.wav -keyphrase 「oh mighty computer」 -kws_threshold 1e-20 

從代碼:

ps_set_keyphrase(ps, "keyphrase_search", "oh mighty computer"); 
ps_set_search(ps, "keyphrase_search); 
ps_start_utt(); 
/* process data */ 

您也可以在我們的消息來源爲Python和Android/Java的例子。 Python代碼看起來是這樣的,完整的例子here

# Process audio chunk by chunk. On keyphrase detected perform action and restart search 
decoder = Decoder(config) 
decoder.start_utt() 
while True: 
    buf = stream.read(1024) 
    if buf: 
     decoder.process_raw(buf, False, False) 
    else: 
     break 
    if decoder.hyp() != None: 
     print ([(seg.word, seg.prob, seg.start_frame, seg.end_frame) for seg in decoder.seg()]) 
     print ("Detected keyphrase, restarting search") 
     decoder.end_utt() 
     decoder.start_utt() 

門檻必須調整對測試數據的每個關鍵詞短語,以獲得正確的平衡漏檢和誤報。你可以嘗試像1e-5到1e-50這樣的值。

爲了獲得最佳準確度,最好使用帶3-4個音節的關鍵詞。太短的詞組很容易混淆。

您還可以搜索多個關鍵詞的,創建一個文件keyphrase.list這樣的:

oh mighty computer /1e-40/ 
    hello world /1e-30/ 
    other_phrase /other_phrase_threshold/ 

而且在解碼器-kws配置選項一起使用。

pocketsphinx_continuous -inmic yes -kws keyphrase_list 

此功能尚未在sphinx4解碼器中實現。

+0

是否有算法說明或庫在不使用CMUSphinx的情況下在音頻流上進行關鍵字識別? –

+0

當然,你可以谷歌的「關鍵字spotting」 –

+0

是很多研究論文,但沒有死簡單的實施 –