所有的问题都与CMUSphinx官方网站上关于口袋狮身人面像的android演示项目有关。
我不明白switchSearch()方法到底做了什么。方法是使用KWS_SEARCH="wakeup"属性,这个属性有什么用?它不会出现在语法文件(.gram)中。此属性的用途是什么?这个方法将searchName和KWS_SEARCH进行了比较,我不知道为什么。它还作为参数传递给识别器对象上的startListening()方法的KWS_SEARCH。为什么?
我不明白在超时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);
}发布于 2017-03-16 20:22:05
来自Pocketsphinx tutorial
开发人员可以使用不同的语法和语言模型配置多个“搜索”对象,并在运行时切换它们,为用户提供交互式体验。
有不同的可能搜索模式:
要添加搜索,需要指向描述搜索的语法/语言模型。语法的位置是特定于应用程序的。如果只需要简单的识别,则添加单个搜索或仅使用配置选项配置所需的模式就足够了。
搜索的确切设计取决于您的应用程序。例如,您可能希望首先侦听激活关键字,一旦关键字被识别,就切换到ngram搜索来识别实际的命令。识别命令后,您可以切换到语法搜索以识别确认,然后切换回关键字侦听模式以等待另一个命令。
我不明白switchSearch()方法到底做了什么。方法是使用KWS_SEARCH=的“wakeup”属性,这个属性有什么用呢?
"wakeup“是关键字定位搜索的搜索名称。它是在初始化识别器时添加的。名称可以是任意的,它只是标识搜索。
识别器也会将其作为参数传递给KWS_SEARCH对象上的startListening()方法。为什么?
startListening开始监听命名搜索。
我不明白在超时10000ms的情况下如何提高结果。
它与结果无关,它只是一个用户体验。当我们连续发现一个单词时,我们不需要超时。当我们识别出一个命令时,我们等待10秒,然后返回到定位模式。
https://stackoverflow.com/questions/42810437
复制相似问题