GotSpeech.NET

The online community for Microsoft Speech Server developers
Welcome to GotSpeech.NET Sign in | Join | Help
in Search
CBrekeke Software

The recognizer failed to start before the InitialSilenceTimer expired.

Last post 02-09-2010, 2:39 PM by Samlee. 5 replies.
Sort Posts: Previous Next
  •  02-04-2010, 6:18 PM 10020

    The recognizer failed to start before the InitialSilenceTimer expired.

    the DetectAnsweringMachineActivity in my Outbound Call project always gets expection "Microsoft.SpeechServer.SpeechApplicationException: The recognizer failed to start before the InitialSilenceTimer expired."

    The Outbound Call speech server is connected to FreeSwitch. If I capture this exception and then let the workflow go to next step playing message,  It work fine.

     Anyone know what cause this issue?

     TIA 

  •  02-04-2010, 8:01 PM 10022 in reply to 10020

    Re: The recognizer failed to start before the InitialSilenceTimer expired.

    You probably have a large or complex grammar that is taking the recognizer a long time to compile and thus start recognition. This time is currently longer than the initialSilence timeout set on the prompt preceeding the grammar.

    It sounds like you're only playing a prompt, if that's the case why start recognition at all?


    --
    How To Ask a Question: http://support.microsoft.com/kb/555375
    --
    This posting is provided "AS IS" with no warranties, and confers no rights.
    Use of included script samples are subject to the terms specified at
    http://www.microsoft.com/info/cpyright.htm
  •  02-05-2010, 11:02 AM 10024 in reply to 10022

    Re: The recognizer failed to start before the InitialSilenceTimer expired.

    Thank Ahmed. 

    I loaded the grammar before DetectAnswerMachineActivity.  And the grammar is small and simple.

    This is outbound call app, I need to detect whether or not it is answer machine before leaving message. 

     Another interesting thing is that if I set initialSilence timeout to 3, the exception is fired after 3 second, if 10 seconds, it is filed after 10 second. 

     

  •  02-05-2010, 2:14 PM 10025 in reply to 10024

    Re: The recognizer failed to start before the InitialSilenceTimer expired.

    Look at the trace logs and see if you can find which operation on the recognizer is holding things up. That'll help you narrow things down.


    --
    How To Ask a Question: http://support.microsoft.com/kb/555375
    --
    This posting is provided "AS IS" with no warranties, and confers no rights.
    Use of included script samples are subject to the terms specified at
    http://www.microsoft.com/info/cpyright.htm
  •  02-05-2010, 5:13 PM 10028 in reply to 10025

    Re: The recognizer failed to start before the InitialSilenceTimer expired.

    Thank Ahmed,

    It is in DetectAnswerMachineActivity. I replaced it with QA. It has the same issue.

    Since you said it may be the issue that Speech Server take to long time to load the gammar.  I created the same grammar dymamically in the code. it works fine.  So it is really the grammar loading issue.

    The following was in the Code control before DetectAnswerMachineActivity

             detectAnswerMachine.Grammar = new Grammar(new Uri("file://" + Path.Combine(Path.GetDirectoryName  ApplicationHost.LocalPath.LocalPath),
                                                    "Grammars/OutboundEnglish.grxml")), "Detect");

     Right now I replaced it with the following and it work fine.

             detectAnswerMachine.Grammar = new Grammar(
                    new Microsoft.SpeechServer.Recognition.SrgsGrammar.SrgsDocument(
                        new Microsoft.SpeechServer.Recognition.SrgsGrammar.SrgsRule("Detect",
                            new Microsoft.SpeechServer.Recognition.SrgsGrammar.SrgsSemanticInterpretationTag("$.DetectedEntity = \"ANSWERING_MACHINE_RESPONSE\""),
                            new Microsoft.SpeechServer.Recognition.SrgsGrammar.SrgsItem(
                                new Microsoft.SpeechServer.Recognition.SrgsGrammar.SrgsOneOf(
                                    new Microsoft.SpeechServer.Recognition.SrgsGrammar.SrgsItem("Hello"),

                       ......

     

     

     

  •  02-09-2010, 2:39 PM 10043 in reply to 10028

    Re: The recognizer failed to start before the InitialSilenceTimer expired.

    I found the grammar has one structure error. 

             Structure issue on 'Detect' WILDCARD element:  Improper use of WILDCARD element.  Wildcard should be contained within an element that is both optional and has no semantic tag. 

    I removed the following from my outbound call grammar, then it works.

         <item>
             <item>This is</item>
             <ruleref special="GARBAGE"/>
             <item>speaking</item>
         </item>
     

     

View as RSS news feed in XML