我有一个实现RecognitionListener
. 为了使其连续,每次onEndOfSpeech()
我再次启动监听器时:
speech.startListening(recognizerIntent);
但是,它需要一些时间(大约半秒)才能开始,所以有半秒的间隙,没有人在听。因此,我想念在那个时差里说的话。
另一方面,当我使用谷歌的语音输入而不是键盘来口述消息时——这个时间间隔不存在。含义 - 有一个解决方案。
它是什么?
谢谢
我有一个实现RecognitionListener
. 为了使其连续,每次onEndOfSpeech()
我再次启动监听器时:
speech.startListening(recognizerIntent);
但是,它需要一些时间(大约半秒)才能开始,所以有半秒的间隙,没有人在听。因此,我想念在那个时差里说的话。
另一方面,当我使用谷歌的语音输入而不是键盘来口述消息时——这个时间间隔不存在。含义 - 有一个解决方案。
它是什么?
谢谢
有如下选项:
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, 2000); // value to wait
或者
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 2000);
这些不再适用于 Jelly Bean 及以上版本,但适用于 ICS 及以下版本 - 不确定是有意还是错误!
尝试查看其他几个 api ......
您可以使用全双工 google api(其速率上限为每天 50)
或者,如果您喜欢这个总体思路,请查看此处讨论的 ibm 的 watson
IMO - 它更复杂但没有上限。