Speech recognition PocketSphinx-getHypstr()在processRaw之后为KeyphraseSearch返回空

Speech recognition PocketSphinx-getHypstr()在processRaw之后为KeyphraseSearch返回空,speech-recognition,cmusphinx,pocketsphinx,pocketsphinx-android,Speech Recognition,Cmusphinx,Pocketsphinx,Pocketsphinx Android,正在使用processRaw尝试edu.cmu.sphinx.pocketsphinx检测关键字 我已经直接使用getDecoder()设置了SpeechRecognitor的解码器。SetKeyPhase(KWS_搜索,KeyPhase); 第一个呼叫解码器。startUtt();然后使用PCM缓冲区的片调用processRaw,然后调用解码器。endUtt()。我得到一个空的解码器假设。hyp() 已为设置关键字阈值尝试了几个不同的值。不走运 少了什么 据我所知,调用processRaw时,

正在使用processRaw尝试edu.cmu.sphinx.pocketsphinx检测关键字

我已经直接使用getDecoder()设置了SpeechRecognitor的解码器。SetKeyPhase(KWS_搜索,KeyPhase); 第一个呼叫解码器。startUtt();然后使用PCM缓冲区的片调用processRaw,然后调用解码器。endUtt()。我得到一个空的解码器假设。hyp()

已为设置关键字阈值尝试了几个不同的值。不走运

  • 少了什么

  • 据我所知,调用processRaw时,最后一个参数full_utt应该为False,直到调用endUtt,对吗

  • 什么时候应将full_utt设置为True?它如何影响识别

  • 编辑: 需要指出的是,首先我试图检测“oh mighty computer”短语,这正是使用SpeechRecognitor自己的识别器线程已正确识别的演示短语 然而,当使用processRaw时,没有被检测到。两次尝试的音频条件相同

    谢谢

    少了什么

    你错过了:

    必须调整阈值,以平衡假警报和未接警报 检测最好的方法是使用预先录制的音频 文件。常见的调整过程如下:

    做一个长时间的记录,很少出现你的关键词和一些 其他声音。你可以拍一部电影或者其他什么。长度 音频的播放时间大约为1小时。在上运行关键字定位 对于每个关键字具有不同阈值的文件,请使用 以下命令:pocketsphinx_continuous-infle -keyphase \-kws_threshold-time yes该命令将打印许多行,其中一些是带有 检测时间和信心。您还可以使用禁用额外日志 -logfn您的_file.log选项可以避免混乱

    从你的关键词发现结果中统计有多少假警报和 你遇到的漏检。使用 误报警和漏检的最小数量。最好 准确度最好有一个有3-4个音节的关键词。也 短句容易混淆