Ich entwickle in Android und SpeechRecognizer
verwenden, um kontinuierliche Spracherkennung zu implementieren.Warum ist der SpeechRecognizer beschäftigt, wenn ich ihn starte, nachdem der onEndOfSpeech aufgerufen wurde?
Nach dem Start der Spracherkennung über folgenden Code:
private void startListening(){
recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en");
recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getActivity().getPackageName());
recognizerIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS,Long.valueOf(3000L));
recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,1);
}
Und nennen startListening()
wieder, wenn onEndOfSpeech
aufgerufen wurde.
Aber die onError
wird aufgerufen, und zeigen SpeechRecognizer.ERROR_RECOGNIZER_BUSY
.
Q1: Warum die SpeechRecognizer
beschäftigt ist, wenn ich es nach dem onEndOfSpeech
Start aufgerufen wurde?
Q2 Wie implementiert man die crooect Art der kontinuierlichen Spracherkennung?
Danke, ich werde es versuchen! – Wun
Warum hört es nach ein paar Versuchen auf zu arbeiten? Oder verwende ich es falsch? – edwardffs