SpeechRecognizer не работает, он не слушает даже после того, как я использую метод startListening ()
Далее идет инициализация speechRecognizer:
i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
i.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 3);
i.putExtra(EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS, 20000);
i.putExtra(EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 10000);
i.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, "voice.recognition.test");
mySpeechRecognizer.startListening(i);
Далее реализованы методы:
private void initializeSpeechRecognizer() {
if (SpeechRecognizer.isRecognitionAvailable(this)) {
mySpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
mySpeechRecognizer.setRecognitionListener(new RecognitionListener() {
@Override
public void onReadyForSpeech(Bundle bundle) {
Toast.makeText(TestActivity.this, "Ready to hear", Toast.LENGTH_SHORT).show();
}
@Override
public void onBeginningOfSpeech() {
}
@Override
public void onRmsChanged(float v) {
}
@Override
public void onBufferReceived(byte[] bytes) {
}
@Override
public void onEndOfSpeech() {
}
@Override
public void onError(int i) {
}
@Override
public void onResults(Bundle bundle) {
List<String> result = bundle.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
processResult(result.get(0));
}
@Override
public void onPartialResults(Bundle bundle) {
}
@Override
public void onEvent(int i, Bundle bundle) {
}
});
}
}
здесь метод processResult (result.get (0)) обрабатывает результат, полученный от onResults ()
Я также дал разрешение на RECORD_AUDIO, но это не работает. пожалуйста, помогите.