微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RecognitionListener.onError是否自动运行SpeechRecognizer.cancel?

如何解决RecognitionListener.onError是否自动运行SpeechRecognizer.cancel?

| 由于各种原因,我需要使用原始的
SpeechRecognizer
API,而不是更简单的
RecognizerIntent
(RECOGNIZE_SPEECH)活动。 这意味着,除其他外,我需要自己处理
RecognitionListener.onError()
。 针对某些错误,我只是想重新开始收听。这看起来很简单,但是当我在出错时仅调用
SpeechRecognizer.startListening()
时,有时似乎会触发两个不同的错误
 ERROR/ServerConnectorImpl(619): PrevIoUs session not destroyed
\"concurrent startListening received - ignoring this call\"
这暗示着我应该在尝试再次调用before3 should之前进行一些清理。 如果为真,则意味着在RecognitionListener错误发生时,侦听不会自动停止和/或取消。 某些错误也可能会停止/取消侦听,而其他错误则不会。实际上只有9个SpeechRecognizer错误: ERROR_NETWORK_TIMEOUT ERROR_NETWORK ERROR_AUdio ERROR_SERVER ERROR_CLIENT ERROR_SPEECH_TIMEOUT ERROR_NO_MATCH ERROR_RECOGNIZER_BUSY ERROR_INSUFFICIENT_PERMISSIONS 由于文档不是很详细地说明哪个错误会取消监听,而哪些不会取消,您是否根据您的经验知道在重新尝试“ 3”之前需要进行清理(以及在何种程度上进行清理)的错误?     

解决方法

不,调用
onError
时不会调用
cancel
。您可以在这里查看源代码。     ,您可以通过destroy()销毁当前会话。您可以再次重新启动它     ,实际上是Femi,某些错误条件确实会使转录服务无法监听(例如,SpeechRecognizer.ERROR_SPEECH_TIMEOUT)。不必调用destroy,只需再次开始侦听即可。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。