我的工作是将通过语音执行“忘词”和“上牌”玻璃的应用。 该应用程序工作得很好,除了从当一句话也没说要当执行动作就是1秒以上的时间。 这是一个足够长的时间延迟,这是明显的。 这不尽快谷歌有它以“OK玻璃”作出回应。
最明显的变化似乎是实施:EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS和/或EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS和/或EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS
但目前没有任何效果。 它也是在Android的RecognizerIntent网页注意到所有这三道:“还请注意,某些值可能会导致意外或意外的结果 - 明智地使用另外,根据识别器实现,这些值可能没有任何效果!”
下面是代码,如何这主实现:
speechIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
speechIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
speechIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getApplication().getPackageName());
speechIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
speechIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS, Long.valueOf(100));
speechIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, Long.valueOf(100));
speechIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, Long.valueOf(100));
speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
speechRecognizer.setRecognitionListener(this);
if (SpeechRecognizer.isRecognitionAvailable(this)) {
speechRecognizer.startListening(speechIntent);
}
我曾尝试与新龙(),并更换Long.valueOf()仅100(我也试过500的值,如果由于某种原因,100只是小)。 使用Long.valueOf建议Eclipse的警告()。
结果在onPartialResults回来,这个过程中更好地工作,然后onResults因为onResults等待一个暂停。 由于测试了上述3个演员,我不得不回来onResults的结果,但没有改变。
什么我在这里失踪的任何想法? 如果您需要看到更多的代码,让我知道。 谢谢。