Structure des fichiers de grammaire
Les fichiers de grammaire doivent respecter une structure spécifique pour que Speakeasy interprète correctement leur contenu.
Voici un exemple du contenu d'un fichier de grammaire de base :
#BNF+EM V2.1;
/*
GRAMMAR: usa_states.bnf
Description :
Ceci est un fichier de grammaire qui reconnaît certains états des États-Unis.
Que puis-je dire ?
Vous pouvez dire le nom de n'importe quel état des États-Unis.
*/
!grammar usa_states;
!start <state>;
<state>:
Alabama
| Alaska
| Connecticut
| Floride
| Idaho
| Kansas
| "New Jersey"
| "New York";
#BNF+EM V2.1;
Chaque fichier de grammaire doit commencer par une instruction comme #BNF+EM V1.1;, qui identifie la façon dont Speakeasy doit gérer le fichier de grammaire. Vous n'avez pas besoin de modifier cette ligne.
/* */ ou //
Permet de créer des commentaires (informations que le moteur va ignorer). Vous pouvez faire commencer la ligne par //, ou mettre le texte entre les marqueurs /* et */. Vous pouvez modifier les sections Description et Que puis-je dire ? pour décrire les changements apportés au fichier de grammaire.
!grammar [filename]
Si vous renommez le fichier de grammaire, la commande !grammar
doit utiliser le nouveau nom de fichier. Par exemple, si vous renommez le fichier en VoicePick.bnf, la commande doit être : !grammar VoicePick;.
!start <state>;
La commande !start indique le groupe de termes du fichier de grammaire qui doit être disponible lorsque ce fichier est utilisé. Dans l'exemple ci-dessus, le moteur écoute tous les termes de la règle <state>. S'il existe plusieurs règles mais que la commande ne fait référence qu'à une seule, toutes les autres règles sont ignorées.
<state>: Alabama | Connecticut |...
Les mots et expressions répertoriés entre <state>: et le dernier point-virgule (;) sont les termes que la grammaire va accepter. Chaque mot ou expression doit être séparé des autres par le symbole | (OR). Les termes peuvent tous figurer sur la même ligne ou être alignés verticalement pour faciliter la lecture.
Pour améliorer la reconnaissance des termes qui se ressemblent, comme « New York » et « New Jersey », placez l'expression entre guillemets droits (""). Cela force le moteur Speakeasy à comparer l'expression acceptée et la réponse de l'utilisateur plus en détail.
Règles multiples
Dans certains fichiers de grammaire, la règle principale est divisée en sous-sections qui facilitent la gestion des termes. Si un fichier contient plusieurs règles, vérifiez que toutes figurent dans la règle utilisée sur la ligne !start.
!start <Speech>;
<Speech>: <YesNo> | <Maybe>;
<YesNo>: yes | no;
<Maybe>: maybe;
Dans cet exemple, la règle <Speech> inclut les règles <YesNo> (Oui/Non) et <Maybe> (Peut-être), ce qui permet au moteur d'écouter tous les termes, à la fois dans la règle <YesNo> et dans la règle <Maybe>.
Termes similaires
Si vous utilisez des mots dont la prononciation est semblable, vous risquez d'obtenir des résultats de reconnaissance médiocres. Pour améliorer la reconnaissance, utilisez des expressions plus longues et plus distinctes. Par exemple, au lieu d'utiliser des expressions similaires comme « plus rapide » et « le plus rapide », choisissez plutôt des expressions comme « accélérer » et « augmenter encore la vitesse ».