Semantic Interpretation for Speech Recognition

Semantic Interpretation for Speech Recognition ( SISR ) defines the syntax and semantics of annotations for grammar rules in the Speech Recognition Grammar Specification ( SRGS ). Since April 5, 2007 SISR is a recommendation of the World Wide Web Consortium.

Based on SRGS grammars, it allows voice browsers via ECMAScript to interpret complex grammar and to provide information back to the program. For example, it allows statements such as " I would like a coca cola and three large pizzas with pepperoni and mushrooms. " be interpreted as an object that can be understood by another program. For example, the statement could be called to produce the following object, order:

{    drink: {      liquid: "coke "      size: "medium "},    pizza: {      number " 3",      pizza size: "large",      pad: [" pepperoni ", " mushrooms" ]    } } Applied to the grammar to SRGS grammar includes the addition SISR - markup:

< DOCTYPE grammar PUBLIC "- / / W3C / / DTD GRAMMAR 1.0 / / EN "                    " http://www.w3.org/TR/speech-grammar/grammar.dtd " > < grammar xmlns = " http://www.w3.org/2001/06/grammar " xml: lang = "en"           xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance "           xsi: schemaLocation = " http://www.w3.org/2001/06/grammar                               http://www.w3.org/TR/speech-grammar/grammar.xsd "           version = "1.0" mode = " voice" tag -format = " semantics/1.0 " root = "order " >            I would like a               out.drink = new Object (); out.drink.liquid = rules.drink.type;             out.drink.drinksize = rules.drink.drinksize;        and               out.pizza = rules.pizza;                          joiners coke < / item>           joiners pepsi < / item>           joiners coca cola out = " coke"; < / item>                       out = "medium"; <- "medium" is default if nothing said -! >                               joiners small out = "small "; < / item>              joiners medium < / item>              joiners large out = "large"; < / item>              joiners regular out = "medium"; < / item>                  < / item>         < - Construct array of toppings, return array ->            out = new Array;               out.push ( rules.top )                  and                     out.push ( rules.top )        < / item>                          joiners anchovies < / item>           joiners pepperoni < / item>           joiners mushroom out = " mushrooms "; < / item>           joiners mushrooms < / item>                < - Two properties ( drink size, type) on left hand side Rule Variable ->                          out.drinksize = rules.foodsize; out.type = rules.kindofdrink;         < - Three properties on rules.pizza ->                          out.pizzasize = rules.foodsize; out.number = rules.number;        pizzas with               out.topping = rules.tops;                          joiners              out = 1;                              a < / item>                 joiners one < / item>                        < / item>           two joiners out = 2; < / item>           joiners three out = 3; < / item>            see also

Swell

722414
de