RecognitionListener:OnPartialResults 与 OnResults

RecognitionListener: OnPartialResults vs OnResults

就性能和可用性而言,最佳方法是什么?这两种方法的主要区别是什么?

我目前在 "OnResults" 上有一个实现,它不断监听并与几个字符串进行比较,对检测到的每个单词采取不同的操作。然而,它有时无法识别单词,有时甚至什么都不听。如果我将逻辑移动到 "OnPartialResults" 会提高可用性吗?

onResults 在 SpeechRecognizer 完成侦听时调用。 onPartialResults 在 SpeechRecognizer 检测到您所说的新词时调用,甚至在收听结束之前。

对于单个口语单词,他们应该得到相同的结果,但如果您的演讲较长,onResults 可以修改您的输出,使其在语法上更正确(但只是一点点)。

它们的使用取决于您的目的。但是 onResults.

给出了更准确的结果

如果您想将口语与动作相匹配,请创建自己的匹配器,它会选择最佳匹配(但并不总是相等,因为它并不总是有效)。

有关 onResults and onPartialResults 的更多信息,请访问 developer.android.com

重要提示:要获得部分结果,您必须向识别器意图添加额外内容:

intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);