所有问题都与android为pocketphinx的演示项目有关,在CMUSphinx的官方网站上给出。
我不明白方法switchSearch()
到底做了什么。该方法使用KWS_SEARCH="wakeup"
属性,该属性的用途是什么?它不会出现在语法文件(.gram)中。这个属性的目的是什么?该方法将searchName
与KWS_SEARCH
进行比较,我不知道为什么。 KWS_SEARCH
它也作为参数传递给识别器对象上的startListening()
方法。为什么呢?
我不明白如何使用10000ms的超时来改善结果。
这是switchSearch()
方法:
private void switchSearch(String searchName) {
recognizer.stop();
// If we are not spotting, start listening with timeout (10000 ms or 10 seconds).
if (searchName.equals(KWS_SEARCH))
recognizer.startListening(searchName);
else
recognizer.startListening(searchName, 10000);
String caption = getResources().getString(captions.get(searchName));
((TextView) findViewById(R.id.caption_text)).setText(caption);
}
答案 0 :(得分:0)
开发人员可以配置多个不同的“搜索”对象 语法和语言模型,并在运行时切换它们提供 为用户提供互动体验。
有不同的搜索模式:
- keyword - 有效地查找关键短语并忽略其他语音。允许配置检测阈值。
- 语法 - 根据JSGF语法识别语音。与关键词语法不同,搜索不会忽略不在语法中的词 但试图认出它们。
- ngram / lm - 用语言模型识别自然语音。
- allphone - 使用语音语言模型识别音素。每个搜索都有一个名称,可以通过名称引用,名称是 专用。函数ps_set_search允许激活 以前通过名称添加的搜索。
要添加搜索,需要指向语法/语言模型 描述搜索。语法的位置是特定的 应用。如果只需要简单识别就足够了 添加单个搜索或只配置所需的模式 配置选项。
搜索的确切设计取决于您的应用程序。对于 例如,您可能希望首先监听激活关键字 一旦关键字被识别,切换到ngram搜索以识别实际 命令。一旦识别出命令,就可以切换到语法 搜索以识别确认,然后切换回关键字 监听模式等待另一个命令。
我不明白switchSearch()方法的作用。该方法使用KWS_SEARCH =“wakeup”属性,该属性的用途是什么?
“wakeup”是关键字定位搜索的搜索名称。识别器初始化时添加了它。名称可以是任意的,它只是标识搜索。
KWS_SEARCH它也作为参数传递给识别器对象上的startListening()方法。为什么呢?
startListening开始使用命名搜索进行侦听。
我不明白如何使用10000ms的超时来改善结果。
它没有结果,它只是一种用户体验。当我们连续发现一个单词时,我们不需要超时。当我们识别命令时,我们等待10秒然后返回到定位模式。