1) To jest właściwe podejście do wprowadzenia rozpoznawania głosu w służbie, jak to jest w Google API, gdzie stosowane są metody wywołania zwrotnego, aby uzyskać wyniki. Aby usługa działała nieprzerwanie, usługa musi radzić sobie z wakelockiem, aby uniknąć przechodzenia w tryb uśpienia. Więcej informacji znajduje się tutaj. Wake locks android service recurring Ma jedną wielką wadę - wysokie zużycie baterii, spowodowane ciągłą pracą procesora i ciągłymi obliczeniami przychodzących danych dźwiękowych. (Można zmniejszyć za pomocą filtrów, progów itp.)
2) Rozpoznawanie głosu nie jest prostym zadaniem. Potrzebuje ogromnej liczby obliczeń i danych, do których można się odnieść. Jeśli dźwięk wejściowy nie jest wyraźny (szum, wiele ludzkich głosów itp.), Trudniej jest uzyskać odpowiedni wynik. Co można zrobić, aby poprawić dokładność, filtruj dźwięk wejściowy: tłumienie szumów, filtr dolnoprzepustowy itp. Nie można oczekiwać 100% dokładności, ale można osiągnąć 80-95%.
Trudniej jest filtrować wiele ludzkich głosów. Można jednak zastosować algorytmy o prostej amplitudzie (poziom siły dźwięku) z progiem adaptacyjnym, który decyduje o rozpoczęciu i zakończeniu słowa. Pomysł polega na tym, że właściwy głos jest najgłośniejszy = najbliżej telefonu/urządzenia. Więc według 4) dokładność jest lepsza, gdy użytkownik mówi blisko mikrofonu, ponieważ jest to najgłośniejszy głos.
3) Nie wiem, co masz na myśli przez czujnik, ale istnieją algorytmy, które po prostu wykrywają ludzki głos, a nie odszyfrowują słów. Algorytmy te są nazywane Voice Activity Detection (VAD) Niektóre kod powinien znajdować się w dokumentacji projektowej Speex http://www.speex.org/
Najprostsza metoda do obsługi rozpoznawania głosu jest użycie Google Speech API w którym jest dość dobra, a to rozpoznać wiele języków, ale potrzebować Połączenie z Internetem - a uzyskanie wyniku zajmuje trochę czasu.
Szybsza jest Sfinks CMU, ale ma kilka modeli językowych, potrzebuje więcej pamięci RAM i obliczeń procesora, ponieważ wszystkie dekodowania dokonuje się na urządzeniu. W moim odczuciu jest to bardzo dobre, gdy dicitionary (słowa, które są rewidowane) jest małe jak polecenia (lewo, prawo, tył, stop, start itp.).
Czy chodzi ci o * rozpoznawanie głosu * czy rozpoznawanie mowy? (Przeczytaj fragment [tag: rozpoznawanie głosu]: "Rozpoznawanie głosu oznacza identyfikację osoby mówiącej i często jest niewłaściwie stosowane do oznaczenia" Rozpoznawanie mowy "- identyfikacja tego, co zostało powiedziane.") –
Następnym razem, spróbuj wyszukać jedno pytanie naraz i zadaj jedno pytanie na raz. To pomoże ci znaleźć odpowiedź. –