MRCP was designed to be used with grammars, but Voicegain platform allows also for use of our large vocabulary (non-grammar) recognizer over MRCP.
There are two ways to tell the recognizer to do large vocabulary transcription:
- Pass the URI of the special built-in grammar builtin:none - note that it may not work on some VXML platforms or MRCP clients which examine if the grammar is a valid grammar. Other grammar names that enable large vocabulary recognition are:
- builtin:speech/transcribe
- builtin:grammar/transcribe
- Pass a grxml grammar with the root rule name being "__TRANSCRIBE__" - apart from that the content of the grammar does not matter but it should be valid parseable GRXML grammar, e.g. one shown below.
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://www.w3.org/2001/06/grammar"
version="1.0" xml:lang="en-US" tag-format="semantics/1.0"
root="__TRANSCRIBE__">
<rule id="__TRANSCRIBE__">
<item>transcribe</item>
</rule>
</grammar>
Results from large vocabulary transcription will be returned as follows, e.g.:
<result>
<interpretation grammar="session:request1@form-level" confidence="0.94">
<input mode="speech">make a payment</input>
</interpretation>
</result>
The timeout that controls when the large vocabulary recognition should stop is the Speech-Incomplete-Timeout. Value of Speech-Complete-Timeout is ignored in those cases.
Passing hints
You can use the "fake" __TRANSCRIBE__ grammar that is used to enable large vocabulary transcription to pass hints. An example how to do this is shown below:
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://www.w3.org/2001/06/grammar"
version="1.0" xml:lang="en-US" tag-format="semantics/1.0"
root="__TRANSCRIBE__" hints="press_one:10,press_two">
<rule id="__TRANSCRIBE__">
<item>transcribe</item>
</rule>
</grammar>
See Using Hints for more details on how to format hints strings.
Comments
0 comments
Please sign in to leave a comment.