使用来自Skype呼叫的MemoryStream,使用SAPI 5.4或MS Speech SDK v11在C#中进行语音识别

tim*_*ror 5 c# memorystream skype sapi

我正在尝试使用SAPI 5.4(也是MS Speech Platform SDK v11)对来自Skype呼叫的音频执行连续语音识别.

我可以使用SKYPE4COMLib来获取来自Skype的音频,并通过发出ALTER CALL指令将其推送到TCP端口.您可以将Skype音频定向到文件或TCP套接字.文件工作正常,但我想让它现场运行识别,所以使用TCP套接字.

然后,我构建了一个TCP侦听器来收集传入的数据(音频原始格式),并将字节数组作为MemoryStream传递给SAPI.我已经设置了SAPI,以期望16bit,16khz,mono,PCM格式的原始音频.然而,识别事件永远不会发生?!

我已经尝试将原始音频保存到磁盘,然后将其读入SAPI并且工作正常......因此数据本身很好,Skype正在发送音频.然而,这不能让我做我需要的持续认可.

使用WAV文件或从磁盘或麦克风加载的原始文件,SAPI识别代码可以正常工作.我无法从MemoryStream中获取它.

我发现这篇类似的文章,似乎没有任何建议对我有用,讨论似乎已经变得安静了.

将输入流式传输到System.Speech.Recognition.SpeechRecognitionEngine

有没有人对如何成功让SAPI持续识别C#中作为MemoryStream发送的原始音频的语音有任何指导?

小智 0

当您使用流音频时,我认为您应该使用 recognizer.RecognizeAsync