How get detailed qa info: wrong inputs, barge in etc? RRS feed

  • Question



    Our customer  wants to tune their speech server application according to some complaints (mostly from elderly people) but need to know what a particular user has done in order to alter the workflow. We use a rather simple logging to xml files as our customer wants to have the log files in a certain format that includes custom information.


    My question is, is it possible to catch a sort of NoRecognition-event? The ConsecituveNoRecognition events work fine but then we need to know what input the user did enter in order to see what went wrong and perhaps adjust the workflow. Catching "NoInput" and "Silence" before the Consecituve... appear would be nice.


    Also, is is possible to check if a user did barge in (if barge in is allowed)?


    Thanks for your help!

    Monday, August 20, 2007 7:08 AM


  • You can subscribe to the DtmfRecognizer.DigitDetected even so you'll know exactly what dtmf digit was entered.

    Tuesday, August 21, 2007 4:51 PM

All replies


    For how the recognition completed you can look at the CompletionType property of the RecognizeCompletedEventArgs parameter of the RecognizeCompleted event handler.


    For the bargein type, SpeakCompletedEventArgs.BargeInType will indicate if bargeing occured and what triggered it.


    Monday, August 20, 2007 5:08 PM
  • Hi Ahmed!


    Your solution sounds great, just what I was looking for. However, I have some trouble getting it to work, when I hook up to the event (tried this in my main workflow and in my subclassed QA, the event is never triggered.


    Any suggestions?



    Code used:

    this.Workflow.SpeechRecognizer.RecognizeCompleted += new EventHandler<RecognizeCompletedEventArgs>(SpeechRecognizer_RecognizeCompleted);

    Tuesday, August 21, 2007 8:12 AM
  • My fault, was in a hurry and tried your suggestion without thinking at all..

    We use DTMF-only so using the DtmfRecognizer did the trick.



    Tuesday, August 21, 2007 12:45 PM
  • Hmm, did not get all info I wanted through the RecognizeCompletedEventArgs.

    I was hoping to get what the user entered to see what was wrong but according to the CompletionType documentation (below) I only get the result when everything worked fine.


    Any ideas how to find out what the user really entered or did wrong?




    BabbleTimeoutExpired The BabbleTimeoutExpired is exceeded. The Result might be available, depending on engine configuration (and will certainly be available if this is a pure-record recognition).
    InitialSilenceTimeoutExpired The InitialSilenceTimeoutExpired is exceeded. No Result is available.
    InterDigitTimeoutExpired The InterDigitTimeoutExpired is exceeded. No Result is available.
    NoGrammarMatched No grammar matched the speech input. No Result is available.
    None The recognition is canceled or failed due to an exception being thrown.
    Rejected The recognizer successfully matched the input to a grammar, but the confidence score is below the RejectionThreshold threshold. No Result is available.
    Success The recognition succeeded and the Result is available.

    Tuesday, August 21, 2007 1:27 PM
  • You can subscribe to the DtmfRecognizer.DigitDetected even so you'll know exactly what dtmf digit was entered.

    Tuesday, August 21, 2007 4:51 PM
  • That did the trick, thanks!


    Wednesday, August 22, 2007 7:03 AM