!7 p { S text = or2(smartJoin(args), "hello"); print("TEXT: " + text); File mp3 = william_silent(text); //try { playMp3(mp3); } catch {} File wavFile1 = prepareProgramFile("speech-big.wav"); File wavFile = prepareProgramFile("speech.wav"); mp3ToWAV_2(mp3, wavFile1); convertWAVForSphinx(wavFile1, wavFile); // direct conversion leads to robot voice bug // convertWAVForSphinx(mp3, wavFile); print("WAV: " + wavFile + " (" + wavFile.length() + ")"); pcall { playWAV(wavFile); } // Try to suppress logging // java.util.logging.LogManager.getLogManager().reset(); // no workie // java.util.logging.Logger.getLogger("global").setLevel(java.util.logging.Level.SEVERE); java.util.logging.Logger.getLogger("").setLevel(java.util.logging.Level.SEVERE); long loadTime = sysNow(); StreamSpeechRecognizer2 recognizer = new StreamSpeechRecognizer2(makeSphinxConfig()); loadTime = sysNow()-loadTime; print("Recognizing " + wavFile); new L times; new L lines; for (int i = 0; i < 10; i++) { long time = now(); recognizer.startRecognition(new FileInputStream(wavFile)); SpeechResult result; print("loop"); lines = new L; while ((result = recognizer.getResult()) != null) { S line = result.getHypothesis(); lines.add(line); print("Hypothesis: " + line); } print("done"); recognizer.stopRecognition(); times.add(now()-time); } print("Loading time: " + loadTime + ". Recognition times (ms): " + struct(times)); S recognized = trim(fromLines(lines)); print("recognized: " + recognized); if (match(text, recognized)) print("perfect match!!!"); else { print("not quite."); print("input was: " + text); } }