Speech recognition RRS feed

  • Question



    I have a problem with the speech recognition engine.

    It works perfectly if I say something immediately after my application has started.

    In that case -> it will work ok the entire session.

    If I wait a few seconds before saying something however ...

    In that case -> it will not work at all in the entire session.


    Source sniplet for setting up the speech recog:

    speechEngine = new SpeechRecognitionEngine(ri.Id);


    // Use the default audio device for input.


    // Create a grammar from the grammar definition XML file.

    using (var memoryStream = new MemoryStream(Encoding.ASCII.GetBytes(Properties.Resources.SpeechGrammar)))


    var g = new Grammar(memoryStream);



    // Hook up the interesting events      

    speechEngine.SpeechRecognized += SpeechRecognized;

    speechEngine.SpeechRecognitionRejected += SpeechRejected;               

    speechEngine.SpeechHypothesized += SpeechHypothesized;


    // Start recog.                       



    I use this in context of a Kinect application (currently using Kinect 1.5 SDK).

    The reason for using SetInputToDefaultAudioDevice() is that I need to be able to not just use the Kinect sensor Audio input (e.g. use a headset in a noisy environment).

    As far as I understand the default timeout (InitialSilenceTimeout) should be ok.

    I've tried modifying it (and also other timeout’s) without success.


    Wednesday, January 30, 2013 2:49 PM