Pesos - Guia do desenvolvedor

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á.

Pesos

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 obter mais informações, consulte Pesos 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>