Built motion from commit (unavailable).|2.5.8
[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 _0xab5e=['final','hypotheses','transcript','likelihood','Success.','terminate','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.','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','close','bluebird','lodash','crypto','../../../../../../config/logger','exports','info','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','createHash','hex','Open\x20Tilde\x20ASR\x20socket','unix','send','EOS','error','Tilde\x20ASR\x20send\x20error','stringify','parse','status','result'];(function(_0x429bf7,_0x258024){var _0x4304fe=function(_0xdcaa6a){while(--_0xdcaa6a){_0x429bf7['push'](_0x429bf7['shift']());}};_0x4304fe(++_0x258024);}(_0xab5e,0x1f3));var _0xeab5=function(_0x4d37b4,_0x5057cf){_0x4d37b4=_0x4d37b4-0x0;var _0x104866=_0xab5e[_0x4d37b4];return _0x104866;};'use strict';var BPromise=require(_0xeab5('0x0'));var _=require(_0xeab5('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require('moment');var crypto=require(_0xeab5('0x2'));var logger=require(_0xeab5('0x3'))('agi');module[_0xeab5('0x4')]=function(_0x1d05f9,_0x351a9d,_0x2b9599,_0x5e9422){return new BPromise(function(_0xc93392,_0xd23e5d){logger[_0xeab5('0x5')]('Tilde\x20URI',_0x5e9422||_0xeab5('0x6'));var _0x342dd8=new WebSocket(_0x5e9422||_0xeab5('0x6'),{'perMessageDeflate':![]});var _0x3da83c='';var _0x3f9000='0';var _0x369b48='1';var _0x5cfdd1='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x479bb7(_0x301064){var _0x4c6604=crypto[_0xeab5('0x7')]('sha1');_0x4c6604['update'](_0x301064);return _0x4c6604['digest'](_0xeab5('0x8'));}function _0x22247d(){try{logger[_0xeab5('0x5')](_0xeab5('0x9'));var _0x238e22=moment()[_0xeab5('0xa')]();var _0x32e6e1=_0x479bb7(_0x238e22+_0x351a9d+_0x2b9599);_0x342dd8['send'](JSON['stringify']({'appID':_0x351a9d,'timestamp':_0x238e22,'appKey':_0x32e6e1}));var _0x18351d=fs['createReadStream'](_0x1d05f9);_0x18351d['on']('data',function(_0x420613){_0x342dd8[_0xeab5('0xb')](_0x420613);});_0x18351d['on']('close',function(){_0x342dd8[_0xeab5('0xb')](_0xeab5('0xc'));});}catch(_0x1f897d){logger[_0xeab5('0xd')](_0xeab5('0xe'),JSON[_0xeab5('0xf')](_0x1f897d));_0x342dd8['terminate']();}}function _0x5359e0(_0x3af2b9){try{if(_0x3af2b9){var _0x39481e=JSON[_0xeab5('0x10')](_0x3af2b9);switch(_0x39481e[_0xeab5('0x11')]){case 0x0:if(_0x39481e[_0xeab5('0x12')]){if(_0x39481e['result'][_0xeab5('0x13')]){logger[_0xeab5('0x5')]('Tilde\x20ASR\x20hypoteses',JSON[_0xeab5('0xf')](_0x39481e[_0xeab5('0x12')][_0xeab5('0x14')]));_0x3da83c=_0x39481e[_0xeab5('0x12')]['hypotheses'][0x0][_0xeab5('0x15')];_0x3f9000=_0x39481e['result'][_0xeab5('0x14')][0x0][_0xeab5('0x16')];_0x369b48='0';_0x5cfdd1=_0xeab5('0x17');_0x342dd8[_0xeab5('0x18')]();}}break;case 0x1:logger['info'](_0xeab5('0x19'));_0x369b48='1';_0x5cfdd1=_0xeab5('0x19');break;case 0x2:logger[_0xeab5('0x5')](_0xeab5('0x1a'));_0x369b48='2';_0x5cfdd1=_0xeab5('0x1a');break;case 0x9:logger[_0xeab5('0x5')](_0xeab5('0x1b'));_0x369b48='9';_0x5cfdd1=_0xeab5('0x1b');break;case 0xa:logger[_0xeab5('0x5')](_0xeab5('0x1c'));_0x369b48='10';_0x5cfdd1=_0xeab5('0x1c');break;case 0xb:logger[_0xeab5('0x5')](_0xeab5('0x1d'));_0x369b48='11';_0x5cfdd1='All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.';}}}catch(_0x35cfee){logger['error'](_0xeab5('0x1e'),JSON[_0xeab5('0xf')](_0x35cfee));_0x342dd8['terminate']();}}function _0x4cdca4(){logger[_0xeab5('0x5')](_0xeab5('0x1f'));_0xc93392({'transcript':_0x3da83c,'confidence':_0x3f9000,'status':_0x369b48,'status_message':_0x5cfdd1});}function _0x3e7ecd(_0x14ccc5){logger[_0xeab5('0xd')](_0xeab5('0x20'));if(!_[_0xeab5('0x21')](_0x14ccc5)){logger[_0xeab5('0xd')](_[_0xeab5('0x22')](_0x14ccc5)?JSON[_0xeab5('0xf')](_0x14ccc5):_0x14ccc5);}}_0x342dd8['on']('open',_0x22247d);_0x342dd8['on'](_0xeab5('0x23'),_0x5359e0);_0x342dd8['on'](_0xeab5('0x24'),_0x4cdca4);_0x342dd8['on'](_0xeab5('0xd'),_0x3e7ecd);});};