public static void main(String args[]) { InterServer intertest; Properties kv = new Properties(); kv.setProperty("data_file", "db.txt"); kv.setProperty("common_words", "common.txt"); kv.setProperty("specs_file", "db.spec"); kv.setProperty("questions_file", "db.quest"); kv.setProperty("recognizer", "sphinx"); kv.setProperty("interpreter", "inter"); kv.setProperty("synthesizer", "festival"); Log log = new Log(); log.setLevelByName("info"); try { File currentDir = new File("."); String path = currentDir.getCanonicalPath(); String dir = path + "/"; // Command cmd = new Command (); SqliteCommand cmd = new SqliteCommand(); intertest = new InterServer("inter", port, dir, kv, cmd); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); while (true) { String line = in.readLine(); if (line.startsWith("connect1")) line = connect1; else if (line.startsWith("connect2")) line = connect2; else if (line.endsWith("who1")) line = line.replaceAll("who1", who1); else if (line.endsWith("who2")) line = line.replaceAll("who2", who2); intertest.execute(line); sleep(waitTime); log.info("Executed: " + line); if (line.equals("terminate")) { Log.info("Ending test program"); System.exit(1); } } } catch (Exception e) { e.printStackTrace(); } }
static void processSpeech(SphinxServer server) { ConfigurationManager cm = new ConfigurationManager(PATrecognizerTest.class.getResource(config)); // allocate the recognizer Log.info("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()) { Log.severe("Cannot start microphone."); recognizer.deallocate(); System.exit(1); } System.out.println("Sample questions are in PATlm_training_file"); // 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.getBestResultNoFiller(); System.out.println("You said: " + resultText + '\n'); String name = server.getServerId(); String message = work1 + "\"" + resultText + "\"}"; server.execute(message); try { Thread.sleep(4000); } catch (Exception e) { System.out.println(e.toString()); break; } } else { System.out.println("I can't hear what you said."); } } }
public static void main(String args[]) { SphinxServer Recognizer; Log log = new Log(); log.setLevelByName("PATlog_level"); try { Recognizer = new SphinxServer("PATrecognizer", PATport_recognizer); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); Log.info("Waiting to connect to PATinterpreter"); boolean connected = false; int waiting = 0; while (!connected && waiting < 1000) { sleep(waitTime); String result = Recognizer.executeReply(connect1); if (result.startsWith("OK:")) { connected = true; break; } else { waiting++; System.out.println("Waiting ... " + waiting); continue; } } if (!connected) { Log.severe("Waiting for too long, terminating ..."); return; } else { Log.info("Connected to PATinterpreter"); Log.info("Waiting to establish who credentials"); } sleep(waitTime * 4); boolean established = false; waiting = 0; while (!established && waiting < 100) { sleep(waitTime); String result = Recognizer.executeReply(who1); if (result.startsWith("OK:")) { established = true; break; } else { waiting++; Log.info("Establishing credentials ... " + waiting); continue; } } if (!established) { Log.severe("Establishing did not work, terminating ..."); return; } else { Log.info("Established credentials with PATinterpreter"); Log.info("Processing recognition results"); } sleep(waitTime * 4); // loop in SpeechInput processSpeech(Recognizer); System.out.println("Terminating ..."); System.exit(1); } catch (Exception e) { e.printStackTrace(); } }