2011-03-03 27 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

是很多研究论文,但没有死简单的实施 –