在Android语音识别中,任何人都可以知道如何在我们停止听到语音后考虑输入可能完成后增加应该花费的时间。我需要在语音识别期间在非常短的中间语音暂停期间防止终点指针切断。如果有人知道解决方案,请回复。任何回应都将不胜感激。
提前致谢
答案 0 :(得分:5)
嗨我也有这个问题,但我找到了一些东西,
这是我的代码
private void startVoiceRecognitionActivity()
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
// intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 2000000);
// intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, 2000000);
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS, 20000000);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "XXXXXXX");
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
}
在google API中我发现了3个额外的更改时间问题,但它们似乎都没有用,你也可以尝试测试它们。
答案 1 :(得分:2)
这两个参数是相关的,它们控制识别器在停止前需要听到的静音量。
EXTRA_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS 要么 EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS
他们似乎都控制着同样的东西,而且它使用的东西也低得多。
例如,如果complete_silence = 20000且可能= 10000,则识别器在听到10000毫秒的静音后将停止。
答案 2 :(得分:2)
String EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS The amount of time that it should take after we stop hearing speech to consider the input complete.
String EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS The minimum length of an utterance.
String EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS The amount of time that it should take after we stop hearing speech to consider the input possibly complete.
这些参数已停止为Jelly Bean设备工作。它们仍适用于ICS设备及其下方。
答案 3 :(得分:0)
尝试一下,它对我有用。 5秒等你开始说话
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS, 50000000);