!752 lib 1004789 // sphinx core lib 1004793 // sphinx data import edu.cmu.sphinx.api.Configuration; import edu.cmu.sphinx.api.SpeechResult; import edu.cmu.sphinx.api.StreamSpeechRecognizer; p { S text = or2(smartJoin(args), "hello"); print("TEXT: " + text); File mp3 = william_silent(text); File wavFile1 = prepareProgramFile("speech-big.wav"); File wavFile = prepareProgramFile("speech.wav"); mp3ToWAV(mp3, wavFile1); convertWAVForSphinx(wavFile1, wavFile); print("WAV: " + wavFile + " (" + wavFile.length() + ")"); new Configuration configuration; configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us"); configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict"); configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us.lm.bin"); StreamSpeechRecognizer recognizer = new StreamSpeechRecognizer(configuration); print("Recognizing " + wavFile); InputStream stream = new FileInputStream(wavFile); recognizer.startRecognition(stream); SpeechResult result; print("loop"); new L lines; while ((result = recognizer.getResult()) != null) { S line = result.getHypothesis(); lines.add(line); print("Hypothesis: " + line); } print("done"); recognizer.stopRecognition(); S recognized = trim(fromLines(lines)); print("recognized: " + recognized); if (match(text, recognized)) print("perfect match!!!"); else { print("not quite."); print("input was: " + text); } }