Built motion from commit (unavailable).|2.5.31
[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 _0xb093=['transcript','likelihood','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','info','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','Error\x20Tilde\x20ASR\x20socket','isObject','open','message','lodash','moment','crypto','../../../../../../config/logger','exports','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','createHash','sha1','digest','Open\x20Tilde\x20ASR\x20socket','unix','send','stringify','EOS','error','Tilde\x20ASR\x20send\x20error','terminate','parse','status','final','result','hypotheses'];(function(_0x5b0a93,_0x4c648d){var _0x2f3949=function(_0x3d9430){while(--_0x3d9430){_0x5b0a93['push'](_0x5b0a93['shift']());}};_0x2f3949(++_0x4c648d);}(_0xb093,0x109));var _0x3b09=function(_0x406d78,_0x15d48c){_0x406d78=_0x406d78-0x0;var _0x4c3637=_0xb093[_0x406d78];return _0x4c3637;};'use strict';var BPromise=require('bluebird');var _=require(_0x3b09('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x3b09('0x1'));var crypto=require(_0x3b09('0x2'));var logger=require(_0x3b09('0x3'))('agi');module[_0x3b09('0x4')]=function(_0x4cff94,_0x1944bb,_0x4a6bf2,_0x53ba91){return new BPromise(function(_0x2ca0a2,_0x1c7c9e){logger['info'](_0x3b09('0x5'),_0x53ba91||_0x3b09('0x6'));var _0x27362d=new WebSocket(_0x53ba91||_0x3b09('0x6'),{'perMessageDeflate':![]});var _0x330af2='';var _0x382802='0';var _0x2cfd49='1';var _0x27ee7b='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x3f0209(_0x446dba){var _0xa22696=crypto[_0x3b09('0x7')](_0x3b09('0x8'));_0xa22696['update'](_0x446dba);return _0xa22696[_0x3b09('0x9')]('hex');}function _0x5c968a(){try{logger['info'](_0x3b09('0xa'));var _0x10f575=moment()[_0x3b09('0xb')]();var _0x2e579e=_0x3f0209(_0x10f575+_0x1944bb+_0x4a6bf2);_0x27362d[_0x3b09('0xc')](JSON[_0x3b09('0xd')]({'appID':_0x1944bb,'timestamp':_0x10f575,'appKey':_0x2e579e}));var _0x1cc2f7=fs['createReadStream'](_0x4cff94);_0x1cc2f7['on']('data',function(_0x12ca1c){_0x27362d['send'](_0x12ca1c);});_0x1cc2f7['on']('close',function(){_0x27362d['send'](_0x3b09('0xe'));});}catch(_0x117815){logger[_0x3b09('0xf')](_0x3b09('0x10'),JSON[_0x3b09('0xd')](_0x117815));_0x27362d[_0x3b09('0x11')]();}}function _0x6ec0fc(_0x6a538d){try{if(_0x6a538d){var _0x152135=JSON[_0x3b09('0x12')](_0x6a538d);switch(_0x152135[_0x3b09('0x13')]){case 0x0:if(_0x152135['result']){if(_0x152135['result'][_0x3b09('0x14')]){logger['info']('Tilde\x20ASR\x20hypoteses',JSON[_0x3b09('0xd')](_0x152135[_0x3b09('0x15')][_0x3b09('0x16')]));_0x330af2=_0x152135[_0x3b09('0x15')][_0x3b09('0x16')][0x0][_0x3b09('0x17')];_0x382802=_0x152135[_0x3b09('0x15')][_0x3b09('0x16')][0x0][_0x3b09('0x18')];_0x2cfd49='0';_0x27ee7b='Success.';_0x27362d[_0x3b09('0x11')]();}}break;case 0x1:logger['info'](_0x3b09('0x19'));_0x2cfd49='1';_0x27ee7b=_0x3b09('0x19');break;case 0x2:logger[_0x3b09('0x1a')](_0x3b09('0x1b'));_0x2cfd49='2';_0x27ee7b='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger[_0x3b09('0x1a')](_0x3b09('0x1c'));_0x2cfd49='9';_0x27ee7b=_0x3b09('0x1c');break;case 0xa:logger[_0x3b09('0x1a')](_0x3b09('0x1d'));_0x2cfd49='10';_0x27ee7b=_0x3b09('0x1d');break;case 0xb:logger['info'](_0x3b09('0x1e'));_0x2cfd49='11';_0x27ee7b=_0x3b09('0x1e');}}}catch(_0x244a23){logger[_0x3b09('0xf')](_0x3b09('0x1f'),JSON['stringify'](_0x244a23));_0x27362d['terminate']();}}function _0x51b1ce(){logger['info']('Close\x20Tilde\x20ASR\x20socket');_0x2ca0a2({'transcript':_0x330af2,'confidence':_0x382802,'status':_0x2cfd49,'status_message':_0x27ee7b});}function _0x4199fa(_0x3598bb){logger[_0x3b09('0xf')](_0x3b09('0x20'));if(!_['isNil'](_0x3598bb)){logger['error'](_[_0x3b09('0x21')](_0x3598bb)?JSON['stringify'](_0x3598bb):_0x3598bb);}}_0x27362d['on'](_0x3b09('0x22'),_0x5c968a);_0x27362d['on'](_0x3b09('0x23'),_0x6ec0fc);_0x27362d['on']('close',_0x51b1ce);_0x27362d['on'](_0x3b09('0xf'),_0x4199fa);});};