Microsoft Speech Recognition Programming. How can I close the speech recognition engine every time he received a word

I program using microsoft speech recognition. I will give an example and it works very well. But if I open speech recognition, the program will always be inside. I want the engine to stop every time it recognizes words. Is it possible.

My code is a bit like this:

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

Thank you for your help.

I tried calling _trainer.Dispose()at the end, but the engine doesn’t work at all and gives me a break.

+4
source share
2 answers

add RecognizeCompleted event to 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)

+3

, ( )

private void _trainer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
       //Do your work 
         _trainer.RecognizeAsyncStop();
    }
0

All Articles