我正在使用微软的语音识别进行编程。我运行了一个例子,它运行得很好。但是如果我打开语音识别,程序就会一直在里面。我想每次发动机停下来的时候都能认出字来。那可能吗。

我的代码有点像这样:

_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);

谢谢你的帮助。

最后我试图调用 _trainer.Dispose(),但引擎根本无法工作,让我休息一下。

最佳答案

RecognizeCompleted 事件添加到 SpeechRecognitionEngine

_trainer.RecognizeCompleted += _trainer_RecognizeCompleted;

_trainer_RecognizeCompleted 中添加
_trainer.RecognizeAsyncStop();

手动取消 SpeechRecognitionEngine
_trainer.RecognizeAsyncCancel();

再次启动 SpeechRecognitionEngine 再次调用 RecognizeAsync
_trainer.RecognizeAsync(RecognizeMode.Single);

查看 MSDN 示例

1-)
SpeechRecognitionEngine.RecognizeAsync Method (RecognizeMode) (System.Speech.Recognition)
2-)
RecognizeMode Enumeration (System.Speech.Recognition)

关于c# - 用微软的语音识别编程。我怎么能每次听到一个词就关闭语音识别引擎,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24946174/

10-13 04:13