cd1cab021ade27b535428d80c72e87f2c130cb8d
[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 _0x6185=['All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','error','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','open','message','bluebird','moment','../../../../../../config/logger','agi','info','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','sha1','update','digest','hex','Open\x20Tilde\x20ASR\x20socket','unix','send','stringify','data','close','Tilde\x20ASR\x20send\x20error','terminate','parse','status','result','final','transcript','hypotheses','likelihood','Success.','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','Authentication\x20failed.'];(function(_0x482d32,_0x4164ec){var _0x5eda4d=function(_0x49d318){while(--_0x49d318){_0x482d32['push'](_0x482d32['shift']());}};_0x5eda4d(++_0x4164ec);}(_0x6185,0x11a));var _0x5618=function(_0x4c0ada,_0x35a53d){_0x4c0ada=_0x4c0ada-0x0;var _0x22d4f4=_0x6185[_0x4c0ada];return _0x22d4f4;};'use strict';var BPromise=require(_0x5618('0x0'));var _=require('lodash');var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x5618('0x1'));var crypto=require('crypto');var logger=require(_0x5618('0x2'))(_0x5618('0x3'));module['exports']=function(_0x1c48da,_0x538cf5,_0xc03152,_0x36b601){return new BPromise(function(_0x41d39d,_0x58aaab){logger[_0x5618('0x4')]('Tilde\x20URI',_0x36b601||_0x5618('0x5'));var _0xc0b928=new WebSocket(_0x36b601||_0x5618('0x5'),{'perMessageDeflate':![]});var _0x4d6c75='';var _0x153ab3='0';var _0x1160a2='1';var _0x2e22b6='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x55f37c(_0x3df6ee){var _0x14f621=crypto['createHash'](_0x5618('0x6'));_0x14f621[_0x5618('0x7')](_0x3df6ee);return _0x14f621[_0x5618('0x8')](_0x5618('0x9'));}function _0x462034(){try{logger[_0x5618('0x4')](_0x5618('0xa'));var _0xcf626e=moment()[_0x5618('0xb')]();var _0x4a8748=_0x55f37c(_0xcf626e+_0x538cf5+_0xc03152);_0xc0b928[_0x5618('0xc')](JSON[_0x5618('0xd')]({'appID':_0x538cf5,'timestamp':_0xcf626e,'appKey':_0x4a8748}));var _0x4636c2=fs['createReadStream'](_0x1c48da);_0x4636c2['on'](_0x5618('0xe'),function(_0x12ab98){_0xc0b928[_0x5618('0xc')](_0x12ab98);});_0x4636c2['on'](_0x5618('0xf'),function(){_0xc0b928[_0x5618('0xc')]('EOS');});}catch(_0x21253f){logger['error'](_0x5618('0x10'),JSON[_0x5618('0xd')](_0x21253f));_0xc0b928[_0x5618('0x11')]();}}function _0x596168(_0x408d41){try{if(_0x408d41){var _0x3ea277=JSON[_0x5618('0x12')](_0x408d41);switch(_0x3ea277[_0x5618('0x13')]){case 0x0:if(_0x3ea277['result']){if(_0x3ea277[_0x5618('0x14')][_0x5618('0x15')]){logger[_0x5618('0x4')]('Tilde\x20ASR\x20hypoteses',JSON[_0x5618('0xd')](_0x3ea277['result']['hypotheses']));_0x4d6c75=_0x3ea277[_0x5618('0x14')]['hypotheses'][0x0][_0x5618('0x16')];_0x153ab3=_0x3ea277['result'][_0x5618('0x17')][0x0][_0x5618('0x18')];_0x1160a2='0';_0x2e22b6=_0x5618('0x19');_0xc0b928[_0x5618('0x11')]();}}break;case 0x1:logger['info'](_0x5618('0x1a'));_0x1160a2='1';_0x2e22b6=_0x5618('0x1a');break;case 0x2:logger['info'](_0x5618('0x1b'));_0x1160a2='2';_0x2e22b6=_0x5618('0x1b');break;case 0x9:logger[_0x5618('0x4')](_0x5618('0x1c'));_0x1160a2='9';_0x2e22b6=_0x5618('0x1c');break;case 0xa:logger[_0x5618('0x4')](_0x5618('0x1d'));_0x1160a2='10';_0x2e22b6='Authentication\x20failed.';break;case 0xb:logger['info'](_0x5618('0x1e'));_0x1160a2='11';_0x2e22b6=_0x5618('0x1e');}}}catch(_0x218e2e){logger['error'](_0x5618('0x1f'),JSON[_0x5618('0xd')](_0x218e2e));_0xc0b928[_0x5618('0x11')]();}}function _0x3be7b7(){logger['info'](_0x5618('0x20'));_0x41d39d({'transcript':_0x4d6c75,'confidence':_0x153ab3,'status':_0x1160a2,'status_message':_0x2e22b6});}function _0x4158bc(_0x32c5a1){logger[_0x5618('0x21')](_0x5618('0x22'));if(!_[_0x5618('0x23')](_0x32c5a1)){logger[_0x5618('0x21')](_[_0x5618('0x24')](_0x32c5a1)?JSON[_0x5618('0xd')](_0x32c5a1):_0x32c5a1);}}_0xc0b928['on'](_0x5618('0x25'),_0x462034);_0xc0b928['on'](_0x5618('0x26'),_0x596168);_0xc0b928['on'](_0x5618('0xf'),_0x3be7b7);_0xc0b928['on'](_0x5618('0x21'),_0x4158bc);});};