Programme traitant la parole reconnue

Le programme charge d'abord un reconnaisseur de parole, puis la grammaire. Il associe alors à cette grammaire un listener qui lance la méthode acceptedResult() lorsqu'une règle a été reconnue.
 
import javax.speech.*;
import javax.speech.recognition.*;
...

public class Reconnaissance {
    public static void main(String args[]) {
           ...
           // creation d'un reconnaisseur 
            recognizer = Central.createRecognizer(null);
            recognizer.allocate();
           ... 

            // creation d'une grammaire de règle à partir du fichier hello_fr.gram
            Reader reader = new FileReader("hello_fr.gram");
            ruleGrammar = (RuleGrammar) recognizer.loadJSGF(reader);
            // ajout d'un listener déclanché lorsqu'une règle est reconnue 
            ruleGrammar.addGrammarListener(ruleListener);
            ... 
            recognizer.commitChanges();
            recognizer.resume();
    }

   static GrammarListener ruleListener = new GrammarResultAdapter() {
       public void acceptedResult(ResultEvent e) {
            ... 
  // pour récupérer les tags des règles reconnues
                FinalRuleResult result = (FinalRuleResult) e.getSource();
                String tags[] = result.getTags();

                // l'utilisateur a dit "c'est fini"
                if (tags[0].equals("stop")) {
                    ... 
                    System.out.println("c'est fini");

                    System.out.println("A bientot");
               }
        }
    };
}