我想要完成的事情:
- 在C#中捕获RTP流
- 将该流转发到System.Speech.SpeechRecognitionEngine
我正在创建一个基于Linux的机器人,它将接收麦克风输入,发送Windows机器,它将使用Microsoft语音识别处理音频并将响应发送回机器人.机器人可能距离服务器数百英里,所以我想在互联网上这样做.
到目前为止我做了什么:
- 让机器人使用FFmpeg生成以MP3格式(其他可用格式)编码的RTP流(机器人在运行Arch Linux的Raspberry Pi上运行)
- 使用VLC ActiveX控件在客户端计算机上捕获流
- 发现SpeechRecognitionEngine具有可用的方法:
- recognizer.SetInputToWaveStream()
- recognizer.SetInputToAudioStream()
- recognizer.SetInputToDefaultAudioDevice()
- 看着使用JACK将应用程序的输出发送到线路输入,但完全被它搞糊涂了.
我需要帮助的是:
我坚持如何实际将流从VLC发送到SpeechRecognitionEngine.VLC根本不公开流.有没有办法可以捕获流并将该流对象传递给SpeechRecognitionEngine?或者RTP不是解决方案吗?
在此先感谢您的帮助.