Built motion from commit (unavailable).|2.4.18
[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 _0xbe6e=['EOS','error','Tilde\x20ASR\x20send\x20error','result','final','transcript','hypotheses','likelihood','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.','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isObject','open','message','lodash','moment','crypto','../../../../../../config/logger','agi','info','Tilde\x20URI','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','update','digest','hex','Open\x20Tilde\x20ASR\x20socket','stringify','data','send','close'];(function(_0x23128b,_0x2dae42){var _0x18d094=function(_0x214614){while(--_0x214614){_0x23128b['push'](_0x23128b['shift']());}};_0x18d094(++_0x2dae42);}(_0xbe6e,0x1ce));var _0xebe6=function(_0x22b0c8,_0xdf3e85){_0x22b0c8=_0x22b0c8-0x0;var _0xf7cfc0=_0xbe6e[_0x22b0c8];return _0xf7cfc0;};'use strict';var BPromise=require('bluebird');var _=require(_0xebe6('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xebe6('0x1'));var crypto=require(_0xebe6('0x2'));var logger=require(_0xebe6('0x3'))(_0xebe6('0x4'));module['exports']=function(_0x3e40c8,_0x289188,_0x2793e4,_0xbb8f00){return new BPromise(function(_0x51249d,_0x4737f4){logger[_0xebe6('0x5')](_0xebe6('0x6'),_0xbb8f00||_0xebe6('0x7'));var _0x499f5f=new WebSocket(_0xbb8f00||_0xebe6('0x7'),{'perMessageDeflate':![]});var _0x4d8966='';var _0x10216f='0';var _0x2e7784='1';var _0x160982=_0xebe6('0x8');function _0x1f8511(_0x5acf7c){var _0x321847=crypto[_0xebe6('0x9')](_0xebe6('0xa'));_0x321847[_0xebe6('0xb')](_0x5acf7c);return _0x321847[_0xebe6('0xc')](_0xebe6('0xd'));}function _0x1a1d2d(){try{logger['info'](_0xebe6('0xe'));var _0x5d44d9=moment()['unix']();var _0x3a1d14=_0x1f8511(_0x5d44d9+_0x289188+_0x2793e4);_0x499f5f['send'](JSON[_0xebe6('0xf')]({'appID':_0x289188,'timestamp':_0x5d44d9,'appKey':_0x3a1d14}));var _0x5ddb41=fs['createReadStream'](_0x3e40c8);_0x5ddb41['on'](_0xebe6('0x10'),function(_0x4121b4){_0x499f5f[_0xebe6('0x11')](_0x4121b4);});_0x5ddb41['on'](_0xebe6('0x12'),function(){_0x499f5f[_0xebe6('0x11')](_0xebe6('0x13'));});}catch(_0x4a30fd){logger[_0xebe6('0x14')](_0xebe6('0x15'),JSON['stringify'](_0x4a30fd));_0x499f5f['terminate']();}}function _0x1d1852(_0x46ab50){try{if(_0x46ab50){var _0x534d3d=JSON['parse'](_0x46ab50);switch(_0x534d3d['status']){case 0x0:if(_0x534d3d[_0xebe6('0x16')]){if(_0x534d3d[_0xebe6('0x16')][_0xebe6('0x17')]){logger['info']('Tilde\x20ASR\x20hypoteses',JSON[_0xebe6('0xf')](_0x534d3d[_0xebe6('0x16')]['hypotheses']));_0x4d8966=_0x534d3d['result']['hypotheses'][0x0][_0xebe6('0x18')];_0x10216f=_0x534d3d[_0xebe6('0x16')][_0xebe6('0x19')][0x0][_0xebe6('0x1a')];_0x2e7784='0';_0x160982='Success.';_0x499f5f[_0xebe6('0x1b')]();}}break;case 0x1:logger[_0xebe6('0x5')](_0xebe6('0x8'));_0x2e7784='1';_0x160982=_0xebe6('0x8');break;case 0x2:logger[_0xebe6('0x5')](_0xebe6('0x1c'));_0x2e7784='2';_0x160982='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger[_0xebe6('0x5')](_0xebe6('0x1d'));_0x2e7784='9';_0x160982=_0xebe6('0x1d');break;case 0xa:logger[_0xebe6('0x5')](_0xebe6('0x1e'));_0x2e7784='10';_0x160982=_0xebe6('0x1e');break;case 0xb:logger[_0xebe6('0x5')](_0xebe6('0x1f'));_0x2e7784='11';_0x160982=_0xebe6('0x1f');}}}catch(_0x5ec372){logger[_0xebe6('0x14')]('Tilde\x20ASR\x20parse\x20error',JSON['stringify'](_0x5ec372));_0x499f5f[_0xebe6('0x1b')]();}}function _0x1ccc1(){logger[_0xebe6('0x5')](_0xebe6('0x20'));_0x51249d({'transcript':_0x4d8966,'confidence':_0x10216f,'status':_0x2e7784,'status_message':_0x160982});}function _0x246343(_0x539444){logger['error'](_0xebe6('0x21'));if(!_['isNil'](_0x539444)){logger[_0xebe6('0x14')](_[_0xebe6('0x22')](_0x539444)?JSON[_0xebe6('0xf')](_0x539444):_0x539444);}}_0x499f5f['on'](_0xebe6('0x23'),_0x1a1d2d);_0x499f5f['on'](_0xebe6('0x24'),_0x1d1852);_0x499f5f['on'](_0xebe6('0x12'),_0x1ccc1);_0x499f5f['on'](_0xebe6('0x14'),_0x246343);});};