locked
Null RecognitionResult Value RRS feed

  • Question

  • Hello,

    I am having an issue with a Speech Server 2007 IVR applciation I created.  Consider my simple IVR application with the following activities in the following order:

    1.  Statement Activity
            a.  Greets the caller
    2.  QA Activity
            a.  Asks the caller to select an option.  
            b.  This activity has both a DTMF and voice grammar attached that accepts a voice input of "one" or "Two" and a DTMF input of 1 or 2.
            c.  This QA Activity has the following property values assigned:

                 CompleteTimeout: 1 Sec
                 IncompleteTimeout: 1 Sec
                 InitialSilenceTimeout: 5 Sec
                 PreFlushDTMF: True

                 The TelephonySession.DtmfRecognizer.InterDigitTimeout value is set to 4 seconds at a global level before any of the QA Activities execute

    3. A code activity that accesses the recognitionresult.text property of the QA Activity above.

    Now, here is my problem.  Somehow, at random instances when a caller supplies both DTMF AND Voice input for this QA Activity above, the QA exits with  a NULL recognitionresult value.

    This is causing my code activities to throw null reference exceptions when accessing this value.

    It was my impression that a QA will never exit to the next activity in sequence unless:

    1. The caller supplies a valid utterance or DTMF number matching the attached DTMF or voice grammar for the QA in question.
    2. An exception is thrown cuasing focus to shift towards the nearest fault handler.
    3. A Global speech event activity such as a consecutivesilence activity catches a speech event.

    I am puzzled as to why this QA activity is exiting with a null recognitionresult object.  I am unable to reproduce this issue.  I am able to supply both DTMF and voice input values and the code activity above successfully extracts the semantic item values from the grammar without any issues. 

    This issue occurs only a few times out of hundreds of calls.

    Now, looking at the TAH and ETL logs within analytics and tuning studio, I see that the following event is being logged right before the QA activity exits:

    Reco: DTMF - InitialSilenceTimeoutExpired 

    This does not make any sense. 

    Can anyone please explain why the QA is exiting without a valid recognitionresult value?  I would appreciate any input you may have on this issue.

    Thanks!

    Tuesday, October 27, 2009 4:49 PM

All replies

  • This is somewhat of a guess (I haven't tested this yet), but I'm wondering if this is caused by the gateway no feeding anything when it sees both DTMF and Speech on the line. Have you tested this with a softphone and/or in the debugger? Also, what gateway are you using?
    - Marc LaFleur http://gotspeech.net/blogs/speakingfromtheedge/
    Wednesday, October 28, 2009 5:15 AM
  • Thanks for the reply Marc.

    I have tested this on a softphone and on our actual phone system by speaking and entering in DTMF input at the same time.  I unfortunately was not able to reproduce this.  This happens only a few times a month out of hundreds of calls.

    Listening to the call audio within Analytics and Tuning studio, I do hear that the caller is speaking or there are noises in the backgroud that are audible.  However, what is confusing is the Reco: DTMF - InitialSilenceTimeoutExpired entry within the ETL logs for these calls.

    We are using a Dialogic 1008SLW (Analog)

    Even so, if the gateway was not feeding anything through to MSS in these situations, why would the QA exit without a valid recognitionresult?  I would think a NoReco or Silence event would be fired if anything.

    Do you know under what circumstances a QA activity will exit and proceed to the next activity?

    Thanks for your help

    Wednesday, October 28, 2009 2:26 PM