Uses 39910K of libraries. Click here for Pure Java version (4540L/31K/109K).
1 | !7 |
2 | |
3 | static JButton button; |
4 | static volatile Capturer cap; |
5 | static File wavFile; |
6 | static Q recognizerQueue; |
7 | static StreamSpeechRecognizer2 recognizer; |
8 | |
9 | p-substance { |
10 | showControls(jCenteredLine(button = jbutton("Record!", f recordOrStop))); |
11 | recognizerQueue = new Q("Recognizer Queue", true); |
12 | recognizerQueue.add(r { |
13 | infoBox("Loading engine..."); |
14 | recognizer = new StreamSpeechRecognizer2(makeSphinxConfig()); |
15 | infoBox("Engine loaded!"); |
16 | }); |
17 | } |
18 | |
19 | svoid recordOrStop { |
20 | if (cap != null) { |
21 | cap.stop(); |
22 | byte[] pcm = cap.getPCM(); |
23 | infoMessage("Got " + l(pcm) + " bytes PCM!"); |
24 | pcmToWAVE(pcm, cap.format(), wavFile); |
25 | infoBox("Wrote " + f2s(wavFile) + " (" + wavFile.length() + " bytes)"); |
26 | cap = null; |
27 | setText(button, "Record!"); |
28 | recognizeAudio(wavFile); |
29 | } else { |
30 | AudioLine line = first(allTargetDataLines()); |
31 | assertNotNull("Need audio input line!", line); |
32 | DataLine dataLine = cast line.open(); |
33 | print("Capturing"); |
34 | wavFile = prepareProgramFile(ymd_minus_hms() + ".wav"); |
35 | cap = captureAudioFromLine2(dataLine, sphinxAudioFormat()); |
36 | setText(button, "Stop"); |
37 | } |
38 | } |
39 | |
40 | svoid recognizeAudio(final File wavFile) { |
41 | recognizerQueue.add(r { |
42 | loading { |
43 | recognizer.startRecognition(new FileInputStream(wavFile)); |
44 | SpeechResult result; |
45 | print("Recognizing audio..."); |
46 | S line = null; |
47 | while ((result = recognizer.getResult()) != null) { |
48 | line = result.getHypothesis(); |
49 | print(" Hypothesis: " + line); |
50 | } |
51 | print("Done recognizing"); |
52 | infoBox("You said: " + line); |
53 | recognizer.stopRecognition(); |
54 | } |
55 | }); |
56 | } |
Began life as a copy of #1007035
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1007039 |
Snippet name: | Capture Audio By Button Press & Recognize With CMU Sphinx [WORKS!] |
Eternal ID of this version: | #1007039/5 |
Text MD5: | df04b413c9e50bf670d288f53e23a0a5 |
Transpilation MD5: | 62b70171589fbe00df185daa88560e13 |
Author: | stefan |
Category: | javax / audio |
Type: | JavaX source code |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2017-02-26 00:31:20 |
Source code size: | 1681 bytes / 56 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 495 / 622 |
Version history: | 4 change(s) |
Referenced in: | [show references] |