3ef4b353e57127e02b93330b92660cf97aa9e2a4
[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 _0x7d2f=['error','Tilde\x20ASR\x20send\x20error','terminate','status','result','Tilde\x20ASR\x20hypoteses','hypotheses','transcript','likelihood','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.','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','close','lodash','moment','crypto','../../../../../../config/logger','agi','info','Tilde\x20URI','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','createHash','sha1','digest','hex','Open\x20Tilde\x20ASR\x20socket','unix','send','stringify','data','EOS'];(function(_0x3094b6,_0x261726){var _0x537a0d=function(_0x3de442){while(--_0x3de442){_0x3094b6['push'](_0x3094b6['shift']());}};_0x537a0d(++_0x261726);}(_0x7d2f,0x14c));var _0xf7d2=function(_0x454698,_0x37cef1){_0x454698=_0x454698-0x0;var _0x3542b1=_0x7d2f[_0x454698];return _0x3542b1;};'use strict';var BPromise=require('bluebird');var _=require(_0xf7d2('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xf7d2('0x1'));var crypto=require(_0xf7d2('0x2'));var logger=require(_0xf7d2('0x3'))(_0xf7d2('0x4'));module['exports']=function(_0x29f6e9,_0x1726d3,_0x64135a,_0x46a622){return new BPromise(function(_0x1d6b0f,_0x4a8340){logger[_0xf7d2('0x5')](_0xf7d2('0x6'),_0x46a622||_0xf7d2('0x7'));var _0xc44687=new WebSocket(_0x46a622||_0xf7d2('0x7'),{'perMessageDeflate':![]});var _0x2e73bc='';var _0x28eecc='0';var _0x2da581='1';var _0x1dea35=_0xf7d2('0x8');function _0x2750af(_0x356b7e){var _0x82060f=crypto[_0xf7d2('0x9')](_0xf7d2('0xa'));_0x82060f['update'](_0x356b7e);return _0x82060f[_0xf7d2('0xb')](_0xf7d2('0xc'));}function _0x4637b4(){try{logger[_0xf7d2('0x5')](_0xf7d2('0xd'));var _0x573e67=moment()[_0xf7d2('0xe')]();var _0x1a4c05=_0x2750af(_0x573e67+_0x1726d3+_0x64135a);_0xc44687[_0xf7d2('0xf')](JSON[_0xf7d2('0x10')]({'appID':_0x1726d3,'timestamp':_0x573e67,'appKey':_0x1a4c05}));var _0x2e1278=fs['createReadStream'](_0x29f6e9);_0x2e1278['on'](_0xf7d2('0x11'),function(_0x52679b){_0xc44687[_0xf7d2('0xf')](_0x52679b);});_0x2e1278['on']('close',function(){_0xc44687[_0xf7d2('0xf')](_0xf7d2('0x12'));});}catch(_0x418548){logger[_0xf7d2('0x13')](_0xf7d2('0x14'),JSON['stringify'](_0x418548));_0xc44687[_0xf7d2('0x15')]();}}function _0x2115c2(_0x193b19){try{if(_0x193b19){var _0x397b65=JSON['parse'](_0x193b19);switch(_0x397b65[_0xf7d2('0x16')]){case 0x0:if(_0x397b65[_0xf7d2('0x17')]){if(_0x397b65['result']['final']){logger['info'](_0xf7d2('0x18'),JSON[_0xf7d2('0x10')](_0x397b65[_0xf7d2('0x17')][_0xf7d2('0x19')]));_0x2e73bc=_0x397b65[_0xf7d2('0x17')][_0xf7d2('0x19')][0x0][_0xf7d2('0x1a')];_0x28eecc=_0x397b65[_0xf7d2('0x17')]['hypotheses'][0x0][_0xf7d2('0x1b')];_0x2da581='0';_0x1dea35=_0xf7d2('0x1c');_0xc44687['terminate']();}}break;case 0x1:logger['info'](_0xf7d2('0x8'));_0x2da581='1';_0x1dea35='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';break;case 0x2:logger['info'](_0xf7d2('0x1d'));_0x2da581='2';_0x1dea35='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger[_0xf7d2('0x5')]('Not\x20available.\x20Max\x20load\x20limit\x20reached.');_0x2da581='9';_0x1dea35=_0xf7d2('0x1e');break;case 0xa:logger[_0xf7d2('0x5')](_0xf7d2('0x1f'));_0x2da581='10';_0x1dea35=_0xf7d2('0x1f');break;case 0xb:logger[_0xf7d2('0x5')](_0xf7d2('0x20'));_0x2da581='11';_0x1dea35=_0xf7d2('0x20');}}}catch(_0x17ba35){logger[_0xf7d2('0x13')](_0xf7d2('0x21'),JSON[_0xf7d2('0x10')](_0x17ba35));_0xc44687[_0xf7d2('0x15')]();}}function _0x5e8722(){logger[_0xf7d2('0x5')](_0xf7d2('0x22'));_0x1d6b0f({'transcript':_0x2e73bc,'confidence':_0x28eecc,'status':_0x2da581,'status_message':_0x1dea35});}function _0x2a4e3f(_0x188b42){logger[_0xf7d2('0x13')](_0xf7d2('0x23'));if(!_[_0xf7d2('0x24')](_0x188b42)){logger[_0xf7d2('0x13')](_[_0xf7d2('0x25')](_0x188b42)?JSON['stringify'](_0x188b42):_0x188b42);}}_0xc44687['on']('open',_0x4637b4);_0xc44687['on']('message',_0x2115c2);_0xc44687['on'](_0xf7d2('0x26'),_0x5e8722);_0xc44687['on'](_0xf7d2('0x13'),_0x2a4e3f);});};