创建使用SAPI C#中,在进程内的语音识别?(Creating a In proc speech

2019-10-20 08:31发布

我对建立在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#。

Answer 1:

默认的音频输入对象SpMMAudioIn

ISpeechRecoContext cpRecoCtx;
SpMMAudioIn audio = new SpMMAudioIn;
// set the audio input
cpRecoCtx.GetRecognizer.SetInput(audio);


Answer 2:

埃里克,你的代码不能正常工作。 首先,没有“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)输入流。



文章来源: Creating a In proc speech recognition using sapi c#?