Estructura del archivo de gramática
Los archivos de gramática deben seguir una estructura específica para que Speakeasy interprete correctamente el contenido del archivo.
Ver un vídeo relacionado (3:38)
Lo siguiente es un ejemplo de contenido de un archivo de gramática básico:
#BNF+EM V2.1;
/*
GRAMMAR: usa_states.bnf
Descripción:
Es un archivo de gramática que reconoce algunos estados de EE.UU.
¿Qué puedo decir?
Se puede decir cualquiera de los estados americanos siguientes.
*/
!grammar usa_states;
!start <state>
<state>:
Alabama
| Alaska
| Connecticut
| Florida
| Idaho
| Kansas
| "Nueva Jersey"
| "Nueva York"
#BNF+EM V2.1;
Cada archivo de gramática debe empezar con una instrucción como #BNF+EM V1.1; que identifica el modo en que Speakeasy deberá gestionar el archivo de gramática. No es necesario modificar esta línea.
/* */ o //
Para crear comentarios, información que ignora el motor, puede empezar una línea con // o incluir el texto en los marcadores /* y */ . Se pueden editar las secciones Descripción y ¿Qué puedo decir? para decribir los cambios que se realizan al archivo de gramática.
!grammar [filename]
Si cambia el nombre del archivo de gramática, el comando !grammar
debe usar el nuevo nombre de archivo. Por ejemplo, si se ha cambiado el nombre del archivo a VoicePick.bnf, el comando leerá: !grammar VoicePick;.
!start <state>
El comando !start especifica el grupo de términos del archivo de gramática que estará disponible cuando se utilice la gramática. En el ejemplo de arriba, el motor escuchará todos los términos de la regla <state> . Si existían múltiples reglas y el comando sólo hizo referencia a una, se ignorarán el resto de reglas.
<state>: Alabama | Connecticut |...
Las palabras y frases que se listan entre <state>: y el último ; son los términos que aceptará la gramática. Cada palabra o frase debe estar separada por un símbolo | (y símbolo O). Todos los términos se pueden listar en la misma línea o se pueden alinear de manera vertical para que sea más fácil editarlos.
Para mejorar el reconocimiento de términos que puedan ser similares a otros, como Nueva York y Nueva Jersey, envuelva la frase entre "" (comillas). Esto fuerza al motor de Speakeasy a tener más cuidado al comparar la frase aceptada con la respuesta del usuario.
Múltiples reglas
En algunos archivos de gramática, la regla se divide en subsecciones para facilitar la gestión de términos. Si tiene múltiples reglas en un archivo, asegúrese de que están todas incluidas en la regla que se utiliza en la línea !start .
!start <Speech>;
<Speech>: <YesNo> | <Maybe>;
<YesNo>: sí | no;
<Maybe>: quizás;
En este ejemplo, la regla <Speech> incluye las reglas <YesNo> y <Maybe>, para que el motor escuche todos los términos de la regla <YesNo> y de la regla <Maybe>.
Términos similares
Si tiene palabras que suenan parecidas, es posible que los resultados de reconocimiento no sean exactos. Para mejorar el reconocimiento, utilice frases más largas y únicas. Por ejemplo, en lugar de utilizar términos similares, como "más rápido" y "el más rápido", sustitúyalos por frases como "ir más rápido" y "velocidad de urdimbre".