2012-01-31 11 views
6

Mam klienta, który potrzebuje aplikacji na Androida, która rozpoznaje polecenia mówione. Z tego, co rozumiem, wbudowana funkcja głosowa na tekst faktycznie wysyła dane do serwerów Google, które następnie odsyłają tłumaczenie tekstowe. Jest to poważny problem, ponieważ dane głosowe są niezwykle wrażliwe (chyba że dane są szyfrowane, gdy są wysyłane do i od Google - ale wątpię, że są zaszyfrowane).Czy można skonfigurować CMU Sphinx do rozpoznawania ~ 200 słów?

Są 2 opcje, które mogę wymyślić. Pierwszy to konwersja mowy na tekst na Androida, choć wydaje się, że byłaby to niezwykle kosztowna operacja. Drugą możliwością jest przekonanie serwera lokalnego do konwersji danych (mógłbym zaszyfrować dane głosowe i tłumaczenie podczas wysyłania do i od). Czy to coś, co może sfrunąć CMU? Warto zauważyć, że będę miał również dostęp do serwera Asterisk, który mógłby w tym pomóc (nie wiem).

W rzeczywistości powinno być tylko ~ 200 słów, które trzeba będzie rozpoznać. Wolałbym rozwiązania open source/free software, ale jestem również otwarty na komercyjne rozwiązanie (być może FlexT9). Idealnie, mogę wysłać gdzieś strumień audio, odzyskać String będący tekstem, a następnie mogę parsować i robić inne rzeczy za pomocą String.

W przeszłości nie zrobiłem wiele androidów ani żadnego rozwoju rozpoznawania mowy, więc mam nadzieję, że ktoś przynajmniej wskaże mi właściwy kierunek. Dzięki!

Odpowiedz

10

CMUSphinx to zestaw narzędzi do rozpoznawania mowy open source, z którego można korzystać w celu tworzenia aplikacji. Zawiera narzędzia, biblioteki i dane, które umożliwią zbudowanie aplikacji mowy. Możesz dowiedzieć się więcej o CMUSphinx na powyższej stronie internetowej.

Na Androidzie masz kilka opcji do wykorzystania CMUSphinx:

  1. Rozpoznaj dźwięk w urządzeniu. Do tego można skompilować silnik Pocketsphinx dla Androida. Szczegółowe informacje: see this blog post.

  2. Rozpoznawanie dźwięku na serwerze. Jako serwer możesz używać Pocketsphinx lub Sphinx4. Możesz wysyłać audio w formacie skompresowanym flac lub wyodrębnić funkcje rozpoznawania mowy na urządzeniu i wysłać strumień funkcji do serwera.

CMUSphinx oferuje kilka modeli akustycznych, które umożliwią rozpoznawanie dźwięku w kilku językach, takich jak angielski, francuski, mandaryński, niemiecki, holenderski, rosyjski.

Możesz także poprawić wynik rozpoznawania dzięki narzędziom adaptacyjnym.

Jeśli masz jakiekolwiek pytania dotyczące CMUSphinx, zapraszam do ask in our community forums.

4

Zamknięte źródło, ale za darmo, to silniki mowy firmy Microsoft. Dla niektórych tła zobacz What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?. Aby uzyskać więcej informacji, można wypróbować: https://stackoverflow.com/a/4217638/90236

Kompletny zestaw SDK platformy Microsoft Server Speech 11 jest dostępny pod adresem http://www.microsoft.com/download/en/details.aspx?id=27226. Silnik mowy jest do pobrania za darmo.

+0

Czy dostępne jest również rozwiązanie Microsoft dla systemu Android (ten, który sugerujesz)? – srf

+0

To tylko komponent po stronie serwera. Trzeba będzie zbudować własną implementację klienta, aby przechwycić dźwięk i wysłać go na serwer. –

Powiązane problemy