Libraryless. Click here for Pure Java version (15303L/111K).
1 | !7 |
2 | |
3 | sclass HearMyselfTest > DynPrintLog {
|
4 | S text = "I like you", heard; |
5 | transient JTextField tfText; |
6 | transient JLabel lblCat; |
7 | int timeout = 5; |
8 | |
9 | start { logModuleOutput(); }
|
10 | |
11 | visualize {
|
12 | ret withCenteredButtons( |
13 | northAndCenter( |
14 | centerAndEast( |
15 | vstack( |
16 | jsection("Text to say",
|
17 | onEnter(rThread doIt, tfText = jLiveValueTextField_bothWays(dm_fieldLiveValue('text)))),
|
18 | jsection("What I heard",
|
19 | disableTextField(jLiveValueTextField(dm_fieldLiveValue('heard))))),
|
20 | withMargin(lblCat = jimage(#1101344))), |
21 | super.visualize()), |
22 | "Do the test", rThread doIt); |
23 | } |
24 | |
25 | void doIt enter {
|
26 | temp dm_tempDisableAllButtons(); |
27 | S text = getTextTrim(tfText); |
28 | if (empty(text)) ret; |
29 | |
30 | print("Initiating voice");
|
31 | O voiceOutput = dm_getModule(dm_requireModule("#1016614/VoiceOutput"));
|
32 | print("Initiating ear");
|
33 | //O katze = dm_getModule(dm_requireModule("#1016461/Katze"));
|
34 | O katze = dm_getModule(dm_requireModule("#1018551/SpeechRecognizer"));
|
35 | call(katze, 'startListening); |
36 | if (!chromeSpeech_hasRecognizer()) {
|
37 | do { sleepSeconds(1); }
|
38 | while (!chromeSpeech_hasRecognizer()); |
39 | } |
40 | sleepSeconds(2); // give time to start |
41 | |
42 | double seconds = this.timeout; |
43 | long logLength = fileSize(speechRecognitionLog()); |
44 | print("Saying & listening for " + seconds + " seconds: " + text);
|
45 | call(voiceOutput, 'say, text); |
46 | long timeout = sysTime()+toMS(seconds); |
47 | new Var<S> vLine; |
48 | ManualTailFile tail = new(speechRecognitionLog(), vfAppendToLineBuffer(unquotingLineBuffer(vfSetVar(vLine)))); |
49 | tailFile_newOnly(tail); |
50 | while (sysTime() < timeout && !vLine.has()) {
|
51 | tail.check(); |
52 | sleep(100); |
53 | } |
54 | print("Stop listening.");
|
55 | call(katze, 'stopListening); |
56 | |
57 | S s = speechRecognitionLog_extractUtterance(vLine!); |
58 | setField(heard := s); |
59 | print("Got line: " + s);
|
60 | if (match(text, s)) {
|
61 | print("Yes, I can hear myself!!");
|
62 | setModuleName("I can hear myself :)");
|
63 | setImage(lblCat, #1101341); |
64 | } else if (nempty(s)) {
|
65 | print("I said: " + quote(text) + ", but I heard: " + quote(s));
|
66 | setModuleName("I seem to mishear myself");
|
67 | setImage(lblCat, #1101343); |
68 | } else {
|
69 | print("I said: " + quote(text) + ", but I heard nothing.");
|
70 | setModuleName("I can't hear me :(");
|
71 | setImage(lblCat, #1101342); |
72 | } |
73 | } |
74 | |
75 | enhanceFrame {
|
76 | dm_intFieldMenuItem(f, 'timeout); |
77 | } |
78 | } |
download show line numbers debug dex old transpilations
Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1016654 |
| Snippet name: | Test whether I can hear myself [Dyn Module] |
| Eternal ID of this version: | #1016654/34 |
| Text MD5: | 2ef821ca3918bc4473b9dad0a9483c3c |
| Transpilation MD5: | 4164410d9325cc727748a5a88a52a8bb |
| Author: | stefan |
| Category: | javax / stefan's os |
| Type: | JavaX source code (Dynamic Module) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2018-11-24 21:37:22 |
| Source code size: | 2571 bytes / 78 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 831 / 1425 |
| Version history: | 33 change(s) |
| Referenced in: | [show references] |