Practical examples of GRXML grammars for common use cases in speech recognition applications.
A simple grammar for yes/no confirmations with common variations.
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://www.w3.org/2001/06/grammar" xml:lang="en-US" version="1.0" mode="voice" root="confirmation">
<rule id="confirmation">
<one-of>
<item weight="1.2">yes</item>
<item weight="1.2">yeah</item>
<item weight="1.0">correct</item>
<item weight="1.0">that's right</item>
<item weight="1.2">no</item>
<item weight="1.0">nope</item>
<item weight="1.0">incorrect</item>
<item weight="1.0">that's wrong</item>
</one-of>
</rule>
</grammar>
Grammar for recognizing numbers with both digit-by-digit and natural number words.
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://www.w3.org/2001/06/grammar" xml:lang="en-US" version="1.0" mode="voice" root="number">
<rule id="number">
<one-of>
<item><ruleref uri="#digit"/></item>
<item><ruleref uri="#teens"/></item>
<item><ruleref uri="#tens"/></item>
</one-of>
</rule>
<rule id="digit">
<one-of>
<item>zero<tag>out=0;</tag></item>
<item>one<tag>out=1;</tag></item>
<item>two<tag>out=2;</tag></item>
<item>three<tag>out=3;</tag></item>
<item>four<tag>out=4;</tag></item>
<item>five<tag>out=5;</tag></item>
<item>six<tag>out=6;</tag></item>
<item>seven<tag>out=7;</tag></item>
<item>eight<tag>out=8;</tag></item>
<item>nine<tag>out=9;</tag></item>
</one-of>
</rule>
</grammar>
Complex grammar for recognizing dates in various formats.
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://www.w3.org/2001/06/grammar" xml:lang="en-US" version="1.0" mode="voice" root="date">
<rule id="date">
<one-of>
<item>
<ruleref uri="#month"/>
<ruleref uri="#day"/>
<item repeat="0-1">
<ruleref uri="#year"/>
</item>
</item>
<item>today</item>
<item>tomorrow</item>
<item>next week</item>
</one-of>
</rule>
<rule id="month">
<one-of>
<item>January<tag>month=1;</tag></item>
<item>February<tag>month=2;</tag></item>
<item>March<tag>month=3;</tag></item>
<!-- ... other months ... -->
</one-of>
</rule>
</grammar>
Grammar for IVR menu navigation with multiple options and commands.
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://www.w3.org/2001/06/grammar" xml:lang="en-US" version="1.0" mode="voice" root="mainMenu">
<rule id="mainMenu">
<one-of>
<item>
<one-of>
<item>check</item>
<item>view</item>
</one-of>
<one-of>
<item>balance</item>
<item>account</item>
</one-of>
<tag>action="balance";</tag>
</item>
<item>make a payment<tag>action="payment";</tag></item>
<item>technical support<tag>action="support";</tag></item>
<item>speak to representative<tag>action="agent";</tag></item>
<item>go back<tag>action="back";</tag></item>
<item>main menu<tag>action="main";</tag></item>
</one-of>
</rule>
</grammar>
Add weights to common phrases to improve recognition accuracy:
<item weight="1.2">yes</item> <!-- More common -->
<item weight="1.0">affirmative</item> <!-- Less common -->
Use rule references to create modular and reusable grammars:
<rule id="mainRule">
<ruleref uri="#subRule"/>
<tag>out = rules.subRule;</tag>
</rule>
Use tags to return structured data:
<item>technical support
<tag>out.action="support"; out.dept="tech";</tag>
</item>
Now that you've seen some examples, try creating your own grammars using our GRXML Builder. The tool includes validation, testing, and AI-powered suggestions to help you create effective grammars.