Built motion from commit (unavailable).|2.6.0
[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 _0x386b=['parse','status','result','Tilde\x20ASR\x20hypoteses','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.','Error\x20Tilde\x20ASR\x20socket','isNil','lodash','moment','crypto','../../../../../../config/logger','agi','exports','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','unix','send','stringify','createReadStream','data','close','EOS','error','Tilde\x20ASR\x20send\x20error'];(function(_0x17bca3,_0x2f4804){var _0x4df8a0=function(_0x43599a){while(--_0x43599a){_0x17bca3['push'](_0x17bca3['shift']());}};_0x4df8a0(++_0x2f4804);}(_0x386b,0xcb));var _0xb386=function(_0x4771de,_0x2326dd){_0x4771de=_0x4771de-0x0;var _0x97ea15=_0x386b[_0x4771de];return _0x97ea15;};'use strict';var BPromise=require('bluebird');var _=require(_0xb386('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xb386('0x1'));var crypto=require(_0xb386('0x2'));var logger=require(_0xb386('0x3'))(_0xb386('0x4'));module[_0xb386('0x5')]=function(_0x1b623e,_0x2df56a,_0xe5e3ed,_0x3f58cd){return new BPromise(function(_0x4c649c,_0xc72f25){logger[_0xb386('0x6')](_0xb386('0x7'),_0x3f58cd||_0xb386('0x8'));var _0x49fdb2=new WebSocket(_0x3f58cd||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE',{'perMessageDeflate':![]});var _0x1c73c8='';var _0x198853='0';var _0x3776e9='1';var _0x393d44=_0xb386('0x9');function _0x2bb87f(_0x5a8ea6){var _0x5ee7c0=crypto[_0xb386('0xa')](_0xb386('0xb'));_0x5ee7c0[_0xb386('0xc')](_0x5a8ea6);return _0x5ee7c0[_0xb386('0xd')](_0xb386('0xe'));}function _0x52ea0d(){try{logger[_0xb386('0x6')](_0xb386('0xf'));var _0x24f520=moment()[_0xb386('0x10')]();var _0x478b76=_0x2bb87f(_0x24f520+_0x2df56a+_0xe5e3ed);_0x49fdb2[_0xb386('0x11')](JSON[_0xb386('0x12')]({'appID':_0x2df56a,'timestamp':_0x24f520,'appKey':_0x478b76}));var _0x25b6a0=fs[_0xb386('0x13')](_0x1b623e);_0x25b6a0['on'](_0xb386('0x14'),function(_0x255247){_0x49fdb2[_0xb386('0x11')](_0x255247);});_0x25b6a0['on'](_0xb386('0x15'),function(){_0x49fdb2['send'](_0xb386('0x16'));});}catch(_0x18b626){logger[_0xb386('0x17')](_0xb386('0x18'),JSON['stringify'](_0x18b626));_0x49fdb2['terminate']();}}function _0x55dcbf(_0x23167e){try{if(_0x23167e){var _0x529e04=JSON[_0xb386('0x19')](_0x23167e);switch(_0x529e04[_0xb386('0x1a')]){case 0x0:if(_0x529e04['result']){if(_0x529e04[_0xb386('0x1b')]['final']){logger[_0xb386('0x6')](_0xb386('0x1c'),JSON[_0xb386('0x12')](_0x529e04[_0xb386('0x1b')][_0xb386('0x1d')]));_0x1c73c8=_0x529e04[_0xb386('0x1b')][_0xb386('0x1d')][0x0][_0xb386('0x1e')];_0x198853=_0x529e04[_0xb386('0x1b')][_0xb386('0x1d')][0x0][_0xb386('0x1f')];_0x3776e9='0';_0x393d44='Success.';_0x49fdb2['terminate']();}}break;case 0x1:logger['info']('No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech');_0x3776e9='1';_0x393d44=_0xb386('0x9');break;case 0x2:logger[_0xb386('0x6')](_0xb386('0x20'));_0x3776e9='2';_0x393d44=_0xb386('0x20');break;case 0x9:logger[_0xb386('0x6')](_0xb386('0x21'));_0x3776e9='9';_0x393d44='Not\x20available.\x20Max\x20load\x20limit\x20reached.';break;case 0xa:logger[_0xb386('0x6')](_0xb386('0x22'));_0x3776e9='10';_0x393d44='Authentication\x20failed.';break;case 0xb:logger[_0xb386('0x6')](_0xb386('0x23'));_0x3776e9='11';_0x393d44=_0xb386('0x23');}}}catch(_0x11046a){logger[_0xb386('0x17')]('Tilde\x20ASR\x20parse\x20error',JSON[_0xb386('0x12')](_0x11046a));_0x49fdb2['terminate']();}}function _0x1c8b93(){logger[_0xb386('0x6')]('Close\x20Tilde\x20ASR\x20socket');_0x4c649c({'transcript':_0x1c73c8,'confidence':_0x198853,'status':_0x3776e9,'status_message':_0x393d44});}function _0x5e646d(_0x504d90){logger['error'](_0xb386('0x24'));if(!_[_0xb386('0x25')](_0x504d90)){logger[_0xb386('0x17')](_['isObject'](_0x504d90)?JSON[_0xb386('0x12')](_0x504d90):_0x504d90);}}_0x49fdb2['on']('open',_0x52ea0d);_0x49fdb2['on']('message',_0x55dcbf);_0x49fdb2['on'](_0xb386('0x15'),_0x1c8b93);_0x49fdb2['on'](_0xb386('0x17'),_0x5e646d);});};