Libraryless. Click here for Pure Java version (15303L/111K).
!7 sclass HearMyselfTest > DynPrintLog { S text = "I like you", heard; transient JTextField tfText; transient JLabel lblCat; int timeout = 5; start { logModuleOutput(); } visualize { ret withCenteredButtons( northAndCenter( centerAndEast( vstack( jsection("Text to say", onEnter(rThread doIt, tfText = jLiveValueTextField_bothWays(dm_fieldLiveValue('text)))), jsection("What I heard", disableTextField(jLiveValueTextField(dm_fieldLiveValue('heard))))), withMargin(lblCat = jimage(#1101344))), super.visualize()), "Do the test", rThread doIt); } void doIt enter { temp dm_tempDisableAllButtons(); S text = getTextTrim(tfText); if (empty(text)) ret; print("Initiating voice"); O voiceOutput = dm_getModule(dm_requireModule("#1016614/VoiceOutput")); print("Initiating ear"); //O katze = dm_getModule(dm_requireModule("#1016461/Katze")); O katze = dm_getModule(dm_requireModule("#1018551/SpeechRecognizer")); call(katze, 'startListening); if (!chromeSpeech_hasRecognizer()) { do { sleepSeconds(1); } while (!chromeSpeech_hasRecognizer()); } sleepSeconds(2); // give time to start double seconds = this.timeout; long logLength = fileSize(speechRecognitionLog()); print("Saying & listening for " + seconds + " seconds: " + text); call(voiceOutput, 'say, text); long timeout = sysTime()+toMS(seconds); new Var<S> vLine; ManualTailFile tail = new(speechRecognitionLog(), vfAppendToLineBuffer(unquotingLineBuffer(vfSetVar(vLine)))); tailFile_newOnly(tail); while (sysTime() < timeout && !vLine.has()) { tail.check(); sleep(100); } print("Stop listening."); call(katze, 'stopListening); S s = speechRecognitionLog_extractUtterance(vLine!); setField(heard := s); print("Got line: " + s); if (match(text, s)) { print("Yes, I can hear myself!!"); setModuleName("I can hear myself :)"); setImage(lblCat, #1101341); } else if (nempty(s)) { print("I said: " + quote(text) + ", but I heard: " + quote(s)); setModuleName("I seem to mishear myself"); setImage(lblCat, #1101343); } else { print("I said: " + quote(text) + ", but I heard nothing."); setModuleName("I can't hear me :("); setImage(lblCat, #1101342); } } enhanceFrame { dm_intFieldMenuItem(f, 'timeout); } }
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: | 447 / 924 |
Version history: | 33 change(s) |
Referenced in: | [show references] |