

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Definição de gramática
<a name="grammar-srgs-spec"></a>

Este tópico mostra as partes da especificação SRGS com as quais o Amazon Lex V2 é compatível. Todas as regras são definidas na especificação SRGS. Para mais informações, consulte a recomendação do W3C da [Speech recognition grammar specification version 1.0](https://www.w3.org/TR/speech-grammar/).

**Topics**
+ [Declarações de cabeçalho](srgs-header.md)
+ [Elementos XML compatíveis](srgs-supported-xml.md)
+ [Tokens](srgs-tokens.md)
+ [Referência de regras](srgs-rule-reference.md)
+ [Sequências e encapsulamento](srgs-sequence.md)
+ [Repetições](srgs-repeats.md)
+ [Linguagem](srgs-language.md)
+ [Tags](srgs-tags.md)
+ [Pesos](grammar-weights.md)

[Este documento inclui material copiado e derivado da Especificação Gramatical de Reconhecimento de Fala do W3C, versão 1.0 (disponível em https://www.w3). org/TR/speech-gramática/](https://www.w3.org/TR/speech-grammar/)). Veja abaixo as informações de citação:

[Copyright](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 os direitos reservados. Aplicam-se as regras de [responsabilidade](http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer), [marca registrada](http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks), [uso de documentos](http://www.w3.org/Consortium/Legal/copyright-documents) e [licenciamento de software](http://www.w3.org/Consortium/Legal/copyright-software) do W3C.

O documento de especificação do SRGS, uma [Recomendação do W3C](https://www.w3.org/2004/02/Process-20040205/tr.html#RecsW3C), está disponível no W3C sob a licença a seguir.

## Texto da licença
<a name="license-text"></a>

Licença

Ao usar a and/or cópia deste documento ou do documento W3C ao qual esta declaração está vinculada, você (o licenciado) concorda que leu, entendeu e cumprirá os seguintes termos e condições:

A permissão para copiar e distribuir o conteúdo deste documento ou do documento W3C ao qual esta declaração está vinculada, em qualquer meio, para qualquer finalidade e sem taxa ou royalties, é concedida, desde que você inclua o seguinte em TODAS as cópias do documento, ou partes dele, que você usar:
+ Um link ou URL para o documento original do W3C.
+ [http://www.keio.ac.jp/](http://www.keio.ac.jp/) [http://www.w3. org/Consortium/Legal/2015/doc-licença](http://www.w3.org/Consortium/Legal/2015/doc-license)”
+ *Se existir,* o STATUS do documento do W3C.

Quando o espaço permitir, a inclusão do texto completo deste **AVISO** deve ser fornecida. Solicitamos que a atribuição de autoria seja fornecida em qualquer software, documento ou outros itens ou produtos que você criar de acordo com a implementação do conteúdo deste documento ou de qualquer parte dele.

Nenhum direito de criar modificações ou derivados de documentos do W3C é concedido de acordo com esta licença, exceto da seguinte forma: Para facilitar a implementação das especificações técnicas estabelecidas neste documento, qualquer pessoa pode preparar e distribuir trabalhos derivados e partes deste documento em software, em materiais de apoio que acompanham o software e na documentação do software, DESDE que todos esses trabalhos incluam o aviso abaixo. NO ENTANTO, a publicação de trabalhos derivados deste documento para uso como especificação técnica é expressamente proibida.

Além disso, “Componentes de código”, IDL da Web em seções claramente marcadas como IDL da Web; e marcação definida pelo W3C (HTML, CSS etc.) e o código da linguagem de programação de computador claramente marcados como exemplos de código, estão licenciados sob a [Licença de software do W3C](http://www.w3.org/Consortium/Legal/copyright-software).

O aviso é:

"Copyright © 2015 W3C® (MIT, ERCIM, Keio, Beihang). Este software ou documento inclui material copiado ou derivado de [título e URI do documento do W3C].”

Isenção de responsabilidade

ESTE DOCUMENTO É FORNECIDO “COMO ESTÁ” E OS DETENTORES DE DIREITOS AUTORAIS NÃO FAZEM REPRESENTAÇÕES OU GARANTIAS, EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO SE LIMITANDO A, GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA, NÃO VIOLAÇÃO OU TÍTULO; QUE O CONTEÚDO DO DOCUMENTO É ADEQUADO PARA QUALQUER FINALIDADE; NEM QUE A IMPLEMENTAÇÃO DE TAIS CONTEÚDOS NÃO INFRINGIRÁ QUAISQUER PATENTES, DIREITOS AUTORAIS, MARCAS REGISTRADAS OU OUTROS DIREITOS DE TERCEIROS.

OS DETENTORES DE DIREITOS AUTORAIS NÃO SERÃO RESPONSÁVEIS POR QUAISQUER DANOS DIRETOS, INDIRETOS, ESPECIAIS OU CONSEQUENTES DECORRENTES DE QUALQUER USO DO DOCUMENTO OU DA EXECUÇÃO OU IMPLEMENTAÇÃO DE SEU CONTEÚDO.

O nome e as marcas comerciais dos detentores de direitos autorais NÃO podem ser usados em publicidade ou publicidade relacionada a este documento ou seu conteúdo sem permissão prévia específica por escrito. A titularidade dos direitos autorais deste documento permanecerá sempre com os detentores dos direitos autorais.

# Declarações de cabeçalho
<a name="srgs-header"></a>

A tabela a seguir mostra as declarações de cabeçalho compatíveis com o tipo de slot de gramática. Para mais informações, consulte [Declarações de cabeçalho de gramática](https://www.w3.org/TR/speech-grammar/#S4.1) na recomendação do W3C *Speech Recognition Grammar Specification Version 1*.


| Declaração | Requisitos de especificação | Formulário XML | Suporte ao Amazon Lex | Especificação | 
| --- | --- | --- | --- | --- | 
| Versão gramatical | Obrigatório | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3): atributo version no elemento grammar | Obrigatório | SRGS | 
| Namespace XML | Obrigatório (somente XML) | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3): atributo xmlns no elemento grammar | Obrigatório | SRGS | 
| Tipo de documento | Obrigatório (somente XML) | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3): DOCTYPE XML | Recomendado | SRGS | 
| Codificação de caracteres | Recomendado | [4.4](https://www.w3.org/TR/speech-grammar/#S4.4): atributo encoding na declaração XML | Recomendado | SRGS | 
| Linguagem | Necessário no modo de voz Ignorado no modo DTMF | [4.5](https://www.w3.org/TR/speech-grammar/#S4.5): atributo xml:lang no elemento grammar | Necessário no modo de voz Ignorado no modo DTMF | SRGS | 
| Modo | Opcional | [4.6](https://www.w3.org/TR/speech-grammar/#S4.6): atributo mode no elemento grammar | Opcional | SRGS | 
| Regra raiz | Opcional | [4.7](https://www.w3.org/TR/speech-grammar/#S4.7): atributo root no elemento grammar | Obrigatório | SRGS | 
| Formato de tag | Opcional | [4.8](https://www.w3.org/TR/speech-grammar/#S4.8): atributo tag-format no elemento grammar | String literal e ECMAScript são suportados | SRGS, SISR | 
| URI de base | Opcional | [4.9](https://www.w3.org/TR/speech-grammar/#S4.9): atributo xml:base no elemento grammar | Opcional | SRGS | 
| Léxico de pronúncia | Opcional, vários permitidos | [4.10](https://www.w3.org/TR/speech-grammar/#S4.`0): elemento lexicon | Sem suporte | SRGS, PLS | 
| Metadados | Opcional, vários permitidos | [4.11.1](https://www.w3.org/TR/speech-grammar/#S4.11.1): elemento meta | Obrigatório | SRGS | 
| Metadados XML | Opcional, somente XML | [4.11.2](https://www.w3.org/TR/speech-grammar/#S4.11.2): elemento metadata | Opcional | SRGS | 
| Tag | Opcional, vários permitidos | [4.12](https://www.w3.org/TR/speech-grammar/#S4.12): elemento tag | Tags globais não compatíveis | SRGS | 

**Exemplo**

```
<?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 compatíveis
<a name="srgs-supported-xml"></a>

O Amazon Lex V2 oferece suporte aos seguintes elementos XML para gramáticas personalizadas:
+ `<item>`
+ `<token>`
+ `<tag>`
+ `<one-of>`
+ `<rule-ref>`

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

A tabela a seguir mostra as especificações de token compatíveis com o tipo de slot de gramática. Para mais informações, consulte [Tokens](https://www.w3.org/TR/speech-grammar/#S2.1) na recomendação do W3C *Speech recognition grammar specification version 1*.


| Tipo de token | Exemplo | Compatível? | 
| --- | --- | --- | 
| Token único sem aspas | olá | Sim | 
| Token único sem aspas: não alfabético | 2 | Sim | 
| Token único sem aspas, sem espaço em branco | "olá" | Sim, coloque aspas duplas quando ele contém apenas um único token | 
| Dois tokens delimitados por espaço em branco | boa viagem | Sim | 
| Quatro tokens delimitados por espaço em branco | isso é um teste | Sim | 
| Token único com aspas, incluindo espaço em branco | "São Francisco | Não | 
| Token XML único na tag <token> | <token>São Francisco</token> | Não (o mesmo que um token único com aspas com espaço em branco) | 

**Observações**
+ *Token único com aspas, incluindo espaço em branco* – A especificação exige que as palavras entre aspas duplas sejam tratadas como um único token. O Amazon Lex V2 os trata como tokens delimitados por espaços em branco.
+ *Token XML único em <token>* – A especificação requer palavras delimitadas por <token> para representar um token. O Amazon Lex V2 os trata como tokens delimitados por espaços em branco.
+ O Amazon Lex V2 gera um erro de validação quando qualquer uso é encontrado na gramática.

**Exemplo**

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

# Referência de regras
<a name="srgs-rule-reference"></a>

A tabela a seguir resume as várias formas de referência de regras que são possíveis em documentos de gramática. Para mais informações, consulte [Referência de regras](https://www.w3.org/TR/speech-grammar/#S2.2) na recomendação do W3C *Speech recognition grammar specification version 1*. 


| Tipo de referência | Formulário XML | Compatível | 
| --- | --- | --- | 
| [ 2.2.1 ](https://www.w3.org/TR/speech-grammar/#S2.2.1) Referência de regra local explícita | <ruleref uri="\$1rulename"/> | Sim | 
| [ 2.2.2 ](https://www.w3.org/TR/speech-grammar/#S2.2.2) Referência explícita a uma regra nomeada de uma gramática identificada por um [URI](https://www.w3.org/TR/speech-grammar/#term-uri) | <ruleref uri="grammarURI\$1rulename"/> | Não | 
| [ 2.2.2 ](https://www.w3.org/TR/speech-grammar/#S2.2.2) Referência implícita à regra raiz de uma gramática identificada por um [URI](https://www.w3.org/TR/speech-grammar/#term-uri) | <ruleref uri="grammarURI"/> | Não | 
| [ 2.2.2 ](https://www.w3.org/TR/speech-grammar/#S2.2.2) Referência explícita a uma regra nomeada de uma gramática identificada por um [URI](https://www.w3.org/TR/speech-grammar/#term-uri) com um [tipo de mídia](https://www.w3.org/TR/speech-grammar/#term-media-type) | <ruleref uri="grammarURI\$1rulename" type="media-type"/> | Não | 
| [ 2.2.2 ](https://www.w3.org/TR/speech-grammar/#S2.2.2) Referência implícita à regra raiz de uma gramática identificada por um [URI](https://www.w3.org/TR/speech-grammar/#term-uri) com um [tipo de mídia](https://www.w3.org/TR/speech-grammar/#term-media-type) | <ruleref uri="grammarURI" type="media-type"/> | Não | 
| [ 2.2.3 ](https://www.w3.org/TR/speech-grammar/#S2.2.3) Definições de regras especiais | `<ruleref special="NULL"/>` `<ruleref special="VOID"/>` `<ruleref special="GARBAGE"/>` | Não | 

**Observações**

1. O URI de gramática é um URI externo. Por exemplo, .`http://grammar.example.com/world-cities.grxml`

1. O tipo de mídia pode ser:
   + `application/srgs+xml`
   + `text/plain`

**Exemplo**

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

# Sequências e encapsulamento
<a name="srgs-sequence"></a>

O exemplo a seguir mostra as sequências compatíveis. Para mais informações, consulte [Sequências e encapsulamento](https://www.w3.org/TR/speech-grammar/#S2.3) na recomendação do W3C *Speech recognition grammar specification version 1*. 

**Exemplo**

```
<!-- 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>
```

# Repetições
<a name="srgs-repeats"></a>

A tabela a seguir mostra as expansões repetidas de regras compatíveis. Para mais informações, consulte [Repetições](https://www.w3.org/TR/speech-grammar/#S2.5) na recomendação do W3C *Speech recognition grammar specification version 1*. 


| Formulário XMLExemplo | Comportamento | Compatível? | 
| --- | --- | --- | 
| *repeat="n"* repeat="6" | A expressão contida é repetida exatamente “n” vezes. “n” deve ser “0" ou um inteiro positivo. | Sim | 
| *repeat="m-n"* repeat="4-6" | A expansão contida é repetida entre “m” e “n” vezes (inclusive). “m” e “n” devem ser “0" ou um número inteiro positivo, e “m” deve ser menor ou igual a “n”. | Sim | 
| *repeat="m-"* repeat="3-" | A expansão contida é repetida “m” vezes ou mais (inclusive). “m” deve ser “0" ou um número inteiro positivo. Por exemplo, “3-” declara que a expansão contida pode ocorrer três, quatro, cinco ou mais vezes. | Sim | 
| *repeat="0-1"*  | A expansão contida é opcional. | Sim | 
| <item repeat="2-4" repeat-prob="0.8"> |   | Não | 

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

A discussão a seguir se aplica aos identificadores de idioma aplicados às gramáticas. Para mais informações, consulte [Idioma](https://www.w3.org/TR/speech-grammar/#S2.7) na recomendação do W3C *Speech recognition grammar specification version 1*. 

Por padrão, uma gramática é um documento de um único idioma com um [identificador de idioma](https://www.w3.org/TR/speech-grammar/#term-language) fornecido na declaração do idioma no [cabeçalho da gramática](https://www.w3.org/TR/speech-grammar/#S4.1). Todos os tokens dessa gramática, a menos que seja declarado de outra forma, **serão tratados de acordo com o idioma da gramática**. Declarações de idioma em nível gramatical **não são compatíveis**.

No seguinte exemplo:

1. A declaração de cabeçalho da gramática para o idioma “inglês-EUA” **é compatível** com o Amazon Lex V2.

1. O anexo de idioma em nível de item (destacado em*red*) **não é suportado**. O Amazon Lex V2 gera um erro de validação se um anexo de idioma for diferente da declaração do cabeçalho.

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

A discussão a seguir se aplica às tags definidas para gramáticas. Para mais informações, consulte [Tags](https://www.w3.org/TR/speech-grammar/#S2.6) na recomendação do W3C *Speech recognition grammar specification version 1*. 

Com base na especificação SRGS, as tags podem ser definidas das seguintes maneiras:

1. Como parte de uma declaração de cabeçalho, conforme descrito em [Declarações de cabeçalho](srgs-header.md).

1. Como parte de uma definição *<rule>*.

Os seguintes formatos de tag são compatíveis:
+ `semantics/1.0`(IRMÃ, ECMAScript)
+ `semantics/1.0-literals` (literais de string SISR)

Os seguintes formatos de tag não são compatíveis:
+ `swi-semantics/1.0` (Proprietário da Nuance)

**Exemplo**

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

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

Você pode adicionar o atributo de *peso* a um elemento. O peso é um valor positivo de ponto flutuante que representa o grau em que a frase no item é priorizada durante o reconhecimento de fala. Para mais informações, consulte [Pesos](https://www.w3.org/TR/speech-grammar/) na recomendação do W3C, Speech recognition grammar specification version 1.

Os pesos devem ser maiores que 0 e menores ou iguais a 10 e podem ter somente uma casa decimal. Se o peso for maior que 0 e menor que 1, a frase será priorizada negativamente. Se o peso for maior que 1 e menor ou igual a 10, a frase será priorizada positivamente. Um peso de 1 é equivalente a não atribuir peso algum, não havendo priorização para a frase.

Atribuir pesos apropriados aos itens para melhorar o desempenho do reconhecimento de fala é uma tarefa difícil. Veja aqui algumas dicas que você pode seguir para atribuir pesos:
+ Comece com uma gramática sem a atribuição de pesos aos itens.
+ Determine quais padrões na fala são frequentemente identificados de maneira errada.
+ Aplique valores diferentes para pesos até notar uma melhora no desempenho do reconhecimento de fala, sem apresentar regressões.

**Exemplo 1**

Por exemplo, se você tem uma gramática para aeroportos e observa que *Nova York* é frequentemente identificada de maneira errada como *Newark*, é possível priorizar positivamente Nova York atribuindo a ela um peso 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>
```

**Exemplo 2**

Por exemplo, você tem uma gramática para o código de reserva da companhia aérea que começa com uma letra do alfabeto inglês seguida por três dígitos. Provavelmente, o código de reserva começa com B ou D, mas você observa que B é frequentemente identificado como P de maneira errada, e D como T. É possível priorizar positivamente B e 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>
```