Porównanie użycia funkcji rozpoznawania mowy w Androidzie: przez Intent lub on-thread?
Android zapewnia dwa sposoby korzystania z funkcji rozpoznawania mowy.
Thepierwszy sposób jest przezIntent
, jak w tym pytaniu:Przykład zamierzony. NowyActivity
jest wypychany na szczyt stosu, który nasłuchuje użytkownika, słyszy jakąś mowę, próbuje go transkrybować (zwykle przez chmurę), a następnie zwraca wynik do mojej aplikacji, za pośrednictwemonActivityResult
połączenie.
Thedruga jest przez uzyskanieSpeechRecognizer
, jak kod tutaj:Przykład SpeechRecognizer. Tutaj wygląda na to, że mowa jest nagrywana i zapisywana na innym wątku, a następnie wywołania zwrotne przynoszą mi wyniki. I to się robibez wychodzenia z mojegoActivity
.
Chciałbym zrozumiećplusy i minusy tych dwóch sposobów rozpoznawania mowy.
Co mam do tej poryUżywającIntent
:
ale
może być powolny przy tworzeniu nowej aktywności z własnym oknemUżywającSpeechRecognizer
:
ale
jest ograniczone do wywoływania z głównego wątkuwiększa kontrola wymaga więcej kontroli błędów.