Built motion from commit (unavailable).|2.5.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 _0xa03d=['Error\x20Tilde\x20ASR\x20socket','isNil','isObject','open','message','bluebird','lodash','crypto','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','update','digest','hex','Open\x20Tilde\x20ASR\x20socket','unix','stringify','createReadStream','send','close','EOS','error','terminate','parse','result','final','hypotheses','transcript','likelihood','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'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xa03d,0x15b));var _0xda03=function(_0x395b49,_0xe5f0b7){_0x395b49=_0x395b49-0x0;var _0x752d9=_0xa03d[_0x395b49];return _0x752d9;};'use strict';var BPromise=require(_0xda03('0x0'));var _=require(_0xda03('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require('moment');var crypto=require(_0xda03('0x2'));var logger=require('../../../../../../config/logger')(_0xda03('0x3'));module['exports']=function(_0x13ee8c,_0x3f903d,_0x5516d1,_0x131464){return new BPromise(function(_0x4a4a0d,_0xdf801){logger[_0xda03('0x4')](_0xda03('0x5'),_0x131464||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE');var _0x4cf818=new WebSocket(_0x131464||_0xda03('0x6'),{'perMessageDeflate':![]});var _0x20f85f='';var _0x3d3a43='0';var _0x53c410='1';var _0x4e938f=_0xda03('0x7');function _0x32c583(_0xc80a8e){var _0xb0f0e3=crypto[_0xda03('0x8')]('sha1');_0xb0f0e3[_0xda03('0x9')](_0xc80a8e);return _0xb0f0e3[_0xda03('0xa')](_0xda03('0xb'));}function _0x1d3b89(){try{logger[_0xda03('0x4')](_0xda03('0xc'));var _0x27dae5=moment()[_0xda03('0xd')]();var _0x11cdfd=_0x32c583(_0x27dae5+_0x3f903d+_0x5516d1);_0x4cf818['send'](JSON[_0xda03('0xe')]({'appID':_0x3f903d,'timestamp':_0x27dae5,'appKey':_0x11cdfd}));var _0x589e2e=fs[_0xda03('0xf')](_0x13ee8c);_0x589e2e['on']('data',function(_0x27df3b){_0x4cf818[_0xda03('0x10')](_0x27df3b);});_0x589e2e['on'](_0xda03('0x11'),function(){_0x4cf818[_0xda03('0x10')](_0xda03('0x12'));});}catch(_0x29fca7){logger[_0xda03('0x13')]('Tilde\x20ASR\x20send\x20error',JSON[_0xda03('0xe')](_0x29fca7));_0x4cf818[_0xda03('0x14')]();}}function _0x2aa2f4(_0x105be2){try{if(_0x105be2){var _0x52c74f=JSON[_0xda03('0x15')](_0x105be2);switch(_0x52c74f['status']){case 0x0:if(_0x52c74f[_0xda03('0x16')]){if(_0x52c74f['result'][_0xda03('0x17')]){logger[_0xda03('0x4')]('Tilde\x20ASR\x20hypoteses',JSON[_0xda03('0xe')](_0x52c74f[_0xda03('0x16')][_0xda03('0x18')]));_0x20f85f=_0x52c74f[_0xda03('0x16')][_0xda03('0x18')][0x0][_0xda03('0x19')];_0x3d3a43=_0x52c74f[_0xda03('0x16')][_0xda03('0x18')][0x0][_0xda03('0x1a')];_0x53c410='0';_0x4e938f='Success.';_0x4cf818[_0xda03('0x14')]();}}break;case 0x1:logger['info']('No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech');_0x53c410='1';_0x4e938f='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';break;case 0x2:logger[_0xda03('0x4')](_0xda03('0x1b'));_0x53c410='2';_0x4e938f='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger[_0xda03('0x4')](_0xda03('0x1c'));_0x53c410='9';_0x4e938f=_0xda03('0x1c');break;case 0xa:logger[_0xda03('0x4')](_0xda03('0x1d'));_0x53c410='10';_0x4e938f=_0xda03('0x1d');break;case 0xb:logger[_0xda03('0x4')](_0xda03('0x1e'));_0x53c410='11';_0x4e938f=_0xda03('0x1e');}}}catch(_0x45ff54){logger[_0xda03('0x13')](_0xda03('0x1f'),JSON[_0xda03('0xe')](_0x45ff54));_0x4cf818[_0xda03('0x14')]();}}function _0x2a0cbd(){logger[_0xda03('0x4')](_0xda03('0x20'));_0x4a4a0d({'transcript':_0x20f85f,'confidence':_0x3d3a43,'status':_0x53c410,'status_message':_0x4e938f});}function _0x3bd070(_0x6c2a7e){logger[_0xda03('0x13')](_0xda03('0x21'));if(!_[_0xda03('0x22')](_0x6c2a7e)){logger[_0xda03('0x13')](_[_0xda03('0x23')](_0x6c2a7e)?JSON[_0xda03('0xe')](_0x6c2a7e):_0x6c2a7e);}}_0x4cf818['on'](_0xda03('0x24'),_0x1d3b89);_0x4cf818['on'](_0xda03('0x25'),_0x2aa2f4);_0x4cf818['on'](_0xda03('0x11'),_0x2a0cbd);_0x4cf818['on'](_0xda03('0x13'),_0x3bd070);});};