Android: распознавание голоса прекращается явно?

1

Я знаю, что вы можете увеличить количество времени, чтобы рассмотреть ввод завершен, позвонив:

intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS,5000);

Однако есть ли способ после запуска активности распознавания голоса Android, чтобы остановить его явно, скажем, после получения "ключевого слова".

  • 0
    Я нашел onStopListening (RecognitionService.Callback listener) Здесь: developer.android.com/reference/android/speech/… но я не уверен, что это то, что я ищу .....
  • 0
    Также я могу попробовать (если не найдено реального решения) - увеличить количество времени, в течение которого распознавание голоса ожидает завершения высказывания, затем проанализировать результаты, и если ключевое слово для обозначения пользователя не найдено, перезапустите намерение распознавания голоса ... хакерский да, но может быть работа вокруг ..
Теги:
voice-recognition

2 ответа

1
Лучший ответ

@Mike прав.

Это работает:

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, new Long(2000)); 

У вас есть длинный. Просто поместить число ( "2000" ) интерпретируется как целое, что недопустимо.

0

Вы можете сделать это, используя класс SpeechRecognizer с пользовательским интерфейсом вместо RecognizerIntent. SpeechRecognizer класс имеет stopListening() метод вы можете вызывать явно, как только пользователь нажимает кнопку "Стоп".

Другой способ попробовать - запросить частичные результаты с помощью EXTRA_PARTIAL_RESULTS и выполнить поиск ключевого слова "stop" в RecognitionListener onPartialResults обратный вызов, затем stopListening(), когда он обнаружен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню