2011-08-14 12 views
7

Pracuję nad małą aplikacją do ćwiczeń, korzystając z rozpoznawania mowy firmy Microsoft. Nie mogę sprawić, by rozpoznała pojedyncze słowa wystarczająco szybko dla tego, co robię. Chciałbym móc normalnie mówić, a system będzie chwytał "słowa kluczowe" z tego, co mówię i tworzy ciąg. Obecnie używam niestandardowej gramatyki 5 słów. Czerwony, niebieski, żółty, zielony, pomarańczowy. Na przykład, jeśli mówię Czerwony niebieski żółty. Silnik chwyci "czerwony", a reszta trafi do pustki.Prędkość rozpoznawania mowy firmy Microsoft

Próbowałem przy użyciu następujących:

sr.RecognizeAsync(RecognizeMode.Single) 

następnie zresetować go z powrotem do trybu pojedynczego po AudioState zmian „zatrzymany”. Nie jest to wystarczająco szybkie, aby uchwycić następne słowo. Myśli?

Odpowiedz

6

Czy próbowałeś już PauseRecognizerOnRecognition. Wygląda na to, że ta funkcja buforuje twoje wejście audio podczas przetwarzania poprzedniego dźwięku.

Z góry MSDN linku:

Kiedy PauseRecognizerOnRecognition jest prawdą, podczas wykonywania tych SpeechRecognized procedur obsługi przerw serwisowych rozpoznawania mowy i buforów wejściowych audio jako nowy przylatuje. Po zakończeniu obsługi zdarzenia SpeechRecognized , usługa rozpoznawania mowy wznawia rozpoznawanie, a rozpoczyna przetwarzanie informacji z bufora wejściowego.

+0

W połączeniu z RecognizerAudioPosition udało mi się uzyskać wyniki, których szukałem. Dziękuję Ci bardzo! –

+0

@Josh R Cieszymy się z pomocy –

+0

Czy możesz pokazać, jak to działa? Mam te same kłopoty. –