Я хочу прослушать первое слово от пользователя.Когда начинается распознавание речи, я слышу бип-звук, но сразу же слышу звук остановки.Я заметил, что onRMSchange - единственный метод, где что-то происходит.
Так я использую SpeechRecognizer.Когда я запускаю приложение, я подключаюсь к Интернету.
Intent speechintent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
speechintent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS , 1000);
speechintent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
speechintent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en");
SpeechRecognizer speechRecognizer = SpeechRecognizer.createSpeechRecognizer(Inference.getmContext());
speechRecognizer.setRecognitionListener(new RecognitionListener() {
@Override
public void onReadyForSpeech(Bundle params) {
}
@Override
public void onBeginningOfSpeech() {
Log.i("beg", "beg");
}
@Override
public void onRmsChanged(float rmsdB) {
Log.i("on rms changed", "rms changed");
}
@Override
public void onBufferReceived(byte[] buffer) {
Log.i("ANSWER","END");
}
@Override
public void onEndOfSpeech() {
Log.i("ANSWER","END");
}
@Override
public void onError(int error) {
}
@Override
public void onResults(Bundle results) {
Log.i("ANSWER",results.getString(RecognizerIntent.EXTRA_RESULTS));
ArrayList<String> result = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
}
@Override
public void onPartialResults(Bundle partialResults) {
Log.i("ANSWER",partialResults.getString(RecognizerIntent.EXTRA_RESULTS));
}
@Override
public void onEvent(int eventType, Bundle params) {
}
});
speechRecognizer.startListening(speechintent);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
speechRecognizer.stopListening();
}
}, 1000);
Не знаю, почему оно не позволяет мне говорить.
ОБНОВЛЕНИЕ:
Этопорядок, в котором он проходит через методы:
onRmsChanged
onReadyForSpeech
onError
onError Я получаю код ошибки 2, что означает «Ошибка сети», но я уже установил речь Google Text To, я поставил разрешения INTERNET
и RECORD_AUDIO
в Манифесте, и я подключен к Интернету.Я не понимаю, что не так?