Пример #1
0
 /**
  * Retrieves the rule parse for the given result
  *
  * @param the recognition result
  * @return the rule parse for the result
  * @throws GrammarException
  */
 RuleParse getRuleParse(Result result) throws GrammarException {
   String resultText = result.getBestFinalResultNoFiller();
   BaseRecognizer jsapiRecognizer = new BaseRecognizer(getGrammar().getGrammarManager());
   try {
     jsapiRecognizer.allocate();
   } catch (EngineException | EngineStateError e) {
     System.err.println("failed to allocate jsapi recognizer: " + e.getMessage());
   }
   RuleGrammar ruleGrammar = new BaseRuleGrammar(jsapiRecognizer, getGrammar().getRuleGrammar());
   RuleParse ruleParse = ruleGrammar.parse(resultText, null);
   return ruleParse;
 }
  public static void main(String[] args) {
    ConfigurationManager cm;

    if (args.length > 0) {
      cm = new ConfigurationManager(args[0]);
    } else {
      cm = new ConfigurationManager(Sphinx4see.class.getResource("sphinx4see.config.xml"));
    }

    // allocate the recognizer
    System.out.println("Loading...");
    Recognizer recognizer = (Recognizer) cm.lookup("recognizer");
    recognizer.allocate();

    // start the microphone or exit if the programm if this is not possible
    Microphone microphone = (Microphone) cm.lookup("microphone");
    if (!microphone.startRecording()) {
      System.out.println("Cannot start microphone.");
      recognizer.deallocate();
      System.exit(1);
    }

    printInstructions();

    // loop the recognition until the programm exits.
    while (true) {
      System.out.println("Start speaking. Press Ctrl-C to quit.\n");

      Result result = recognizer.recognize();

      if (result != null) {
        String resultText = result.getBestFinalResultNoFiller();

        System.out.println("You said: " + resultText + '\n');
        if (resultText == "alone") {
          System.out.println("Do not be afraid, baby!");
        }

      } else {
        System.out.println("I can't hear what you said.\n");
      }
    }
  }