2012-12-24 20 views
6

[prawdopodobnie duplikat] Ale nie znalazłem odpowiedzi na moje pytania poniżej.Android: rozpoznawanie mowy

Robiłem rozeznanie rozpoznawania głosu przez ostatnie dwa dni, a ja nie dostałem odpowiedzi na moje pytania:

  1. Czy to możliwe, aby uruchomić rozpoznawanie mowy jako usługę? Chciałbym zaimplementować coś takiego: Muszę zadzwonić pod numer, chociaż mój telefon poprzez rozpoznawanie głosu jest w trybie uśpienia.
  2. Czy rozpoznawanie głosu działa poprawnie, wykrywając słowa, gdy jestem w pociągu, autobusie, itp.?
  3. Czy istnieje czujnik wykrywający głos oprócz rozpoznawania głosu?
  4. Aby rozpoznawanie głosu działało prawidłowo, czy użytkownik musi mówić bliżej do telefonu?
+7

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.") –

+2

Następnym razem, spróbuj wyszukać jedno pytanie naraz i zadaj jedno pytanie na raz. To pomoże ci znaleźć odpowiedź. –

Odpowiedz

10

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.).

+0

Dziękuję za twoje dane wejściowe. Chciałem stworzyć aplikację, która automatycznie zadzwoni pod numer alarmowy, gdy powiem pomoc, bez względu na to, gdzie jestem. Mogę być w autobusie, na rynku lub gdzieś.Nie otrzymałem odpowiedzi na moje pierwsze pytanie, daj znać, jeśli masz jakieś dane wejściowe? –

+0

Uaktualniłem moją odpowiedź, więc obejmuje ono również twoje pierwsze pytanie, w twoim przypadku Sphinx byłby bardzo szybki i bardzo wymagający, ponieważ do rozpoznania potrzebne jest tylko jedno słowo. "HELP" – MP23

+0

Jeszcze raz dziękuję za twoje dane wejściowe. Jeśli chodzi o czwarte pytanie i odpowiedź, jak już wspomniano, musimy mówić blisko mikrofonu, aby uzyskać lepszą dokładność. Załóżmy, że jestem w Busie i potrzebuję pomocy tam, gdzie jest zbyt tłoczno i ​​zbyt głośno, co może nie pomóc w uznaniu tego słowa za poprawne? –

Powiązane problemy