如何解决Android:语音识别是否明确停止?
| 我知道您可以通过调用以下命令来增加考虑输入完成的时间:intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS,5000);
但是,在启动Android语音识别活动之后,有一种方法可以明确地将其停止,例如在收到“关键字”之后。
解决方法
@迈克是正确的。
这有效:
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS,new Long(2000));
您已指定一个Long。仅输入数字(\“ 2000 \”)会被解释为Integer,这是无效的。
,您可以通过将SpeechRecognizer类与自定义UI结合使用来代替RecognizerIntent意向来实现。 SpeechRecognizer类具有stopListening()方法,一旦用户按下“停止”按钮,便可以显式调用该方法。
另一种尝试的方法是使用EXTRA_PARTIAL_RESULTS请求部分结果,并在RecognitionListener的onPartialResults回调中搜索您的“ stop关键字”,然后在检测到回调时停止stopListening()。
,找到了! =)
您可以在SpeechRecognizer object
上使用.stopListening()
。
SpeechRecognizer hear = NULL;
//set up the recognizer and intent
hear.stopListening();
我将其放在可运行的语言中,以便可以控制它结束语音输入的时间,如果语音输入结束,则删除了该可运行语言的回调,因此它不会尝试停止已经停止的语音输入(或附带损害)并结束之后的语音输入)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。