2014-11-21 12 views
6

buduję rozpoznawania mowy android app, który będzie służył jako wirtualnego osobistego asystenta z zadań, takich jak:PocketSphinx Spracherkennung VS Google API

Zgłaszanie/Przypomnienia

Pogoda Informacje

zapytań ogólne do Wolfram | Alpha/Wikipedia - (Kto wyreżyserował Ghostbusters, co to jest kurs wymiany £ - $)

Moje pytanie brzmi: czy używać Pocketsphinx czy Google API?

Początkowo ustawiłem to z "android.speech.RecognitionListener", działało świetnie, jednak chcę zaimplementować wykrywanie słów kluczowych, aby użytkownik nie musiał mieć żadnej interakcji poza samą rozmową.

Wygląda na to, że Google API nie obsługuje tego, więc zajrzałem do korzystania z pocketsphinx i nadal używam google do reszty aplikacji (Jak słyszałem, że pocketsphinx nie jest tak dokładny?) Jednak te dwa nie dogadać się, ponieważ nie mogą jednocześnie zajmować mikrofonu.

Czy istnieje dobry sposób na przełączanie się między identyfikatorami? (nie mogę nawet importować do tego samego projektu)

Czy powinienem po prostu pójść z pocketshinsem i poradzić sobie z niższą dokładnością?

sugestie byłoby pomocne

Cheers

+1

Jaki jest twój problem z realizacją słowa budzącego się z pocketsphinx, a następnie przejściem do rozpoznawania google przez zatrzymanie nagrywania dźwięku za pomocą pocketsphinx? – Florent

+0

Nie można ich zaimportować do tego samego projektu, o ile wiem, ale wydaje mi się, że mogłem rozwiązać problem w ciągu ostatnich 5 minut, kiedy rozumiem, dlaczego i jak nieco więcej, opublikuję odpowiedź tutaj dla przyszłych ludzi na korzyść – Aphire

+0

Pocketsphinx jest komicznie zły w porównaniu do GSR. Otrzymasz lepsze wyniki przez próbkowanie/dev/random. – Cerin

Odpowiedz

1

Dla każdego, kto chce realizować podobny projekt, znalazłem pracę wokół. Jest odrobinę hacky i nie do końca czysty, ale działa.

Używanie androida rozpoznawania mowy z przełącznikiem włączania/wyłączania, jak w wielu przykładach w Internecie, gdy funkcja onResults wraca, ciąg zostanie sprawdzony pod kątem wspomnianego "słowa-klucza", jeśli nie jest obecny, odrzuć ciąg, jeśli tak, przetwórz go. Gdy zapytanie zostanie przetworzone, a tekst na mowę odpowiada, programuj ponownie przycisk przełączania, zapewniając ciągłe słuchanie.

Wykonaj to samo w przypadku "onError". Zrobiłem też to onPartialResults, ale wydawało się, że wątek się zawiesił, nie do końca pewny dlaczego, ale po usunięciu wszystko wydaje się dobrze działać.

+0

, więc użyłeś Google API, prawda? – thanga

+0

Zrobiłem tak w końcu, nie dotknąłem projektu przez prawie dwa lata choć – Aphire

+0

oh ok..zakłada Aphire – thanga