Articulo de referencia

Interpretación semántica para el reconocimiento de voz

La Interpretación Semántica para el Reconocimiento de Voz (SISR) define la sintaxis y la semántica de las anotaciones a las reglas gramaticales en la Especificación de Gramática...

La Interpretación Semántica para el Reconocimiento de Voz (SISR) define la sintaxis y la semántica de las anotaciones a las reglas gramaticales en la Especificación de Gramática para el Reconocimiento de Voz (SRGS). Desde el 5 de abril de 2007, es una recomendación del Consorcio World Wide Web . [ 1 ]

Al basarse en las gramáticas SRGS, permite que los navegadores de voz mediante ECMAScript interpreten semánticamente gramáticas complejas y proporcionen la información a la aplicación. Por ejemplo, permite que frases como "Quiero una Coca-Cola y tres pizzas grandes con pepperoni y champiñones" se interpreten en un objeto que la aplicación pueda comprender. Por ejemplo, la frase podría producir el siguiente objeto llamado "pedido" :

{ bebida : { líquido : "coca cola" , tamaño de la bebida : "mediana" }, pizza : { número : "3" , tamaño de la pizza : "grande" , ingrediente : [ "pepperoni" , "champiñones" ] } }

Si se utiliza contra esta gramática que incluye marcado SISR además de la gramática SRGS estándar en formato XML:

<?xml version="1.0" encoding="UTF-8"?> <!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" > <rule id = "order" > Me gustaría a <ruleref uri= "#drink" /> <tag> out.drink = new Object(); out.drink.liquid=rules.drink.type; out.drink.drinksize=rules.drink.drinksize; </tag> y <ruleref uri= "#pizza" /> <tag> out.pizza=rules.pizza; </tag> </rule> <rule id= "kindofdrink" > <one-of> <item> coca </item> <item> pepsi </item> <item> coca cola <tag> out="coke"; </tag></item> </one-of> </rule> <rule id= "foodsize" > <tag> out="medium"; </tag> <!-- "medium" es el valor predeterminado si no se especifica nada --> <item repeat= "0-1" > <one-of> <item> small <tag> out="small"; </tag></item> <item> mediano </item> <item> grande <tag> out="large"; </tag></item> <item> regular <tag> out="medium"; </tag></item> </one-of> </item> </rule> <!-- Construir matriz de ingredientes,devolver Array --> <rule id= "tops" > <tag> out=new Array; </tag> <ruleref uri= "#top" /> <tag> out.push(rules.top); </tag> <item repeat= "1-" > y <ruleref uri= "#top" /> <tag>out.push(rules.top); </tag> </item> </rule> <rule id= "top" > <one-of> <item> anchovies </item> <item> pepperoni </item> <item> mushroom <tag> out="mushrooms"; </tag></item> <item> mushrooms </item> </one-of> </rule> <!-- Dos propiedades (drinksize, type) en el lado izquierdo Variable de regla --> <rule id= "drink" > <ruleref uri= "#foodsize" /> <ruleref uri= "#kindofdrink" /> <tag> out.drinksize=rules.foodsize; out.type=rules.kindofdrink; </tag> </rule> <!-- Tres propiedades en rules.pizza --> <rule id= "pizza" > <ruleref uri= "#number" /> <ruleref uri= "#foodsize" /> <tag> out.pizzasize=rules.foodsize; out.number=rules.number; </tag> pizzas con <ruleref uri= "#tops" /> <tag> out.topping=rules.tops; </tag> </rule> <rule id= "number" > <one-of> <item> <tag> out=1; </tag> <one-of> <item> a </item> <item> uno </item> </one-of> </item> <item> dos <tag> out=2; </tag></item> <item> tres <tag> out=3; </tag></item> </one-of> </rule> </grammar>

Véase también

Referencias

  1. Interpretación semántica para el reconocimiento de voz (SISR) Versión 1.0
  • Especificación SRGS (Recomendación del W3C)
  • Especificación SISR (Recomendación del W3C)
  • Grupo de trabajo sobre navegadores de voz del W3C