JSGF (Java Speech Grammar Format)


Ce langage permet de définir des grammaires de texte à reconnaitre. Les
spécifications de JSGF sont disponibles en ligne à :
http://java.sun.com/products/java-media/speech/forDevelopers/JSGF/index.html

description d'une grammaire en JSGF

exemple de fichier définissant une grammaire de texte à reconnaitre :
 
grammar hello;

<first> = Henri {Henri}
        | Maurice {Maurice}
        | Victor {Victor}
        | Jean-Marc {Jean-Marc}
 ; 

<last>  = Matisse {Matisse}
        | Chevalier {Chevalier}
        | Hugo {Hugo}
        | Farinone {Farinone}
 ;

<name> = <first> <last>;

public <nameis> = Je m' appelle {name} <name>;

public <begin> = Répétez après moi {begin};

public <stop> = C'est fini {stop};

public <bye> = Au revoir {bye};
 

commence par :
grammar <nomDeGrammaire>;

il est constitué d'une suite de règles de la forme :
[public] <nomDeRegle> = membreDroit;
(règle hors contexte)
où le membre droit est de la forme :
membreDroit = token [{tag}][ | token [{tag}] ]*

Une règle publique est une règle qui peut être active pour une reconnaissance de texte.
tag est un marqueur utilisable par le programmeur.

démonstration

On peut écrire un programme qui écoute un texte parlé et affiche la dictée.
Il écrit les mots reconnus et affiche "A bientot"  lorsque l'utilisateur dit "C'est fini".