86a52d122ab4d42ae012cc0d163edefb3ac121a7
[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 _0x75bb=['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','message','lodash','moment','crypto','agi','exports','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','createHash','sha1','digest','hex','Open\x20Tilde\x20ASR\x20socket','send','stringify','createReadStream','data','close','EOS','error','Tilde\x20ASR\x20send\x20error','terminate','parse','status','result','final'];(function(_0x440ea6,_0xb768ea){var _0x4c9ec4=function(_0x489eb8){while(--_0x489eb8){_0x440ea6['push'](_0x440ea6['shift']());}};_0x4c9ec4(++_0xb768ea);}(_0x75bb,0x8a));var _0xb75b=function(_0x90103c,_0x997374){_0x90103c=_0x90103c-0x0;var _0x49fb3d=_0x75bb[_0x90103c];return _0x49fb3d;};'use strict';var BPromise=require('bluebird');var _=require(_0xb75b('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xb75b('0x1'));var crypto=require(_0xb75b('0x2'));var logger=require('../../../../../../config/logger')(_0xb75b('0x3'));module[_0xb75b('0x4')]=function(_0xecf50b,_0x13f4d6,_0x481d9d,_0x286658){return new BPromise(function(_0x4bb20c,_0xc8415a){logger[_0xb75b('0x5')]('Tilde\x20URI',_0x286658||_0xb75b('0x6'));var _0x313080=new WebSocket(_0x286658||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE',{'perMessageDeflate':![]});var _0x2b4b33='';var _0x2109fd='0';var _0x2edca7='1';var _0x14dbb3=_0xb75b('0x7');function _0x5334dd(_0x5fd2c1){var _0x499411=crypto[_0xb75b('0x8')](_0xb75b('0x9'));_0x499411['update'](_0x5fd2c1);return _0x499411[_0xb75b('0xa')](_0xb75b('0xb'));}function _0x334241(){try{logger['info'](_0xb75b('0xc'));var _0x584c13=moment()['unix']();var _0x5ec6f1=_0x5334dd(_0x584c13+_0x13f4d6+_0x481d9d);_0x313080[_0xb75b('0xd')](JSON[_0xb75b('0xe')]({'appID':_0x13f4d6,'timestamp':_0x584c13,'appKey':_0x5ec6f1}));var _0x67530d=fs[_0xb75b('0xf')](_0xecf50b);_0x67530d['on'](_0xb75b('0x10'),function(_0x22fcd8){_0x313080[_0xb75b('0xd')](_0x22fcd8);});_0x67530d['on'](_0xb75b('0x11'),function(){_0x313080[_0xb75b('0xd')](_0xb75b('0x12'));});}catch(_0x50882b){logger[_0xb75b('0x13')](_0xb75b('0x14'),JSON[_0xb75b('0xe')](_0x50882b));_0x313080[_0xb75b('0x15')]();}}function _0x47864a(_0x489400){try{if(_0x489400){var _0x4c1b62=JSON[_0xb75b('0x16')](_0x489400);switch(_0x4c1b62[_0xb75b('0x17')]){case 0x0:if(_0x4c1b62[_0xb75b('0x18')]){if(_0x4c1b62[_0xb75b('0x18')][_0xb75b('0x19')]){logger['info'](_0xb75b('0x1a'),JSON[_0xb75b('0xe')](_0x4c1b62[_0xb75b('0x18')][_0xb75b('0x1b')]));_0x2b4b33=_0x4c1b62[_0xb75b('0x18')]['hypotheses'][0x0][_0xb75b('0x1c')];_0x2109fd=_0x4c1b62[_0xb75b('0x18')]['hypotheses'][0x0][_0xb75b('0x1d')];_0x2edca7='0';_0x14dbb3=_0xb75b('0x1e');_0x313080[_0xb75b('0x15')]();}}break;case 0x1:logger[_0xb75b('0x5')](_0xb75b('0x7'));_0x2edca7='1';_0x14dbb3=_0xb75b('0x7');break;case 0x2:logger['info'](_0xb75b('0x1f'));_0x2edca7='2';_0x14dbb3=_0xb75b('0x1f');break;case 0x9:logger[_0xb75b('0x5')](_0xb75b('0x20'));_0x2edca7='9';_0x14dbb3=_0xb75b('0x20');break;case 0xa:logger[_0xb75b('0x5')]('Authentication\x20failed.');_0x2edca7='10';_0x14dbb3=_0xb75b('0x21');break;case 0xb:logger[_0xb75b('0x5')](_0xb75b('0x22'));_0x2edca7='11';_0x14dbb3=_0xb75b('0x22');}}}catch(_0x57c14b){logger[_0xb75b('0x13')](_0xb75b('0x23'),JSON[_0xb75b('0xe')](_0x57c14b));_0x313080[_0xb75b('0x15')]();}}function _0x1260ef(){logger['info'](_0xb75b('0x24'));_0x4bb20c({'transcript':_0x2b4b33,'confidence':_0x2109fd,'status':_0x2edca7,'status_message':_0x14dbb3});}function _0x304799(_0x2c0148){logger[_0xb75b('0x13')](_0xb75b('0x25'));if(!_[_0xb75b('0x26')](_0x2c0148)){logger['error'](_[_0xb75b('0x27')](_0x2c0148)?JSON[_0xb75b('0xe')](_0x2c0148):_0x2c0148);}}_0x313080['on']('open',_0x334241);_0x313080['on'](_0xb75b('0x28'),_0x47864a);_0x313080['on']('close',_0x1260ef);_0x313080['on'](_0xb75b('0x13'),_0x304799);});};