Ich versuche, "Streaming" Spracherkennung in C# von einem TCP-Socket zu tun. Das Problem, das ich habe, ist, dass SpeechRecognitionEngine.SetInputToAudioStream() scheint, einen Stream einer definierten Länge zu verlangen, die suchen kann. Im Augenblick ist die einzige Möglichkeit, die ich denken kann, diese Arbeit zu machen, ist immer wieder die Erkennungs auf einem Memorystream läuft als mehr Input kommtStreaming-Eingang zu System.Speech.Recognition.SpeechRecognitionEngine
Hier einige Code sind zu veranschaulichen.
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."
Weiß jemand, wie man um das herum? Es muss Streaming-Eingaben anderer Art unterstützen, da es mit dem Mikrofon funktioniert, das SetInputToDefaultAudioDevice() verwendet.
Danke, Sean
Vielleicht 'SetInputToDefaultAudioDevice()' ist Microsoft "schwarze Magie" (häufig), oder es führt eine Art der Dosierung wie Sie vorgeschlagen. –