

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Definición sobre la gramática
<a name="grammar-srgs-spec"></a>

En este tema se muestran las partes de la especificación SRGS compatibles con Amazon Lex V2. Todas las reglas se definen en la especificación SRGS. Para obtener más información, consulte la recomendación del W3C de la versión 1.0 de la [Especificación gramatical del reconocimiento de voz](https://www.w3.org/TR/speech-grammar/).

**Topics**
+ [Declaraciones de encabezado](srgs-header.md)
+ [Elementos XML compatibles](srgs-supported-xml.md)
+ [Tokens](srgs-tokens.md)
+ [Referencia a reglas](srgs-rule-reference.md)
+ [Secuencias y encapsulación](srgs-sequence.md)
+ [Repeticiones](srgs-repeats.md)
+ [Idioma](srgs-language.md)
+ [Tags](srgs-tags.md)
+ [Ponderaciones](grammar-weights.md)

[Este documento incluye material copiado y derivado de la versión 1.0 de la especificación gramatical de reconocimiento de voz del W3C (disponible en https://www.w3). org/TR/speech](https://www.w3.org/TR/speech-grammar/)-grammar/). La información sobre las citas es la siguiente:

[Derechos de autor](http://www.w3.org/Consortium/Legal/ipr-notice#Copyright) © 2004 [W3C®](http://www.w3.org/) ([MIT](http://www.csail.mit.edu/)), [ERCIM](http://www.ercim.org/), [Keio](http://www.keio.ac.jp/), todos los derechos reservados. Se aplican las normas del W3C en materia de [responsabilidad](http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer), [marcas comerciales](http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks), [uso de documentos](http://www.w3.org/Consortium/Legal/copyright-documents) y [licencias de software](http://www.w3.org/Consortium/Legal/copyright-software).

El documento de especificaciones del SRGS, una [recomendación del W3C](https://www.w3.org/2004/02/Process-20040205/tr.html#RecsW3C), está disponible en el W3C con la siguiente licencia.

## Texto de licencia
<a name="license-text"></a>

Licencia

Al and/or copiar este documento, o el documento del W3C al que está vinculada esta declaración, usted (el licenciatario) acepta que ha leído, entendido y que cumplirá los siguientes términos y condiciones:

Se otorga permiso para copiar y distribuir el contenido de este documento, o del documento del W3C desde el que se enlaza esta declaración, en cualquier medio, con cualquier propósito y sin pagar tasas ni regalías, siempre que incluya lo siguiente en TODAS las copias del documento, o partes del mismo, que utilice:
+ Un enlace o URL al documento original del W3C.
+ El aviso de derechos de autor preexistente del autor original o, si no existe, un aviso (se prefiere el hipertexto, pero se permite una representación textual) con el formato: «Copyright © [\$1date-of-document] [World Wide Web Consortium](http://www.w3.org/), ([MIT](http://www.csail.mit.edu/), [ERCIM](http://www.ercim.org/), [Keio](http://www.keio.ac.jp/), [Beihang](http://ev.buaa.edu.cn/)). [http://www.w3. org/Consortium/Legal/2015/doc-licencia](http://www.w3.org/Consortium/Legal/2015/doc-license)»
+ *Si existe,* el ESTADO del documento del W3C.

Cuando el espacio lo permita, se debe incluir el texto completo de este **AVISO**. Solicitamos que se indique la autoría en cualquier software, documento u otro elemento o producto que cree de conformidad con la implementación del contenido de este documento o de cualquier parte del mismo.

No se concede ningún derecho a crear modificaciones o derivados de los documentos del W3C en virtud de esta licencia, excepto en los siguientes casos: para facilitar la implementación de las especificaciones técnicas establecidas en este documento, cualquier persona puede preparar y distribuir obras derivadas y partes de este documento en software, en los materiales de apoyo que acompañan al software y en la documentación del software, SIEMPRE que todos esos trabajos incluyan el aviso siguiente. SIN EMBARGO, queda expresamente prohibida la publicación de obras derivadas de este documento para su uso como especificación técnica.

[Además, los «componentes de código» —el IDL web en las secciones claramente marcadas como IDL web; y el marcado definido por el W3C (HTML, CSS, etc.) y el código de lenguaje de programación de computadoras claramente marcado como ejemplos de código— se licencian bajo la licencia de software del W3C.](http://www.w3.org/Consortium/Legal/copyright-software)

El aviso es el siguiente:

«Derechos de autor © 2015 W3C® (MIT, ERCIM, Keio, Beihang). Este software o documento incluye material copiado o derivado de [título y URI del documento del W3C]».

Descargos de responsabilidad

ESTE DOCUMENTO SE PROPORCIONA «TAL CUAL» Y LOS TITULARES DE LOS DERECHOS DE AUTOR NO DECLARAN NI GARANTIZAN, DE FORMA EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR, NO INFRACCIÓN O TÍTULO; QUE EL CONTENIDO DEL DOCUMENTO SEA ADECUADO PARA CUALQUIER PROPÓSITO; NI QUE LA IMPLEMENTACIÓN DE DICHO CONTENIDO NO INFRINJA PATENTES, DERECHOS DE AUTOR, MARCAS COMERCIALES U OTROS DERECHOS DE TERCEROS.

LOS TITULARES DE LOS DERECHOS DE AUTOR NO SERÁN RESPONSABLES DE NINGÚN DAÑO DIRECTO, INDIRECTO, ESPECIAL O CONSECUENTE QUE SURJA DEL USO DEL DOCUMENTO O DE LA EJECUCIÓN O IMPLEMENTACIÓN DE SU CONTENIDO.

El nombre y las marcas comerciales de los titulares de los derechos de autor NO se pueden utilizar en la publicidad o la publicidad relacionada con este documento o su contenido sin un permiso previo específico y por escrito. Los titulares de los derechos de autor de este documento permanecerán en todo momento en manos de los titulares de los derechos de autor.

# Declaraciones de encabezado
<a name="srgs-header"></a>

En la siguiente tabla, se muestran las declaraciones de encabezado compatibles con el tipo de slot gramatical. Para obtener más información, consulte la recomendación del W3C sobre [Declaraciones de encabezado sobre gramática](https://www.w3.org/TR/speech-grammar/#S4.1) en la versión 1 de la *Especificación gramatical del reconocimiento de voz*.


| Declaración | Requisito de especificación | Formulario XML | Soporte de Amazon Lex V2 | Especificación  | 
| --- | --- | --- | --- | --- | 
| Versión gramatical | Obligatorio | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3): atributo version en el elemento grammar | Obligatorio | SRGS | 
| Espacio de nombres XML | Obligatorio (solo XML) | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3): atributo xmlns en el elemento grammar | Obligatorio | SRGS | 
| Tipo de documento | Obligatorio (solo XML) | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3): TIPO DE DOCUMENTO XML | Recomendado | SRGS | 
| Codificación de caracteres | Recomendado | [4.4](https://www.w3.org/TR/speech-grammar/#S4.4): atributo encoding en la declaración XML | Recomendado | SRGS | 
| Idioma | Necesario en el modo de voz Se ignora en el modo DTMF | [4.5](https://www.w3.org/TR/speech-grammar/#S4.5): atributo xml:lang en el elemento grammar | Necesario en el modo de voz Se ignora en el modo DTMF | SRGS | 
| Mode | Opcional | [4.6](https://www.w3.org/TR/speech-grammar/#S4.6): atributo mode en el elemento grammar | Opcional | SRGS | 
| Regla raíz | Opcional | [4.7](https://www.w3.org/TR/speech-grammar/#S4.7): atributo root en el elemento grammar | Obligatorio | SRGS | 
| Formato de etiqueta | Opcional | [4.8](https://www.w3.org/TR/speech-grammar/#S4.8): atributo tag-format en el elemento grammar | Son cadenas literales y son compatibles ECMAScript  | SRGS, SISR | 
| URI de base | Opcional | [4.9](https://www.w3.org/TR/speech-grammar/#S4.9): atributo xml:base en el elemento grammar | Opcional | SRGS | 
| Lexicones de pronunciación | Opcional, se admiten varios | [4.10](https://www.w3.org/TR/speech-grammar/#S4.`0): elemento lexicon | No compatible | SRGS, PLUS | 
| Metadatos | Opcional, se admiten varios | [4.11.1](https://www.w3.org/TR/speech-grammar/#S4.11.1): elemento meta | Obligatorio | SRGS | 
| Metadatos XML | Opcional, solo XML | [4.11.2](https://www.w3.org/TR/speech-grammar/#S4.11.2): elemento metadata | Opcional | SRGS | 
| Tag | Opcional, se admiten varios | [4.12](https://www.w3.org/TR/speech-grammar/#S4.12): elemento tag | No se admiten etiquetas globales | SRGS | 

**Ejemplo**

```
<?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">

<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xml:base="http://www.example.com/base-file-path"
         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"
         mode="voice"
         root="city"
         tag-format="semantics/1.0">
```

# Elementos XML compatibles
<a name="srgs-supported-xml"></a>

Amazon Lex V2 admite los siguientes elementos XML para gramáticas personalizadas:
+ `<item>`
+ `<token>`
+ `<tag>`
+ `<one-of>`
+ `<rule-ref>`

# Tokens
<a name="srgs-tokens"></a>

En la siguiente tabla, se muestran las especificaciones de token compatibles con el tipo de slot gramatical. Para obtener más información, consulte la recomendación del W3C sobre [Tokens](https://www.w3.org/TR/speech-grammar/#S2.1) de la versión 1 de la *Especificación gramatical del reconocimiento de voz*.


| Tipo de token | Ejemplo | ¿Compatible? | 
| --- | --- | --- | 
| Token único sin comillas | Hola  | Sí | 
| Token único sin comillas: no alfabético | 2 | Sí | 
| Token único entre comillas, sin espacios en blanco | «hola» | Sí, coloque las comillas dobles cuando solo contenga un token | 
| Dos tokens delimitados por espacios en blanco | buen viaje | Sí | 
| Cuatro tokens delimitados por espacios en blanco | esta es una prueba | Sí | 
| Token único entre comillas, con espacios en blanco | «San Francisco» | No | 
| Token único XML en la etiqueta <token> | <token>San Francisco</token> | No (igual que token único entre comillas con espacios en blanco) | 

**Notas**
+ *Token único entre comillas con espacios en blanco*: la especificación exige que las palabras entre comillas dobles se traten como un token único. Amazon Lex V2 los trata como tokens delimitados por espacios en blanco.
+ *Token único XML en <token>*: la especificación requiere que las palabras delimitadas por <token> representen un token. Amazon Lex V2 los trata como tokens delimitados por espacios en blanco.
+ Amazon Lex V2 arroja un error de validación cuando se encuentra alguno de los dos usos en la gramática.

**Ejemplo**

```
<rule id="state" scope="public">
    <one-of>
        <item>FL</item>
        <item>MA</item>
        <item>NY</item>
    </one-of>
</rule>
```

# Referencia a reglas
<a name="srgs-rule-reference"></a>

La siguiente tabla resume las diversas formas de las referencias a reglas que son posibles en los documentos gramaticales. Para obtener más información, consulte la recomendación del W3C sobre la [Referencia a reglas](https://www.w3.org/TR/speech-grammar/#S2.2) de la versión 1 de la *Especificación gramatical del reconocimiento de voz*. 


| Tipo de referencia | Formulario XML |  compatible | 
| --- | --- | --- | 
| [ 2.2.1 ](https://www.w3.org/TR/speech-grammar/#S2.2.1) Referencia explícita a una regla local | <ruleref uri="\$1rulename"/> | Sí | 
| [2.2.2 ](https://www.w3.org/TR/speech-grammar/#S2.2.2) Referencia explícita a una regla gramatical nombrada identificada por un [URI](https://www.w3.org/TR/speech-grammar/#term-uri) | <ruleref uri="grammarURI\$1rulename"/> | No | 
| [ 2.2.2 ](https://www.w3.org/TR/speech-grammar/#S2.2.2) Referencia implícita a una regla raíz gramatical identificada por un [URI](https://www.w3.org/TR/speech-grammar/#term-uri) | <ruleref uri="grammarURI"/> | No | 
| [ 2.2.2 ](https://www.w3.org/TR/speech-grammar/#S2.2.2) Referencia explícita a una regla gramatical nombrada identificada por un [URI](https://www.w3.org/TR/speech-grammar/#term-uri) con un [tipo de medio](https://www.w3.org/TR/speech-grammar/#term-media-type) | <ruleref uri="grammarURI\$1rulename" type="media-type"/> | No | 
| [ 2.2.2 ](https://www.w3.org/TR/speech-grammar/#S2.2.2) Referencia implícita a una regla raíz gramatical identificada por un [URI](https://www.w3.org/TR/speech-grammar/#term-uri) con un [tipo de medio](https://www.w3.org/TR/speech-grammar/#term-media-type) | <ruleref uri="grammarURI" type="media-type"/> | No | 
| [ 2.2.3 ](https://www.w3.org/TR/speech-grammar/#S2.2.3) Definiciones de reglas especiales | `<ruleref special="NULL"/>` `<ruleref special="VOID"/>` `<ruleref special="GARBAGE"/>` | No | 

**Notas**

1. El URI gramatical es un URI externo. Por ejemplo, `http://grammar.example.com/world-cities.grxml`.

1. El tipo de medio puede ser:
   + `application/srgs+xml`
   + `text/plain`

**Ejemplo**

```
<rule id="city" scope="public">
    <one-of>
        <item>Boston</item>
        <item>Philadelphia</item>
        <item>Fargo</item>
    </one-of>
</rule>

<rule id="state" scope="public">
    <one-of>
        <item>FL</item>
        <item>MA</item>
        <item>NY</item>
    </one-of>
</rule>

<!-- "Boston MA" -> city = Boston, state = MA -->
<rule id="city_state" scope="public">
    <ruleref uri="#city"/> <ruleref uri="#state"/>
</rule>
```

# Secuencias y encapsulación
<a name="srgs-sequence"></a>

En el siguiente ejemplo, se muestran las secuencias compatibles. Para obtener más información, consulte la recomendación del W3C sobre [Encapsulación y secuencias](https://www.w3.org/TR/speech-grammar/#S2.3) de la versión 1 de la *Especificación gramatical del reconocimiento de voz*. 

**Ejemplo**

```
<!-- sequence of tokens -->
this is a test

<!--sequence of rule references-->
<ruleref uri="#action"/> <ruleref uri="#object"/>

<!--sequence of tokens and rule references-->
the <ruleref uri="#object"/> is <ruleref uri="#color"/>

<!-- sequence container -->
<item>fly to <ruleref uri="#city"/> </item>
```

# Repeticiones
<a name="srgs-repeats"></a>

En la siguiente tabla, se muestran las expansiones repetidas compatibles con las reglas. Para obtener más información, consulte la recomendación del W3C sobre [Repeticiones](https://www.w3.org/TR/speech-grammar/#S2.5) de la versión 1 de la *Especificación gramatical del reconocimiento de voz*. 


| Formulario XMLEjemplo | Comportamiento | ¿Compatible? | 
| --- | --- | --- | 
| *repeat=«n»* repeat=«6» | La expresión contenida se repite exactamente «n» veces. «n» debe ser «0» o un número entero positivo. | Sí | 
| *repeat=»m-n»* repeat=«4-6» | La expansión contenida se repite entre «m» y «n» veces (inclusive). Tanto «m» como «n» deben ser «0» o un entero positivo, y «m» debe ser menor o igual que «n». | Sí | 
| *repeat=»m-»* repeat=«3-» | La expansión contenida se repite «m» veces o más (inclusive). «m» debe ser «0» o un entero positivo. Por ejemplo, «3-» indica que la expansión contenida puede producirse tres, cuatro, cinco o más veces. | Sí | 
| *repeat=«0-1»*  | La expansión contenida es opcional. | Sí | 
| <item repeat=«2-4» repeat-prob=«0.8»> |   | No | 

# Idioma
<a name="srgs-language"></a>

La siguiente explicación hace referencia a los identificadores de idioma aplicados a las gramáticas. Para obtener más información, consulte la recomendación del W3C sobre [Idioma](https://www.w3.org/TR/speech-grammar/#S2.7) de la versión 1 de la *Especificación gramatical del reconocimiento de voz*. 

De forma predeterminada, una gramática es un documento en un solo idioma con un [identificador de idioma](https://www.w3.org/TR/speech-grammar/#term-language) que se proporciona en la declaración de idioma del [encabezado gramatical](https://www.w3.org/TR/speech-grammar/#S4.1). Todos los tokens de esa gramática, a menos que se indique lo contrario, **se gestionarán de acuerdo con el idioma de la gramática**. **No se admiten** las declaraciones lingüísticas a nivel gramatical.

En el siguiente ejemplo:

1. Amazon Lex V2 admite la declaración del encabezado gramatical para el idioma «en-US».

1. **No** se admiten los archivos adjuntos de idioma a nivel de elemento (resaltados*red*). Amazon Lex V2 arroja un error de validación si el idioma adjunto es diferente al de la declaración del encabezado.

```
<?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">

<!-- the default grammar language is US English -->
<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">

  <!--
     single language attachment to tokens
     "yes" inherits US English language
     "oui" is Canadian French language
  -->
  <rule id="yes">
    <one-of>
      <item>yes</item>
      <item xml:lang="fr-CA">oui</item>
    </one-of>
  </rule>

  <!-- Single language attachment to an expansion -->
  <rule id="people1">
    <one-of xml:lang="fr-CA">
      <item>Michel Tremblay</item>
      <item>André Roy</item>
    </one-of>
  </rule>
</grammar>
```

# Tags
<a name="srgs-tags"></a>

La siguiente explicación hace referencia a las etiquetas definidas para las gramáticas. Para obtener más información, consulte la recomendación del W3C sobre [Etiquetas](https://www.w3.org/TR/speech-grammar/#S2.6) de la versión 1 de la *Especificación gramatical del reconocimiento de voz*. 

Según la especificación SRGS, las etiquetas se pueden definir de las siguientes maneras:

1. Como parte de una declaración de encabezado, tal como se describe en [Declaraciones de encabezado](srgs-header.md).

1. Como parte de una definición de *<regla>*.

Se admiten los siguientes formatos:
+ `semantics/1.0`(SEÑOR,) ECMAScript
+ `semantics/1.0-literals` (literales de cadena SISR)

No se admiten los siguientes formatos:
+ `swi-semantics/1.0` (propiedad de Nuance)

**Ejemplo**

```
<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xml:base="http://www.example.com/base-file-path"
         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"
         mode="voice"
         root="city"
         tag-format="semantics/1.0-literals">
    <rule id="no">
        <one-of>
            <item>no</item>
            <item>nope</item>
            <item>no way</item>
        </one-of>
        <tag>no</tag>
    </rule>
</grammar>
```

# Ponderaciones
<a name="grammar-weights"></a>

Puede añadir el atributo de *peso* a un elemento. El peso es un valor de punto flotante positivo que representa el grado en que se potencia la frase del elemento durante el reconocimiento de voz. Para obtener más información, consulte la recomendación del W3C sobre [Ponderaciones](https://www.w3.org/TR/speech-grammar/) de la versión 1 de la Especificación gramatical del reconocimiento de voz.

Los pesos deben ser mayores que 0 y menores o iguales que 10 y solo pueden tener una cifra decimal. Si el peso es mayor que 0 e inferior a 1, la frase se potencia negativamente. Si el peso es mayor que 1 e inferior o igual a 10, la frase se potencia positivamente. Un peso de 1 equivale a no darle ningún peso y no hay ningún refuerzo para la frase.

Asignar los pesos adecuados a los elementos para mejorar el rendimiento del reconocimiento de voz es una tarea difícil. Estos son algunos consejos que puede seguir para asignar pesos:
+ Comience con una gramática sin asignar pesos a los elementos.
+ Determine qué patrones del discurso se identifican erróneamente con frecuencia.
+ Aplique valores diferentes para las ponderaciones hasta que note una mejora en el rendimiento del reconocimiento de voz y no se produzcan regresiones.

**Ejemplo 1**

Por ejemplo, si tiene una gramática para los aeropuertos y observa que a menudo se identifica erróneamente a *Nueva York* como *Newark*, puede darle un valor positivo a Nueva York asignándole una ponderación de 5.

```
<rule> id="airport">
    <one-of>
        <item>
            Boston
            <tag>out="Boston"</tag>
        </item>
        <item weight="5">
            New York
            <tag>out="New York"</tag>
        </item>
        <item>
            Newark
            <tag>out="Newark"</tag>
        </item>
    </one-of>
</rule>
```

**Ejemplo 2**

Por ejemplo, tiene una gramática para el código de reserva de una aerolínea que comienza con un alfabeto inglés seguido de tres dígitos. Lo más probable es que el código de reserva comience por B o D, pero si observa que con frecuencia B se identifica erróneamente con P y D con T. Puede aumentar positivamente las letras B y D.

```
<rule> id="alphabet">
    <one-of>
        <item>A<tag>out.letters+='A';</tag></item>
        <item weight="3.5">B<tag>out.letters+='B';</tag></item>
        <item>C<tag>out.letters+='C';</tag></item>
        <item weight="2.9">D<tag>out.letters+='D';</tag></item>
        <item>E<tag>out.letters+='E';</tag></item>
        <item>F<tag>out.letters+='F';</tag></item>
        <item>G<tag>out.letters+='G';</tag></item>
        <item>H<tag>out.letters+='H';</tag></item>
        <item>I<tag>out.letters+='I';</tag></item>
        <item>J<tag>out.letters+='J';</tag></item>
        <item>K<tag>out.letters+='K';</tag></item>
        <item>L<tag>out.letters+='L';</tag></item>
        <item>M<tag>out.letters+='M';</tag></item>
        <item>N<tag>out.letters+='N';</tag></item>
        <item>O<tag>out.letters+='O';</tag></item>
        <item>P<tag>out.letters+='P';</tag></item>
        <item>Q<tag>out.letters+='Q';</tag></item>
        <item>R<tag>out.letters+='R';</tag></item>
        <item>S<tag>out.letters+='S';</tag></item>
        <item>T<tag>out.letters+='T';</tag></item>
        <item>U<tag>out.letters+='U';</tag></item>
        <item>V<tag>out.letters+='V';</tag></item>
        <item>W<tag>out.letters+='W';</tag></item>
        <item>X<tag>out.letters+='X';</tag></item>
        <item>Y<tag>out.letters+='Y';</tag></item>
        <item>Z<tag>out.letters+='Z';</tag></item>
    </one-of>
</rule>
```