我对建立在PROC识别引擎SAPI代码如下所示:
ISpeechRecoContext cpRecoCtx;
// create the recognition context
cpRecoCtx = new SpeechLib.SpInProcRecoContext();
((SpInProcRecoContext)cpRecoCtx).Recognition +=
new _ISpeechRecoContextEvents_RecognitionEventHandler(RecoContext_Recognition);
/****** END: set up recognition context *****/
那么,如何设置我的音频输入默认在C#中的音频输入? 我已经在C ++的解决方案,但需要一个为C#。
默认的音频输入对象SpMMAudioIn
。
ISpeechRecoContext cpRecoCtx;
SpMMAudioIn audio = new SpMMAudioIn;
// set the audio input
cpRecoCtx.GetRecognizer.SetInput(audio);
埃里克,你的代码不能正常工作。 首先,没有“GetRecognizer”方法。 我把它换成什么应该工作该行。 你指的是什么版本的SAPI的? 我使用的“微软语音对象libary 5.4”。 接下来,你不显示怎么音频输入,你提到的设置到设备。 下面的代码应该工作,但它不会让你设置设备ID,它一直在VB6工作。 试图设置.DeviceID任何东西抛出异常:
SpeechLib.ISpeechRecoContext cpRecoCtx;
cpRecoCtx = new SpeechLib.SpInProcRecoContext();
SpeechLib.SpMMAudioIn audio = new SpeechLib.SpMMAudioIn();
// set the audio input
// cpRecoCtx.GetRecognizer.SetInput(audio); <--- no such method
audio.DeviceId = 1;
cpRecoCtx.Recognizer.AudioInputStream = audio;
当然,存在必须是一个方法来发送的输入为有效的MMSYS(WaveInOpen)输入流。