Built motion from commit 96f8de6d.|2.6.3
[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 _0x384c=['hypotheses','transcript','likelihood','Success.','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','stringify','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','open','message','bluebird','lodash','moment','crypto','../../../../../../config/logger','agi','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','hex','info','unix','send','createReadStream','data','close','EOS','error','Tilde\x20ASR\x20send\x20error','terminate','parse','status','result','Tilde\x20ASR\x20hypoteses'];(function(_0x22ea66,_0x30123a){var _0x529757=function(_0x2340e){while(--_0x2340e){_0x22ea66['push'](_0x22ea66['shift']());}};_0x529757(++_0x30123a);}(_0x384c,0x16e));var _0xc384=function(_0x2ba66d,_0x395d45){_0x2ba66d=_0x2ba66d-0x0;var _0x5caeb4=_0x384c[_0x2ba66d];return _0x5caeb4;};'use strict';var BPromise=require(_0xc384('0x0'));var _=require(_0xc384('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xc384('0x2'));var crypto=require(_0xc384('0x3'));var logger=require(_0xc384('0x4'))(_0xc384('0x5'));module['exports']=function(_0x26fd0d,_0x2a43a8,_0xca92fa,_0x30bcc6){return new BPromise(function(_0x2659e9,_0x54e113){logger['info'](_0xc384('0x6'),_0x30bcc6||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE');var _0xf22ba9=new WebSocket(_0x30bcc6||_0xc384('0x7'),{'perMessageDeflate':![]});var _0x5bcf96='';var _0x4bad22='0';var _0x5ec97f='1';var _0xf8c682=_0xc384('0x8');function _0x16be8f(_0x5db7bc){var _0x33a699=crypto['createHash']('sha1');_0x33a699['update'](_0x5db7bc);return _0x33a699['digest'](_0xc384('0x9'));}function _0x348e13(){try{logger[_0xc384('0xa')]('Open\x20Tilde\x20ASR\x20socket');var _0x1ed592=moment()[_0xc384('0xb')]();var _0x58404e=_0x16be8f(_0x1ed592+_0x2a43a8+_0xca92fa);_0xf22ba9[_0xc384('0xc')](JSON['stringify']({'appID':_0x2a43a8,'timestamp':_0x1ed592,'appKey':_0x58404e}));var _0x56876a=fs[_0xc384('0xd')](_0x26fd0d);_0x56876a['on'](_0xc384('0xe'),function(_0x4fb127){_0xf22ba9[_0xc384('0xc')](_0x4fb127);});_0x56876a['on'](_0xc384('0xf'),function(){_0xf22ba9[_0xc384('0xc')](_0xc384('0x10'));});}catch(_0x47f77a){logger[_0xc384('0x11')](_0xc384('0x12'),JSON['stringify'](_0x47f77a));_0xf22ba9[_0xc384('0x13')]();}}function _0x3f1ea9(_0x37e1f2){try{if(_0x37e1f2){var _0x492efd=JSON[_0xc384('0x14')](_0x37e1f2);switch(_0x492efd[_0xc384('0x15')]){case 0x0:if(_0x492efd['result']){if(_0x492efd[_0xc384('0x16')]['final']){logger[_0xc384('0xa')](_0xc384('0x17'),JSON['stringify'](_0x492efd[_0xc384('0x16')][_0xc384('0x18')]));_0x5bcf96=_0x492efd['result'][_0xc384('0x18')][0x0][_0xc384('0x19')];_0x4bad22=_0x492efd[_0xc384('0x16')]['hypotheses'][0x0][_0xc384('0x1a')];_0x5ec97f='0';_0xf8c682=_0xc384('0x1b');_0xf22ba9[_0xc384('0x13')]();}}break;case 0x1:logger[_0xc384('0xa')]('No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech');_0x5ec97f='1';_0xf8c682=_0xc384('0x8');break;case 0x2:logger[_0xc384('0xa')](_0xc384('0x1c'));_0x5ec97f='2';_0xf8c682='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger[_0xc384('0xa')](_0xc384('0x1d'));_0x5ec97f='9';_0xf8c682='Not\x20available.\x20Max\x20load\x20limit\x20reached.';break;case 0xa:logger[_0xc384('0xa')](_0xc384('0x1e'));_0x5ec97f='10';_0xf8c682=_0xc384('0x1e');break;case 0xb:logger['info'](_0xc384('0x1f'));_0x5ec97f='11';_0xf8c682='All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.';}}}catch(_0x2831f6){logger[_0xc384('0x11')](_0xc384('0x20'),JSON[_0xc384('0x21')](_0x2831f6));_0xf22ba9['terminate']();}}function _0x434710(){logger['info'](_0xc384('0x22'));_0x2659e9({'transcript':_0x5bcf96,'confidence':_0x4bad22,'status':_0x5ec97f,'status_message':_0xf8c682});}function _0x5776bd(_0x480bb6){logger[_0xc384('0x11')](_0xc384('0x23'));if(!_[_0xc384('0x24')](_0x480bb6)){logger[_0xc384('0x11')](_['isObject'](_0x480bb6)?JSON[_0xc384('0x21')](_0x480bb6):_0x480bb6);}}_0xf22ba9['on'](_0xc384('0x25'),_0x348e13);_0xf22ba9['on'](_0xc384('0x26'),_0x3f1ea9);_0xf22ba9['on'](_0xc384('0xf'),_0x434710);_0xf22ba9['on'](_0xc384('0x11'),_0x5776bd);});};