In Android 5 ho dovuto affrontare strani problemi. La prima chiamata allo standard startListening
di SpeechRecognizer risulta nell'errore con il codice di errore 7 (ERROR_NO_MATCH).SpeechRecognizer genera onError al primo ascolto
ho fatto test di app con il seguente codice:
if (speechRecognizer == null) {
speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
speechRecognizer.setRecognitionListener(new RecognitionListener() {
@Override
public void onReadyForSpeech(Bundle bundle) {
Log.d(TAG, "onReadyForSpeech");
}
@Override
public void onBeginningOfSpeech() {
Log.d(TAG, "onBeginningOfSpeech");
}
@Override
public void onRmsChanged(float v) {
Log.d(TAG, "onRmsChanged");
}
@Override
public void onBufferReceived(byte[] bytes) {
Log.d(TAG, "onBufferReceived");
}
@Override
public void onEndOfSpeech() {
Log.d(TAG, "onEndOfSpeech");
}
@Override
public void onError(int i) {
Log.d(TAG, "onError " + i);
}
@Override
public void onResults(Bundle bundle) {
Log.d(TAG, "onResults");
}
@Override
public void onPartialResults(Bundle bundle) {
Log.d(TAG, "onPartialResults");
}
@Override
public void onEvent(int i, Bundle bundle) {
Log.d(TAG, "onEvent");
}
});
}
final Intent sttIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
sttIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
sttIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en");
sttIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en");
speechRecognizer.startListening(sttIntent);
e hanno questa messaggi di log dopo la prima startListening
chiamata:
onError 7
onReadyForSpeech
onBeginningOfSpeech
onEndOfSpeech
onResults
E seguenti messaggi dopo l'altro startListening
chiamate:
onRmsChanged
...
onRmsChanged
onReadyForSpeech
onRmsChanged
...
onRmsChanged
onBeginningOfSpeech
onRmsChanged
...
onRmsChanged
onEndOfSpeech
onRmsChanged
onRmsChanged
onRmsChanged
onResults
Quindi, qual è la ragione di questo errore e come Lo aggiusto?
Potrebbe essere un bug nell'implementazione di SpeechRecognizer che si sta utilizzando. Quale implementazione è? Per esempio. Sto vedendo qualcosa di simile con Google App 4.7.13.19.arm. – Kaarel
Sì, @Kaarel, il problema è nella versione 4.7.13.19.arm – xVir