在性能和可用性方面,什么是最好的方法?这两种方法的主要区别是什么?
我现在有一个“onresults”的实现,它不断地监听和比较几个字符串,对检测到的每个单词采取不同的操作。然而,它有时不能识别单词,有时甚至什么也听不到。如果我将逻辑移到“onpartialresults”会提高可用性吗?
最佳答案
onResults
在SpeechRecognizer完成侦听时调用。onPartialResults
是在语音识别器检测到您所说的新词时调用的,甚至在听力结束之前。
这两种方法对于单个口语单词都应该得到相同的结果,但是如果您的演讲时间较长,onResults
可以修改您的输出,使其在语法上更加正确(但只是一点点)。
它们的使用取决于你的目的。但用onResults
给出了更准确的结果。
如果你想将口语与动作匹配,创建自己的匹配器,它将选择最佳匹配(但不总是相等的,因为它并不总是工作)。
有关onResults和onPartialResults的更多信息,请访问developer.android.com
重要提示:要获得部分结果,必须添加额外的识别器意图:
intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);