stringtranslate.com

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 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 gramáticas SRGS, permite que los navegadores de voz a través de ECMAScript interpreten semánticamente gramáticas complejas y proporcionen la información a la aplicación. Por ejemplo, permite que expresiones como "Quiero una Coca-Cola y tres pizzas grandes con pepperoni y champiñones" se interpreten en un objeto que pueda ser comprendido por una aplicación. Por ejemplo, la expresión podría producir el siguiente objeto llamado order :

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

Si se utiliza contra esta gramática que incluye el 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 un <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 cola </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 dice nada --> <item repeat= "0-1" > <one-of> <item> pequeño <tag> out="small"; </tag></item> <item> mediano </item> <item> grande <tag> out="grande"; </tag></item> <item> regular <tag> out="mediano"; </tag></item> </one-of> </item> </rule> <!-- Construir matriz de ingredientes,devuelve Matriz --> <rule id= "tops" > <tag> salida=nueva Matriz; </tag> <ruleref uri= "#top" /> <tag> salida.push(reglas.top); </tag> <item repeat= "1-" > y <ruleref uri= "#top" /> <tag>                                                                 out.push(rules.top); </tag> </item> </rule> <rule id= "top" > <one-of> <item> anchoas </item> <item> pepperoni </item> <item> hongo <tag> out="hongos"; </tag></item> <item> hongos </item> </one-of> </rule> <!-- Dos propiedades (tamañobebida, tipo) en el lado izquierdo Variable de regla --> <rule id= "bebida" > <ruleref uri= "#tamañocomida" /> <ruleref uri= "#tipobebida" /> <tag> out.drinksize=rules.tamañocomida; out.type=rules.tipobebida; </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> un </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 reconocimiento de voz (SISR) versión 1.0

Enlaces externos