可能是由于SpeechRecognizer被设定为在识别不到语音输入时自动停止而导致的。为了解决这个问题,可以按照以下步骤:
@Override
public void onResults(Bundle results) {
// 处理语音识别结果
// ...
// 重启SpeechRecognizer
mSpeechRecognizer.cancel();
mSpeechRecognizer.startListening(mSpeechRecognizerIntent);
}
@Override
public void onError(int errorCode) {
// 处理语音识别错误
// ...
// 重启SpeechRecognizer
mSpeechRecognizer.cancel();
mSpeechRecognizer.startListening(mSpeechRecognizerIntent);
}
@Override
public void onPartialResults(final Bundle partialResults) {
// 处理部分语音识别结果
// ...
// 重启SpeechRecognizer
mSpeechRecognizer.cancel();
mSpeechRecognizer.startListening(mSpeechRecognizerIntent);
}
这样,即使SpeechRecognizer在识别不到语音输入时自动停止,也能够及时地重启SpeechRecognizer,保证语音识别的连贯性。