RecognitionListener:OnPartialResults vs OnResults

时间:2017-11-07 15:20:45

标签: android google-text-to-speech

在性能和可用性方面,最佳方法是什么?这两种方法有哪些主要区别?

我目前在“OnResults”上有一个实现,它持续监听并与几个字符串进行比较,对检测到的每个单词采取不同的操作。然而,它有时无法识别单词,有时甚至听不到任何内容。如果我将逻辑移到“OnPartialResults”会改善可用性吗?

1 个答案:

答案 0 :(得分:6)

当SpeechRecognizer完成收听时,会调用

onResults。 当SpeechRecognizer检测到您说出的新单词时,即使在收听结束之前,也会调用onPartialResults

对于单个说出的单词,它们都应该得到相同的结果,但是如果你的语音更长,onResults可以修改你的输出,使它在语法上更正确(但只是一点点)。

使用它们取决于您的目的。但onResults给出了更准确的结果。

如果你想将口语单词与动作匹配,请创建自己的匹配器,这将选择最佳匹配(但并不总是相等,因为它始终不起作用)。

有关onResultsonPartialResults的更多信息,请访问developer.android.com

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

intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
相关问题