Rss Categories


Reference Number: AA-00712 Views: 8389 0 Rating/ Voters

Loads an SRGS grammar into a speech port for later use in a decode, DTMF decode or interpret text operation. Loading a grammar is used to define a context for the decode, a filter for the words that will be spoken. The engine will look for the words described in the grammar you are loading here.


  • int LV_SRE_LoadGrammar(HPORT hport, const char* gram_name, const char* gram_uri)



The handle for the speech port you are loading the grammar into.


The identifier for the grammar being loaded.Whenever you activate, deactivate, or unload, this is the identifier youwill use.


A URI that points to a valid SRGS grammar file, such as"c:/grammars/pizza.grxml", "", or "builtin:dtmf/boolean?y=1;n=2"

This URL can be a builtin reference, a file system reference, or remote HTTP reference, and as of LumenVox version 11.2.100, users may also specify resources located on secure HTTPS servers

Return Values


No errors; this grammar is now ready to use.


The grammar file was not fully conforming, but it was understandable and is now ready for use.


The input hport is not a valid one.


The operation may have failed because the port was shutting down or the vocab size of the grammar is zero.The error also occurs when an internal failure has occurred, may be out of resources.


The license associated with the port has been invalidated.


Either gram_name or gram_uri, or both are NULL, or gram_uri points to an invalid location.


Sending the grammar to the ASR server timed out.


Either the tag-format specified in the grammar is not supported or the grammar file was not understandable to the grammar compiler.


There are no ASR servers available to load and compile the grammar.


The connected ASR server(s) do not support the language of the grammar being loaded.


An exception occurred while processing the request.


Detailed error and warning messages are sent to the speech port's logging callback function at priorities 0 and 1, respectively.

It is possible that some of the above return codes may get returned for different underlying reasons. Use LV_SRE_ReturnGrammarErrorString to obtain a description of the actual reason for failure.

C Code

  1. // This method streamlines the process of loading and activating a grammar,
  2. // making it easier to do from main.

  3. void LoadGrammar(char* grammar_name, char* grammar_file)
  4. {
  5. printf("Loading the grammar and activating it.\n");
  6. error code = LV_SRE_LoadGrammar(hport, grammar_name, grammar_file);

  7. // Once you load up a grammar you can activate and deactivate it
  8. // at any point during the call flow.
  9. error code = LV_SRE_ActivateGrammar(hport, grammar_name);
  10. error code = LV_SRE_StreamSetParameter(hport, STREAM_PARM_GRAMMAR_SET,
  11. }

See Also