3

我在 Android 上成功使用了 PocketsphinxDemo。我有一组非常有限的单词要识别,说 3 个不同的单词。我目前得到很多误报——说话时,Pocketsphinx 认出了我的三个词之一,尽管它们没有被说出来。

由于我找不到任何关于 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);
4

1 回答 1

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 实现了一个特殊的拒绝模块,它不是主要分布的一部分:

http://www.politepix.com/rejecto/

于 2013-01-07T21:35:40.330 回答