Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用微软的语音识别软件编程。每次收到一个单词时,我怎么能关闭语音识别引擎_C#_Speech Recognition - Fatal编程技术网

C# 用微软的语音识别软件编程。每次收到一个单词时,我怎么能关闭语音识别引擎

C# 用微软的语音识别软件编程。每次收到一个单词时,我怎么能关闭语音识别引擎,c#,speech-recognition,C#,Speech Recognition,我正在使用微软的语音识别软件编程。我运行了一个示例,效果非常好。但是如果我打开语音识别,程序将一直在里面。我想在每次发动机停止时,当它识别出这些单词时。那有可能吗 我的代码有点像这样: _trainer = new SpeechRecognitionEngine(); _trainer.LoadGrammar(new Grammar(new GrammarBuilder(word))); // load a word _trainer.SpeechRecognized += _trainer_S

我正在使用微软的语音识别软件编程。我运行了一个示例,效果非常好。但是如果我打开语音识别,程序将一直在里面。我想在每次发动机停止时,当它识别出这些单词时。那有可能吗

我的代码有点像这样:

_trainer = new SpeechRecognitionEngine();
_trainer.LoadGrammar(new Grammar(new GrammarBuilder(word))); // load a word
_trainer.SpeechRecognized += _trainer_SpeechRecognized;
_trainer.SpeechRecognitionRejected += _trainer_SpeechRecognitionRejected;
_trainer.SetInputToDefaultAudioDevice(); // set the input to the default audio device
_trainer.RecognizeAsync(RecognizeMode.Single);
谢谢你的帮助


我试图在结束时调用
\u trainer.Dispose()
,但引擎根本无法工作,给了我一个休息时间。

识别完成的事件添加到SpeechRecognitionEngine

_trainer.RecognizeCompleted += _trainer_RecognizeCompleted;
\u培训师\u识别完成后添加

_trainer.RecognizeAsyncStop();
要手动取消语音识别引擎

_trainer.RecognizeAsyncCancel();
要再次启动语音识别引擎,请再次调用RecognizeAsync

_trainer.RecognizeAsync(RecognizeMode.Single);
见MSDN样本

1-) 2-)

您只需在SpeechReceigned事件中停止识别器(捕获单词时)


调用
Dispose
是否有问题?我在最后尝试调用Dispose()。但是,如果我叫处置,它将停止在中间。发动机根本无法工作。请等到适当的时间调用
Dispose
。。。如果在@ta.speot.is之后处理该类,会发生什么情况?@ta.speot.is我不知道如何处理该类。你能给我一个示例代码吗?谢谢你的回答。但发动机已停止,但程序仍在运行。@辛迪:我不明白问题程序是否仍在运行?你想在识别完成后关闭程序吗?我有办法。多谢各位。
private void _trainer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
       //Do your work 
         _trainer.RecognizeAsyncStop();
    }