关键词在言语中的发现

时间:2011-03-03 17:30:20

标签: api keyword speech

是否有人知道免费提供关键字定位系统,并可能提供API?

CMU Sphinx 4和MS Speech API是语音识别引擎,不能用于KWS。

SRI有一个关键字定位系统,但没有下载链接,甚至没有评估。 (我甚至找不到任何链接来联系他们的软件)

我找到一个here,但这是一个演示并且有限。

1 个答案:

答案 0 :(得分: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解码器中实现。