Tag format
In an SRGS grammar, you may place pieces of data called tags anywhere in a grammar rule. When a rule is matched, the tag is returned to the user in a parse tree, along with the words spoken that caused the rule to match.
A common use for tags is to transform a speakers sentence into data that your application can understand. The LumenVox speech port is capable of manipulating the tags in your parse tree, if they are in a form known as the Semantic Interpretation for Speech Recognition (SISR) tag format. Examples of this tag format can be found in this help file here.
To do any kind of interpretation, you must specify the format your tags are in.
Within the speech port, the following tag format specifiers are acceptable:
Tag-Format | Description |
semantics/1.0 | Use the SI script format of the SISR official recommendation, version 1.0 (adopted as a recommendation April 2007). See Strict SISR Compliance below for information on how a config setting can affect this for backward compatibility. |
semantics/1.0-literals | Use the string literals format of the SISR official recommendation, version 1.0 (adopted as a recommendation April 2007). See Strict SISR Compliance below for information on how a config setting can affect this for backward compatibility. |
semantics/1.0.2006 | Use the SI script format of the SISR official recommendation. |
semantics/1.0.2006-literals | Use the string literals format of the SISR official recommendation. Same as specifying "semantics/1.0-literals" except that this is unaffected by the STRICT_SISR_COMPLIANCE setting as described under Strict SISR Compliance below. |
lumenvox/1.0 | Use the LumenVox-specific implementation of the 2003 SISR draft. |
If the tag format of your grammar does not match one of these specifiers, the speech port will not attempt to interpret your tags. You can still use the tag data in the Parse Tree to perform your own interpretation.
To specify the format of the tags in a grammar, use the following syntax:
ABNF
tag-format <semantics/1.0>; |
XML
<grammar tag-format="semantics/1.0" ...> |
Strict SISR Compliance
Prior to 2006, LumenVox had adopted the 2003 SISR draft and it was the only tag-format supported then. One could then use either "semantics/1.0" or "lumenvox/1.0" to mean the same thing with the then available versions of LumenVox engine.
As the specification evolved and was being well received in the industry towards the end of 2006, LumenVox engine adopted the altered final recommendation. Since the format specifier "semantics/1.0" was already being used to instruct the engine to use 2003 SISR draft for semantic interpretation, a new configuration setting (STRICT_SISR_COMPLIANCE) was introduced to allow for backward compatibility. Disabling the STRICT_SISR_COMPLIANCE would cause the engine to treat "semantics/1.0" as the 2003 SISR draft and enabling the flag would cause the engine to treat "semantics/1.0" as described in the final recommendation. When the STRICT_SISR_COMPLIANCE is disabled, one could still force the final recommendation behavior in the engine by using "semantics/1.0.2006" in place of "semantics/1.0". Same holds true for "semantics/1.0.2006-literals" vs. "semantics/1.0-literals".
Starting with LumenVox engine version 10.0.1019, the default value for STRICT_SISR_COMPLIANCE has been set to 1 (enabled). So all grammars specifying a tag-format of either "semantics/1.0" or "semantics/1.0-literals" will cause the engine to use the final recommendation of SISR standard. If your grammars still need to use the 2003 SISR draft, you can either change your grammars to explicitly specify the tag-format as "lumenvox/1.0" or disable the STRICT_SISR_COMPLIANCE configuration setting.