Android 如何可靠地拒绝PocketSphinx中的格朗玛语

Android 如何可靠地拒绝PocketSphinx中的格朗玛语,android,cmusphinx,Android,Cmusphinx,我正在Android上成功地使用PocketsphinxDemo。我需要识别的单词非常有限,可以说3个不同的单词。 我现在有很多误报——在交谈时,Pocketsphenx认出了我的三个单词中的一个,尽管它们还没有被说出 由于我找不到pocketsphinx使用的参数的任何参考,我的问题是: 是否有一个参数使Pocketsphinx的反应更具限制性 我希望它只在Pocketsphinx高度“确定”匹配正确单词的情况下返回其识别猜测 以下是我当前使用的默认参数: c.setFloat("-sampr

我正在Android上成功地使用PocketsphinxDemo。我需要识别的单词非常有限,可以说3个不同的单词。 我现在有很多误报——在交谈时,Pocketsphenx认出了我的三个单词中的一个,尽管它们还没有被说出

由于我找不到pocketsphinx使用的参数的任何参考,我的问题是:

是否有一个参数使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);

目前还不支持简单地拒绝pocketpshinx中语法错误的单词,尽管它可能很快就会出现。有关更多信息,请参阅

你仍然可以用phone-loop模仿语法外的单词,这会给你一些拒绝。为此,您需要以一种特殊的方式构造语法,并在其中添加垃圾电话。有关更多详细信息,请参阅

这里的语法格式是错误的,但想法很简单,只需在循环中添加电话:

 <result> = word1 | word2 | (phone1 | phone2 | .... | phone 39)*
=word1 | word2 |(电话1 |电话2 |……|电话39)*
对于IPhone,Openears实现了一个特殊的拒绝模块,它不是主发行版的一部分:


谢谢你!我想试试。我目前使用lmtool online将语法转换为lm/dict文件。JSGF语法有类似的功能吗?如何将JSGF语法提供给pocketsphinx?pocketphinx_continuous-JSGF grammar.JSGF同样,在android上,语法是在RecognizerTask.javaok中配置的,这要归功于,但它只识别“垃圾”;-)