首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语音中的关键词识别

语音中的关键词识别
EN

Stack Overflow用户
提问于 2011-03-04 01:30:20
回答 1查看 5.2K关注 0票数 7

有没有人知道一个免费的关键词识别系统,并且可能提供API ??

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

SRI有一个关键词识别系统,但没有下载链接,甚至连评估都没有。(我甚至在任何地方都找不到联系他们获取软件的链接)

我找到了一个here,但它只是一个演示,而且是有限的。

EN

回答 1

Stack Overflow用户

发布于 2011-08-04 06:19:25

CMUSphinx在pocketsphinx引擎中实现了关键字定位,详情请参阅FAQ entry.

要识别单个关键短语,您可以在“关键短语搜索”模式下运行解码器。

从命令行try:

代码语言:javascript
复制
pocketsphinx_continuous -infile file.wav -keyphrase “oh mighty computer” -kws_threshold 1e-20

从代码中:

代码语言:javascript
复制
 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

代码语言:javascript
复制
# 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,如下所示:

代码语言:javascript
复制
  oh mighty computer /1e-40/
  hello world /1e-30/
  other_phrase /other_phrase_threshold/

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

代码语言:javascript
复制
  pocketsphinx_continuous -inmic yes -kws keyphrase_list

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5184233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档