我正在创建一个使用连续语音识别的应用程序。直到有一天我将手机更新到 Android 6.0.1 之前,它一直运行良好,所以我假设这是破坏代码的原因。现在,语音识别器几乎立即抛出一个 ERROR_NO_MATCH 错误,并且只监听不到一秒钟的输入,然后在它应该监听 5 秒时重新启动。这导致很难向应用程序发出命令。这是我的代码:
private void displaySpeechRecognizer() {
if(sr != null) {
sr.destroy();
}
sr = SpeechRecognizer.createSpeechRecognizer(this);
sr.setRecognitionListener(this);
intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
// Start the activity, the intent will be populated with the speech text
sr.startListening(intent);
}
@Override
public void onReadyForSpeech(Bundle params) {
}
@Override
public void onBeginningOfSpeech() {
}
@Override
public void onRmsChanged(float rmsdB) {
}
@Override
public void onBufferReceived(byte[] buffer) {
}
@Override
public void onEndOfSpeech() {
}
@Override
public void onError(int error) {
displaySpeechRecognizer();
}
最佳答案
我刚刚遇到了同样的问题。似乎该问题可能与“Ok,Google”功能的“始终在线”行为更改有关。 SpeechRecognizer throws onError on the first listening
关于java - Android Marshmallow 6.0.1 打破了我的连续语音识别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36115987/