Wejście strumieniowe do System.Speech.Recognition.SpeechRecognitionEngine

Próbuję zrobić „strumieniowe” rozpoznawanie mowy w C # z gniazda TCP. Problem mam to, że SpeechRecognitionEngine.SetInputToAudioStream () wydaje się wymagać strumienia o określonej długości, który może szukać. W tej chwili jedynym sposobem, w jaki mogę pomyśleć o wykonaniu tej pracy, jest wielokrotne uruchamianie rozpoznawania na MemoryStream, gdy pojawia się więcej danych wejściowych.

Oto kod do zilustrowania:

            SpeechRecognitionEngine appRecognizer = new SpeechRecognitionEngine();

            System.Speech.AudioFormat.SpeechAudioFormatInfo formatInfo = new System.Speech.AudioFormat.SpeechAudioFormatInfo(8000, System.Speech.AudioFormat.AudioBitsPerSample.Sixteen, System.Speech.AudioFormat.AudioChannel.Mono);

            NetworkStream stream = new NetworkStream(socket,true);
            appRecognizer.SetInputToAudioStream(stream, formatInfo);
            // At the line above a "NotSupportedException" complaining that "This stream does not support seek operations."

Czy ktoś wie, jak to obejść? Musi obsługiwać dane strumieniowe, ponieważ działa poprawnie z mikrofonem przy użyciu SetInputToDefaultAudioDevice ().

Dzięki, Sean

questionAnswers(5)

yourAnswerToTheQuestion