Built motion from commit 47436d59.|2.6.7
[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 _0x57ee=['stringify','data','close','EOS','error','Tilde\x20ASR\x20send\x20error','terminate','parse','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','open','message','lodash','moment','crypto','../../../../../../config/logger','agi','exports','info','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','sha1','digest','hex','unix','send'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x57ee,0x149));var _0xe57e=function(_0x4d6f76,_0x4b6bab){_0x4d6f76=_0x4d6f76-0x0;var _0x222b91=_0x57ee[_0x4d6f76];return _0x222b91;};'use strict';var BPromise=require('bluebird');var _=require(_0xe57e('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xe57e('0x1'));var crypto=require(_0xe57e('0x2'));var logger=require(_0xe57e('0x3'))(_0xe57e('0x4'));module[_0xe57e('0x5')]=function(_0x6b9cc2,_0x495c98,_0x5eb7e0,_0x2fa69f){return new BPromise(function(_0x2fff92,_0x5a23bb){logger[_0xe57e('0x6')]('Tilde\x20URI',_0x2fa69f||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE');var _0x395133=new WebSocket(_0x2fa69f||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE',{'perMessageDeflate':![]});var _0x55c28a='';var _0x4dda1e='0';var _0x410851='1';var _0x252de0=_0xe57e('0x7');function _0x12b855(_0x1071c8){var _0x1c11ee=crypto['createHash'](_0xe57e('0x8'));_0x1c11ee['update'](_0x1071c8);return _0x1c11ee[_0xe57e('0x9')](_0xe57e('0xa'));}function _0xb286e2(){try{logger['info']('Open\x20Tilde\x20ASR\x20socket');var _0xe3d48b=moment()[_0xe57e('0xb')]();var _0x27d4af=_0x12b855(_0xe3d48b+_0x495c98+_0x5eb7e0);_0x395133[_0xe57e('0xc')](JSON[_0xe57e('0xd')]({'appID':_0x495c98,'timestamp':_0xe3d48b,'appKey':_0x27d4af}));var _0x234242=fs['createReadStream'](_0x6b9cc2);_0x234242['on'](_0xe57e('0xe'),function(_0x1bc529){_0x395133[_0xe57e('0xc')](_0x1bc529);});_0x234242['on'](_0xe57e('0xf'),function(){_0x395133[_0xe57e('0xc')](_0xe57e('0x10'));});}catch(_0x57b41b){logger[_0xe57e('0x11')](_0xe57e('0x12'),JSON['stringify'](_0x57b41b));_0x395133[_0xe57e('0x13')]();}}function _0x249f8f(_0x1d2c13){try{if(_0x1d2c13){var _0x37ea74=JSON[_0xe57e('0x14')](_0x1d2c13);switch(_0x37ea74['status']){case 0x0:if(_0x37ea74[_0xe57e('0x15')]){if(_0x37ea74[_0xe57e('0x15')]['final']){logger[_0xe57e('0x6')](_0xe57e('0x16'),JSON[_0xe57e('0xd')](_0x37ea74[_0xe57e('0x15')][_0xe57e('0x17')]));_0x55c28a=_0x37ea74[_0xe57e('0x15')]['hypotheses'][0x0][_0xe57e('0x18')];_0x4dda1e=_0x37ea74[_0xe57e('0x15')][_0xe57e('0x17')][0x0][_0xe57e('0x19')];_0x410851='0';_0x252de0=_0xe57e('0x1a');_0x395133['terminate']();}}break;case 0x1:logger[_0xe57e('0x6')](_0xe57e('0x7'));_0x410851='1';_0x252de0='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';break;case 0x2:logger[_0xe57e('0x6')](_0xe57e('0x1b'));_0x410851='2';_0x252de0=_0xe57e('0x1b');break;case 0x9:logger[_0xe57e('0x6')]('Not\x20available.\x20Max\x20load\x20limit\x20reached.');_0x410851='9';_0x252de0=_0xe57e('0x1c');break;case 0xa:logger[_0xe57e('0x6')](_0xe57e('0x1d'));_0x410851='10';_0x252de0=_0xe57e('0x1d');break;case 0xb:logger[_0xe57e('0x6')](_0xe57e('0x1e'));_0x410851='11';_0x252de0=_0xe57e('0x1e');}}}catch(_0x76de1b){logger[_0xe57e('0x11')](_0xe57e('0x1f'),JSON[_0xe57e('0xd')](_0x76de1b));_0x395133[_0xe57e('0x13')]();}}function _0x43d980(){logger[_0xe57e('0x6')](_0xe57e('0x20'));_0x2fff92({'transcript':_0x55c28a,'confidence':_0x4dda1e,'status':_0x410851,'status_message':_0x252de0});}function _0x49d5c8(_0x47de5b){logger[_0xe57e('0x11')](_0xe57e('0x21'));if(!_[_0xe57e('0x22')](_0x47de5b)){logger[_0xe57e('0x11')](_[_0xe57e('0x23')](_0x47de5b)?JSON[_0xe57e('0xd')](_0x47de5b):_0x47de5b);}}_0x395133['on'](_0xe57e('0x24'),_0xb286e2);_0x395133['on'](_0xe57e('0x25'),_0x249f8f);_0x395133['on'](_0xe57e('0xf'),_0x43d980);_0x395133['on'](_0xe57e('0x11'),_0x49d5c8);});};