1 line
1.0 KiB
JavaScript
1 line
1.0 KiB
JavaScript
"use strict";var t=require("../bt/main"),e=t.Status,s=t.createDecorator,i=t.factory,r=require("../main").asr,n=require("events").EventEmitter,o=s({constructor:function(t,s){this.rule=t,this.onResult=s,this.emitter=new n,this.status=e.INVALID},start:function(){var t=this;if(this.status=e.IN_PROGRESS,!r.isInitialized)return console.warn("Running listen without ASR service"),!0;var s={};return s.embeddedOnly=!0,this.listener=r.createListener(s,this.rule),this.listener.start(),this.listener.on("embedded",function(s,i){t.emitter.emit("hey-jibo",s,i),t.listener.removeAllListeners(),t.status=e.SUCCEEDED}),this.listener.on("error",function(e){t.emitter.emit("error",e)}),this.listener.on("finished",function(){t.listener.removeAllListeners(),t.status=e.SUCCEEDED}),this.onResult(this.emitter),this.status=e.IN_PROGRESS,!0},stop:function(){this.emitter.removeAllListeners(),this.listener.removeAllListeners()},update:function(t){return this.status===e.IN_PROGRESS?t:this.status}});o.Rules={HEY_JIBO:"hey_jibo"},module.exports=o,i.addBehavior(module); |