Введение
Android предлагает два способа использования распознавания речи.
первый способ находится в Intent
, как в этом вопросе: Пример намерения. Новый Activity
помещается в верхнюю часть стека, который слушает пользователя, слышит некоторую речь, пытается переписать его (обычно через облако), а затем возвращает результат в мое приложение через вызов onActivityResult
.
второй - это получить SpeechRecognizer
, например код здесь: Пример SpeechRecognizer. Здесь, похоже, речь записывается и транскрибируется на каком-то другом потоке, а затем обратные вызовы приносят мне результаты. И это делается, не выходя из моего Activity
.
Я хотел бы понять плюсы и минусы этих двух способов распознавания речи.
Что у меня до сих пор
Используя Intent
:
- прост для кода
- избегает изобретать колесо
- обеспечивает постоянный пользовательский интерфейс распознавания речи на устройстве.
но
- может быть медленным для создания нового действия с его собственным окном
Используя SpeechRecognizer
:
- позволяет мне контролировать пользовательский интерфейс в моем приложении.
- дает мне дополнительные возможности для реагирования на (документация)
но
- ограничен вызываемым из основного потока
- Больше контроля требует большей проверки ошибок.