我在Android上成功使用PocketsphinxDemo。我有一组非常有限的单词需要被识别,比如3个不同的单词。 我目前得到很多误报 - 在谈话时,Pocketsphinx会识别我的3个单词中的一个,尽管他们没有被说出来。
由于我找不到有关pocketphinx使用的参数的任何参考,这里是我的问题:
是否有参数使Pocketsphinx的反应更具限制性?
我希望它只有在Pocketsphinx非常“确定”匹配正确的单词时才会返回其识别猜测。
以下是我目前使用的默认参数:
c.setFloat("-samprate", 8000.0);
c.setInt("-maxhmmpf", 2000);
c.setInt("-maxwpf", 10);
c.setInt("-pl_window", 2);
c.setBoolean("-backtrace", true);
c.setBoolean("-bestpath", false);
答案 0 :(得分:2)
现在不支持在pocketpshinx中简单地拒绝语法外单词,尽管它很快就会出现。有关更多信息,请参阅
http://cmusphinx.sourceforge.net/wiki/faq#qcan_pocketsphinx_reject_out-of-grammar_words_and_noises
您仍然可以通过电话循环模拟语法外的单词,这可能会让您有所拒绝。为此,您需要以特殊方式构造语法并在那里添加垃圾电话。有关详细信息,请参阅
http://sourceforge.net/p/cmusphinx/discussion/help/thread/1c6cb941/?limit=50#efa9
语法格式化在那里,但想法很简单,你只需在循环中添加手机:
<result> = word1 | word2 | (phone1 | phone2 | .... | phone 39)*
对于IPhone Openears实施一个拒绝的特殊模块,它不是主要发行版的一部分: