a01257dcff3ef1bc055ee3ec156e22aa6f096e98
[motion2.git] / server / services / agi / scripts / tilde / asr / lib / api.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x89ca=['status','result','final','hypotheses','Success.','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','error','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','message','bluebird','lodash','crypto','agi','info','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','sha1','update','digest','hex','Open\x20Tilde\x20ASR\x20socket','data','send','close','EOS','Tilde\x20ASR\x20send\x20error','stringify','terminate'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x89ca,0x14b));var _0xa89c=function(_0x1f3c90,_0x2e6254){_0x1f3c90=_0x1f3c90-0x0;var _0x386686=_0x89ca[_0x1f3c90];return _0x386686;};'use strict';var BPromise=require(_0xa89c('0x0'));var _=require(_0xa89c('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require('moment');var crypto=require(_0xa89c('0x2'));var logger=require('../../../../../../config/logger')(_0xa89c('0x3'));module['exports']=function(_0x4ab272,_0xe5b14d,_0x198245,_0x4a72ef){return new BPromise(function(_0x42b1fa,_0x56f92e){logger[_0xa89c('0x4')]('Tilde\x20URI',_0x4a72ef||_0xa89c('0x5'));var _0x18dcdc=new WebSocket(_0x4a72ef||_0xa89c('0x5'),{'perMessageDeflate':![]});var _0xf2632d='';var _0x2f61a1='0';var _0x4662d3='1';var _0x30170c=_0xa89c('0x6');function _0x3900d9(_0x1dce48){var _0x30d09b=crypto['createHash'](_0xa89c('0x7'));_0x30d09b[_0xa89c('0x8')](_0x1dce48);return _0x30d09b[_0xa89c('0x9')](_0xa89c('0xa'));}function _0x4dae9d(){try{logger['info'](_0xa89c('0xb'));var _0xc4a273=moment()['unix']();var _0x26cbf0=_0x3900d9(_0xc4a273+_0xe5b14d+_0x198245);_0x18dcdc['send'](JSON['stringify']({'appID':_0xe5b14d,'timestamp':_0xc4a273,'appKey':_0x26cbf0}));var _0x426d20=fs['createReadStream'](_0x4ab272);_0x426d20['on'](_0xa89c('0xc'),function(_0x51e832){_0x18dcdc[_0xa89c('0xd')](_0x51e832);});_0x426d20['on'](_0xa89c('0xe'),function(){_0x18dcdc[_0xa89c('0xd')](_0xa89c('0xf'));});}catch(_0x22eb40){logger['error'](_0xa89c('0x10'),JSON[_0xa89c('0x11')](_0x22eb40));_0x18dcdc[_0xa89c('0x12')]();}}function _0x1ba557(_0x732121){try{if(_0x732121){var _0x184b29=JSON['parse'](_0x732121);switch(_0x184b29[_0xa89c('0x13')]){case 0x0:if(_0x184b29[_0xa89c('0x14')]){if(_0x184b29[_0xa89c('0x14')][_0xa89c('0x15')]){logger['info']('Tilde\x20ASR\x20hypoteses',JSON[_0xa89c('0x11')](_0x184b29[_0xa89c('0x14')][_0xa89c('0x16')]));_0xf2632d=_0x184b29['result'][_0xa89c('0x16')][0x0]['transcript'];_0x2f61a1=_0x184b29[_0xa89c('0x14')][_0xa89c('0x16')][0x0]['likelihood'];_0x4662d3='0';_0x30170c=_0xa89c('0x17');_0x18dcdc[_0xa89c('0x12')]();}}break;case 0x1:logger['info'](_0xa89c('0x6'));_0x4662d3='1';_0x30170c=_0xa89c('0x6');break;case 0x2:logger['info'](_0xa89c('0x18'));_0x4662d3='2';_0x30170c=_0xa89c('0x18');break;case 0x9:logger[_0xa89c('0x4')]('Not\x20available.\x20Max\x20load\x20limit\x20reached.');_0x4662d3='9';_0x30170c=_0xa89c('0x19');break;case 0xa:logger[_0xa89c('0x4')](_0xa89c('0x1a'));_0x4662d3='10';_0x30170c=_0xa89c('0x1a');break;case 0xb:logger[_0xa89c('0x4')]('All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.');_0x4662d3='11';_0x30170c=_0xa89c('0x1b');}}}catch(_0x37fe3d){logger[_0xa89c('0x1c')](_0xa89c('0x1d'),JSON[_0xa89c('0x11')](_0x37fe3d));_0x18dcdc[_0xa89c('0x12')]();}}function _0x41e7ca(){logger[_0xa89c('0x4')](_0xa89c('0x1e'));_0x42b1fa({'transcript':_0xf2632d,'confidence':_0x2f61a1,'status':_0x4662d3,'status_message':_0x30170c});}function _0x2dcd03(_0x26c789){logger[_0xa89c('0x1c')](_0xa89c('0x1f'));if(!_[_0xa89c('0x20')](_0x26c789)){logger[_0xa89c('0x1c')](_[_0xa89c('0x21')](_0x26c789)?JSON['stringify'](_0x26c789):_0x26c789);}}_0x18dcdc['on']('open',_0x4dae9d);_0x18dcdc['on'](_0xa89c('0x22'),_0x1ba557);_0x18dcdc['on']('close',_0x41e7ca);_0x18dcdc['on'](_0xa89c('0x1c'),_0x2dcd03);});};