Ale*_*x B 5 android speech-recognition
在调用startListening()之后,在Android上使用SpeechRecognizer.stopListening()时遇到问题.它似乎没有任何效果.继续处理音频,并返回识别结果,就像没有调用stopListening()一样.
还有其他人有类似的问题吗?我可能做错了吗?
一个可能的线索:在调用stopListening()之后,立即使用SpeechRecognizer.ERROR_CLIENT调用onError().也许这意味着停止调用失败了?
在检测到语音开始之前或正在处理语音时调用stopListening()时,都会出现此问题.
startListening()和stopListening()都是从主线程调用的.
至少在两个不同的设备上测试了Android 5和6.
stopListening()在你的解释中,行为符合预期。在此之前,此调用不会阻止识别器处理语音输入。
预计它也会onError()与 一起调用SpeechRecognizer.ERROR_CLIENT。如果您不希望将此作为“错误”处理,则在您调用的代码中stopListening()添加一个简单的布尔值:
deliberatelyCalledStop = true;
Run Code Online (Sandbox Code Playgroud)
然后在错误处理中,您将知道这是否已作为预期结果抛出,并且您可以忽略它。
为了关闭识别服务并忽略迄今为止检测到的所有语音输入,您需要调用:
recognizer.cancel();
recognizer.destroy(); // if you want to destroy it
Run Code Online (Sandbox Code Playgroud)
这些方法将达到你想要的效果。
请注意,在撰写本文时,Google 的识别服务存在一些相当大的错误。
我建议您阅读我对这个问题的回答,然后查看我已经报告的错误的要点。
| 归档时间: |
|
| 查看次数: |
1892 次 |
| 最近记录: |