我在 Android 上成功使用 PocketsphinxDemo。我要识别的单词非常有限,请说 3 个不同的单词。
我目前得到了很多误报 - 在说话时,Pocketsphinx 识别出我的三个词之一,尽管它们没有被说出来。
由于我找不到任何有关 Pocketsphinx 正在使用的参数的引用,这是我的问题:
是否有一个参数可以让 Pocketsphinx 做出更严格的 react ?
我希望它仅在 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);
最佳答案
目前不支持简单拒绝 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 实现了一个特殊的拒绝模块,它不是主要发行版的一部分:
http://www.politepix.com/rejecto/
关于android - 如何在 PocketSphinx 中可靠地拒绝不合语法的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14201625/