stringtranslate.com

Especificación gramatical del reconocimiento de voz

La especificación de gramática de reconocimiento de voz (SRGS) es un estándar del W3C que regula cómo se especifican las gramáticas de reconocimiento de voz . Una gramática de reconocimiento de voz es un conjunto de patrones de palabras que le indica al sistema de reconocimiento de voz qué esperar que diga un humano. Por ejemplo, si llama a una aplicación de asistente automático , esta le solicitará el nombre de una persona (con la expectativa de que su llamada se transfiera al teléfono de esa persona). Luego iniciará un reconocedor de voz y le asignará una gramática de reconocimiento de voz. Esta gramática contiene los nombres de las personas en el directorio del asistente automático y una colección de patrones de oraciones que son las respuestas típicas de las personas que llaman a la solicitud.

SRGS especifica dos sintaxis alternativas pero equivalentes: una basada en XML y otra que utiliza el formato BNF aumentado . En la práctica, la sintaxis XML se utiliza con más frecuencia.

Tanto el formato ABNF como el XML tienen el poder expresivo de una gramática libre de contexto . Un procesador de gramática que no admita gramáticas recursivas tiene el poder expresivo de una máquina de estados finitos o un lenguaje de expresión regular .

Si el reconocedor de voz devolviera solo una cadena que contuviera las palabras reales pronunciadas por el usuario, la aplicación de voz tendría que hacer el tedioso trabajo de extraer el significado semántico de esas palabras. Por este motivo, las gramáticas SRGS se pueden decorar con elementos de etiqueta , que cuando se ejecutan, construyen el resultado semántico. SRGS no especifica el contenido de los elementos de etiqueta: esto se hace en un estándar complementario del W3C, Semantic Interpretation for Speech Recognition (SISR). SISR se basa en ECMAScript , y las declaraciones ECMAScript dentro de las etiquetas SRGS construyen un objeto de resultado semántico ECMAScript que es fácil de procesar para la aplicación de voz.

Tanto SRGS como SISR son recomendaciones del W3C, la etapa final de la ruta de estándares del W3C. El estándar VoiceXML del W3C , que define cómo se especifican los diálogos de voz, depende en gran medida de SRGS y SISR.

Ejemplos

A continuación se muestra un ejemplo del BNF aumentado de SRGS, tal como podría usarse en una aplicación de asistente automático:

 #ABNF  1.0  ISO-8859-1 ; // El idioma gramatical predeterminado es el inglés de EE. UU. en-US ; // Adjunto de un solo idioma a los tokens // Tenga en cuenta que "fr-CA" (francés canadiense) se aplica solo // a la palabra "oui" debido a las reglas de precedencia $yes = yes | oui!fr-CA ; // Adjunto de un solo idioma a una expansión $people1 = ( Michel Tremblay | André Roy ) !fr-CA ; // Manejo de pronunciaciones específicas del idioma de la misma palabra // Un reconocedor de voz capaz escuchará las pronunciaciones en español mexicano e // inglés de EE. UU. $people2 = Jose!en-US | Jose!es-MX ; /**  * Entrada multilingüe posible * @example may I speak to André Roy * @example may I speak to Jose */ public $request = may I speak to ( $people1 | $people2 ) ;                                                           

A continuación se muestra el mismo ejemplo de SRGS, utilizando el formulario XML:

<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE grammar PUBLIC "-//W3C//DTD GRAMMAR 1.0//EN"  "http://www.w3.org/TR/speech-grammar/grammar.dtd"> <!-- el idioma de gramática predeterminado es inglés de EE. UU. --> <grammar xmlns= "http://www.w3.org/2001/06/grammar" 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" xml:lang= "en-US" version= "1.0" > <!--  adjunto de un solo idioma a los tokens  "sí" hereda el idioma inglés de EE. UU.  "oui" es el idioma francés canadiense  --> <rule id= "yes" > <one-of> <item> yes </item> <item xml:lang= "fr- CA" > oui </item> </one-of> </rule> <!-- Adjunto de un solo idioma a una expansión --> <rule id= "people1" > <one-of xml:lang= "fr-CA" > <item> Michel Tremblay </item> <item> André Roy </item> </one-of> </rule> <!--  Manejo de pronunciaciones específicas del idioma de la misma palabra  Un reconocedor de voz capaz escuchará  las pronunciaciones en español mexicano e inglés estadounidense.  --> <rule id= "people2" > <one-of> <item xml:lang= "en-US" > Jose </item> <item xml:lang= "es-MX" > Jose </item> </one-of> </rule> <!-- Es posible la entrada en varios idiomas --> <rule id= "request" scope= "public" > <example> ¿Puedo hablar con André Roy? </example> <example> ¿Puedo hablar con Jose ? </example> ¿Puedo hablar con <one-of> <item> < ruleref uri = " # people1 " /> </item> <item> <ruleref uri= "#people2" /> </item> </one-of> </rule> </grammar>                                                                             

Véase también

Enlaces externos