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