关键词在言语中的发现

Fea*_*rUs 6 api speech keyword

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

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

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

我在这里找到了一个,但这是一个演示而且有限.

Nik*_*rev 5

CMUSphinx 在 pocketsphinx 引擎中实现关键字识别,详细信息请参阅FAQ 条目。

\n\n

要识别单个关键词,您可以在 \xe2\x80\x9ckeyphrase search\xe2\x80\x9d 模式下运行解码器。

\n\n

从命令行尝试:

\n\n
pocketsphinx_continuous -infile file.wav -keyphrase \xe2\x80\x9coh mighty computer\xe2\x80\x9d -kws_threshold 1e-20\n
Run Code Online (Sandbox Code Playgroud)\n\n

从代码来看:

\n\n
 ps_set_keyphrase(ps, "keyphrase_search", "oh mighty computer");\n ps_set_search(ps, "keyphrase_search);\n ps_start_utt();\n /* process data */\n
Run Code Online (Sandbox Code Playgroud)\n\n

您还可以在我们的源代码中找到 Python 和 Android/Java 的示例。Python 代码如下所示,完整示例如下

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

必须针对测试数据上的每个关键短语调整阈值,以获得漏检和误报之间的适当平衡。您可以尝试 1e-5 到 1e-50 等值。

\n\n

为了获得最佳准确性,最好使用 3-4 个音节的关键短语。太短的短语很容易混淆。

\n\n

您还可以搜索多个关键词,创建一个文件 keyphrase.list,如下所示:

\n\n
  oh mighty computer /1e-40/\n  hello world /1e-30/\n  other_phrase /other_phrase_threshold/\n
Run Code Online (Sandbox Code Playgroud)\n\n

并在带有 -kws 配置选项的解码器中使用它。

\n\n
  pocketsphinx_continuous -inmic yes -kws keyphrase_list\n
Run Code Online (Sandbox Code Playgroud)\n\n

sphinx4 解码器尚未实现此功能。

\n