Files
2026-03-22 03:21:45 +02:00

1 line
6.0 KiB
JavaScript

"use strict";function e(e){var s=void 0===arguments[1]?{}:arguments[1],t={status:e.status||"incomprehensible error",audio_source_id:e.audio_source_id||"",final_composite:e.final_composite||!1,final_simple:e.final_simple||!1,sd_status:e.sd_status||"na",simple_recog_name:e.simple_recog_name||"",speaker_ids:e.speaker_ids||[],speaker_idstatus:e.speaker_idstatus||"",task_id:e.task_id||"",timestamp:e.timestamp||0,utterances:e.utterances||[]};return Object.keys(s).forEach(function(e){t[e]=s[e]}),t}var s=function(e){return e&&e.__esModule?e["default"]:e},t=function(){function e(e,s){for(var t in s){var i=s[t];i.configurable=!0,i.value&&(i.writable=!0)}Object.defineProperties(e,s)}return function(s,t,i){return t&&e(s.prototype,t),i&&e(s,i),s}}(),i=function(e,s){if(!(e instanceof s))throw new TypeError("Cannot call a class as a function")},r=s(require("http")),a=require("websocket").server,n=function(){function s(){i(this,s),this.port=11274,this.connectionHandlers={"/asr_interface":this.onAsrInterface.bind(this),"/audio_source":this.onAudioSource.bind(this),"/spkr_id_interface":this.onSpkrId.bind(this)},this.messages=[],this.sources=[],this.actions=[],this.tasks=[]}return t(s,{init:{value:function(e){var s=this;this.httpServer=r.createServer(),this.httpServer.on("request",function(e,t){"POST"===e.method&&(e.setEncoding("utf8"),e.on("data",function(i){var r=void 0;try{r=JSON.parse(i),s.messages.push({url:e.url,data:r,response:t})}catch(a){return s.messages.push({url:e.url,data:"ERROR Invalid request. Request body is not valid JSON",response:t}),t.writeHead(200,{"Content-Type":"text/html"}),t.write(JSON.stringify({Status:"ERROR",Message:"Inavlid request. Request body is not valid JSON"})),s.socket&&s.socket.send(JSON.stringify({status:"error",message:"ERROR Invalid request. Request body is not valid JSON"})),void t.end()}s.socket&&s.processMessages()}))}),this.httpServer.on("listening",function(){s.wsServer=new a({httpServer:s.httpServer,autoAcceptconnections:!1}),s.wsServer.on("request",function(e){var t=e.accept(null,e.orgin);"/port"===e.resource&&(s.socket=t,s.processMessages(),t.on("close",function(){s.messages=[],s.sources=[],s.actions=[],s.tasks=[]}))})}),e(),this.httpServer.listen(this.port)}},onWordsReceived:{value:function(s){var t=this;this.actions.forEach(function(i){var r=s.words.trim();if(i.hey_jibo&&i.hey_jibo.heard){var a=r.indexOf("hey jibo ");-1!==a&&(r=r.substr(a+9,r.length))}if(s.utterances=[{utterance:r}],s.status="normal",s.audio_source_id=i.audio_source_id,s.speaker_idstatus="NOT-USED",s.task_id=i.task_id,i.nuance_curlmulti&&(s.simple_recog_name=i.nuance_curlmulti.name),i.hey_jibo&&!i.hey_jibo.heard){if("hey jibo"===r.substr(r.length-8,r.length)){i.hey_jibo.heard=!0,s.final_simple=!0,s.words="hey jibo",s.simple_recog_name=i.hey_jibo.name,t.sendSpeakerId(s,"Speaker ID TD");var n=e(s);t.socket.send(JSON.stringify(n)),i.nuance_curlmulti||t.sendFinal(s)}}else if(!i.hey_jibo||i.hey_jibo.heard){if(i.sensory_spkr_id_ti&&!i.sensory_spkr_id_ti.heard&&(i.sensory_spkr_id_ti.heard=!0,s.final_simple=!0,t.sendSpeakerId(s,i.sensory_spkr_id_ti.name)),s["final"]){if(s.final_simple=!0,i.sensory_speech_detector){var o=e(s,{sd_status:"endpoint",simple_recog_name:i.sensory_speech_detector.name});t.socket.send(JSON.stringify(o))}}else s.final_simple=!1;var n=e(s);t.socket.send(JSON.stringify(n)),s["final"]&&t.sendFinal(s)}})}},sendFinal:{value:function(s){s.final_simple=!1,s.final_composite=!0;var t=e(s);this.socket.send(JSON.stringify(t))}},sendSpeakerId:{value:function(s,t){var i={};s.speaker?(i.speaker_idstatus="ACCEPTED",i.speaker_ids=[s.speaker]):i.speaker_idstatus="NO-SPEAKERS-TO-LIST",i.simple_recog_name=t;var r=e(s,i);this.socket.send(JSON.stringify(r))}},processMessages:{value:function(){for(;this.messages.length;){var e=this.messages.shift();this.connectionHandlers[e.url](e.data,e.response)}}},onAsrInterface:{value:function(s,t){var i=this,r={};if(r.status="received","init_and_start"===s.action)r.audio_source_id=s.audio_source_id,this.initAction(s,!0);else if("init"===s.action)r.audio_source_id=s.audio_source_id,this.initAction(s,!1);else if("start"===s.action)!function(){var e=void 0;i.actions.forEach(function(t){t.task_id===s.task_id&&(t.started=!0,e=!0)}),e||(r.status="error attempted to start nonexistent action "+s.task_id)}();else if("clear"===s.action){for(var a=0,n=void 0;a<this.actions.length;)this.actions[a].task_id===s.task_id&&(n=a),a++;this.actions.splice(n,1)}r.task_id=s.task_id,r.speaker_idstatus="NOT-USED",t.writeHead(200,{"Content-Type":"text/html"}),t.write(JSON.stringify({Status:"OK",Message:"received data request"})),t.end();var o=e(r);this.socket.send(JSON.stringify(o))}},initAction:{value:function(e,s){var t={};this.tasks.push({task_id:e.task_id,task:e.task}),t=this.parseTasks(t,e.task),t.audio_source_id=e.audio_source_id,t.task_id=e.task_id,t.started=s,this.actions.push(t)}},parseTasks:{value:function(e,s){var t=s.split("{");return t.forEach(function(s){var t=s.slice(8,s.length);if(t){var i=t.split('"')[0];t=t.split("-")[0],e[t]={},e[t].name=i,e[t].heard=!0,"hey_jibo"===t?e.hey_jibo.heard=!1:"sensory_speech_detector"===t?e.sensory_speech_detector.heard=!1:"sensory_spkr_id_ti"===t?e.sensory_spkr_id_ti.heard=!1:"nuance_curlmulti"===t&&(e.nuance_curlmulti.heard=!1)}}),e}},onAudioSource:{value:function(s,t){if("start"===s.action)this.sources.push(s.audio_source_id),this.currentSource=s.audio_source_id;else if("clear"===s.action){var i=this.sources.indexOf(s.audio_source_id);this.sources.splice(i,1)}t.writeHead(204,{"Content-Type":"text/html"}),t.write(JSON.stringify({Status:"OK",Message:"received data request"})),t.end();var r={status:"received",audio_source_id:s.audio_source_id,task_id:s.audio_source_id},a=e(r);try{this.socket.send(JSON.stringify(a))}catch(n){console.error(n)}}},onSpkrId:{value:function(e,s){s.writeHead(200,{"Content-Type":"text/html"}),s.write(JSON.stringify({Status:"OK",Message:"received data request"})),s.end();var t={status:"received",type:"spkrId"};try{this.socket.send(JSON.stringify(t))}catch(i){console.error(i)}}}}),s}();module.exports=new n;