{"version":3,"file":"speech_poodll.min.js","sources":["../src/speech_poodll.js"],"sourcesContent":["/* jshint ignore:start */\ndefine(['jquery', 'core/log', 'filter_poodll/speech_browser', 'filter_poodll/speech_awstranscriber'], function ($, log, browserrecognition, awstranscriber) {\n\n    \"use strict\"; // jshint ;_;\n\n    log.debug('speech_poodll: initialising');\n\n    return {\n\n        recognizer: null,\n\n\n        //for making multiple instances\n        clone: function () {\n            return $.extend(true, {}, this);\n        },\n\n        //check that we can streaming transcribe\n        will_work_ok: function (opts) {\n            //a specific streaming transcriber might be requested\n            //if not , we can just use what is available\n            if('streamingtranscriber' in opts) {\n                switch (opts['streamingtranscriber']) {\n                    case 'aws':\n                        return awstranscriber.will_work_ok(opts);\n                    case 'browser':\n                        return browserrecognition.will_work_ok(opts);\n                }\n            }\n            //if no valid streamingtranscriber suggested just defaults\n           return ( browserrecognition.will_work_ok(opts) ||\n                    awstranscriber.will_work_ok(opts));\n\n        },\n\n        init: function (opts) {\n            //multiple recognizers presenting a single interface\n            //if a transcriber is requested we use that, otherwise we default to browser then AWS\n            if('streamingtranscriber' in opts){\n                switch (opts['streamingtranscriber']){\n                    case 'aws':\n                        this.recognizer = awstranscriber.clone();\n                        this.recognizer.init(opts);\n                        break;\n                    case 'browser':\n                        this.recognizer = browserrecognition.clone();\n                        this.recognizer.init(opts);\n                        break;\n                }\n            }\n\n            //if no hinted transcriber, just choose\n            if(!this.recognizer) {\n                if (browserrecognition.will_work_ok(opts)) {\n                    this.recognizer = browserrecognition.clone();\n                    this.recognizer.init(opts);\n                } else if (awstranscriber.will_work_ok(opts)) {\n                    this.recognizer = awstranscriber.clone();\n                    this.recognizer.init(opts)\n                } else {\n                    //should never arrive here. supposed to check first\n                    log.debug('no usable speech recognizer found');\n                    return false;\n                }\n            }\n        },\n\n        set_grammar: function (grammar) {\n            this.recognizer.set_grammar(grammar);\n        },\n\n        start: function (stream) {\n            if (!this.recognizer) {\n                return;\n            }\n            this.recognizer.onfinalspeechcapture = this.onfinalspeechcapture;\n            this.recognizer.oninterimspeechcapture = this.oninterimspeechcapture;\n            if (this.recognizer) {\n                this.recognizer.start(stream);\n            }\n        },\n        stop: function () {\n            if (!this.recognizer) {\n                return;\n            }\n            if (this.recognizer) {\n                this.recognizer.stop();\n            }\n        },\n\n        onfinalspeechcapture: function (speechtext,speechresults) {\n            if (!this.recognizer) {\n                return;\n            }\n            log.debug('final:' + speechtext);\n        },\n        oninterimspeechcapture: function (speechtext) {\n            if (!this.recognizer) {\n                return;\n            }\n            log.debug('interim:' + speechtext);\n        }\n    };//end of returned object\n});//total end\n"],"names":["define","$","log","browserrecognition","awstranscriber","debug","recognizer","clone","extend","this","will_work_ok","opts","init","set_grammar","grammar","start","stream","onfinalspeechcapture","oninterimspeechcapture","stop","speechtext","speechresults"],"mappings":"AACAA,qCAAO,CAAC,SAAU,WAAY,+BAAgC,wCAAwC,SAAUC,EAAGC,IAAKC,mBAAoBC,uBAIxIF,IAAIG,MAAM,+BAEH,CAEHC,WAAY,KAIZC,MAAO,kBACIN,EAAEO,QAAO,EAAM,GAAIC,OAI9BC,aAAc,SAAUC,SAGjB,yBAA0BA,YACjBA,KAAI,0BACH,aACMP,eAAeM,aAAaC,UAClC,iBACMR,mBAAmBO,aAAaC,aAI3CR,mBAAmBO,aAAaC,OAChCP,eAAeM,aAAaC,OAIxCC,KAAM,SAAUD,SAGT,yBAA0BA,YACjBA,KAAI,0BACH,WACIL,WAAaF,eAAeG,aAC5BD,WAAWM,KAAKD,gBAEpB,eACIL,WAAaH,mBAAmBI,aAChCD,WAAWM,KAAKD,UAM7BF,KAAKH,cACDH,mBAAmBO,aAAaC,WAC3BL,WAAaH,mBAAmBI,aAChCD,WAAWM,KAAKD,UAClB,CAAA,IAAIP,eAAeM,aAAaC,aAKnCT,IAAIG,MAAM,sCACH,OALFC,WAAaF,eAAeG,aAC5BD,WAAWM,KAAKD,QASjCE,YAAa,SAAUC,cACdR,WAAWO,YAAYC,UAGhCC,MAAO,SAAUC,QACRP,KAAKH,kBAGLA,WAAWW,qBAAuBR,KAAKQ,0BACvCX,WAAWY,uBAAyBT,KAAKS,uBAC1CT,KAAKH,iBACAA,WAAWS,MAAMC,UAG9BG,KAAM,WACGV,KAAKH,YAGNG,KAAKH,iBACAA,WAAWa,QAIxBF,qBAAsB,SAAUG,WAAWC,eAClCZ,KAAKH,YAGVJ,IAAIG,MAAM,SAAWe,aAEzBF,uBAAwB,SAAUE,YACzBX,KAAKH,YAGVJ,IAAIG,MAAM,WAAae"}