Built motion from commit ce9a7520.|2.5.39
[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 _0x4203=['update','digest','hex','Open\x20Tilde\x20ASR\x20socket','send','stringify','createReadStream','EOS','error','Tilde\x20ASR\x20send\x20error','parse','status','result','final','Tilde\x20ASR\x20hypoteses','hypotheses','likelihood','Success.','terminate','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','open','message','close','bluebird','lodash','moment','crypto','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'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x4203,0xe6));var _0x3420=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x4203[_0x19e35c];return _0x3e1fe8;};'use strict';var BPromise=require(_0x3420('0x0'));var _=require(_0x3420('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x3420('0x2'));var crypto=require(_0x3420('0x3'));var logger=require('../../../../../../config/logger')('agi');module[_0x3420('0x4')]=function(_0x186548,_0x107568,_0x3f8a35,_0x207017){return new BPromise(function(_0x4cdcb3,_0x3f1597){logger[_0x3420('0x5')]('Tilde\x20URI',_0x207017||_0x3420('0x6'));var _0x9ab7a=new WebSocket(_0x207017||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE',{'perMessageDeflate':![]});var _0x5be3ef='';var _0x2422f1='0';var _0x2b5c9f='1';var _0xf2a91d=_0x3420('0x7');function _0x228b78(_0x179035){var _0x993a9e=crypto[_0x3420('0x8')](_0x3420('0x9'));_0x993a9e[_0x3420('0xa')](_0x179035);return _0x993a9e[_0x3420('0xb')](_0x3420('0xc'));}function _0x393a2e(){try{logger[_0x3420('0x5')](_0x3420('0xd'));var _0x140c6c=moment()['unix']();var _0x579fb4=_0x228b78(_0x140c6c+_0x107568+_0x3f8a35);_0x9ab7a[_0x3420('0xe')](JSON[_0x3420('0xf')]({'appID':_0x107568,'timestamp':_0x140c6c,'appKey':_0x579fb4}));var _0x444661=fs[_0x3420('0x10')](_0x186548);_0x444661['on']('data',function(_0x25bbe9){_0x9ab7a['send'](_0x25bbe9);});_0x444661['on']('close',function(){_0x9ab7a[_0x3420('0xe')](_0x3420('0x11'));});}catch(_0x3c9a85){logger[_0x3420('0x12')](_0x3420('0x13'),JSON[_0x3420('0xf')](_0x3c9a85));_0x9ab7a['terminate']();}}function _0x54778c(_0x1e649f){try{if(_0x1e649f){var _0x486fab=JSON[_0x3420('0x14')](_0x1e649f);switch(_0x486fab[_0x3420('0x15')]){case 0x0:if(_0x486fab[_0x3420('0x16')]){if(_0x486fab[_0x3420('0x16')][_0x3420('0x17')]){logger[_0x3420('0x5')](_0x3420('0x18'),JSON['stringify'](_0x486fab['result'][_0x3420('0x19')]));_0x5be3ef=_0x486fab['result'][_0x3420('0x19')][0x0]['transcript'];_0x2422f1=_0x486fab[_0x3420('0x16')]['hypotheses'][0x0][_0x3420('0x1a')];_0x2b5c9f='0';_0xf2a91d=_0x3420('0x1b');_0x9ab7a[_0x3420('0x1c')]();}}break;case 0x1:logger[_0x3420('0x5')]('No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech');_0x2b5c9f='1';_0xf2a91d=_0x3420('0x7');break;case 0x2:logger[_0x3420('0x5')](_0x3420('0x1d'));_0x2b5c9f='2';_0xf2a91d=_0x3420('0x1d');break;case 0x9:logger[_0x3420('0x5')](_0x3420('0x1e'));_0x2b5c9f='9';_0xf2a91d='Not\x20available.\x20Max\x20load\x20limit\x20reached.';break;case 0xa:logger[_0x3420('0x5')](_0x3420('0x1f'));_0x2b5c9f='10';_0xf2a91d=_0x3420('0x1f');break;case 0xb:logger[_0x3420('0x5')](_0x3420('0x20'));_0x2b5c9f='11';_0xf2a91d='All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.';}}}catch(_0x3c63de){logger['error'](_0x3420('0x21'),JSON['stringify'](_0x3c63de));_0x9ab7a[_0x3420('0x1c')]();}}function _0x4d587d(){logger[_0x3420('0x5')](_0x3420('0x22'));_0x4cdcb3({'transcript':_0x5be3ef,'confidence':_0x2422f1,'status':_0x2b5c9f,'status_message':_0xf2a91d});}function _0x37e6cf(_0x51ec8a){logger[_0x3420('0x12')](_0x3420('0x23'));if(!_[_0x3420('0x24')](_0x51ec8a)){logger['error'](_['isObject'](_0x51ec8a)?JSON[_0x3420('0xf')](_0x51ec8a):_0x51ec8a);}}_0x9ab7a['on'](_0x3420('0x25'),_0x393a2e);_0x9ab7a['on'](_0x3420('0x26'),_0x54778c);_0x9ab7a['on'](_0x3420('0x27'),_0x4d587d);_0x9ab7a['on'](_0x3420('0x12'),_0x37e6cf);});};