Built motion from commit 25580385.|2.6.2
[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 _0x4c31=['stringify','createReadStream','send','close','EOS','error','Tilde\x20ASR\x20send\x20error','terminate','parse','status','Tilde\x20ASR\x20hypoteses','result','hypotheses','transcript','likelihood','Success.','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','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','isNil','isObject','open','message','lodash','../../../../../../config/logger','agi','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','createHash','sha1','update','digest','info','unix'];(function(_0x32e649,_0x228649){var _0x14d386=function(_0x3fb3ed){while(--_0x3fb3ed){_0x32e649['push'](_0x32e649['shift']());}};_0x14d386(++_0x228649);}(_0x4c31,0x18d));var _0x14c3=function(_0x130755,_0x4c43ee){_0x130755=_0x130755-0x0;var _0x3b2c69=_0x4c31[_0x130755];return _0x3b2c69;};'use strict';var BPromise=require('bluebird');var _=require(_0x14c3('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require('moment');var crypto=require('crypto');var logger=require(_0x14c3('0x1'))(_0x14c3('0x2'));module['exports']=function(_0x2c4e7e,_0x28a89d,_0xc8a8be,_0xf0b06a){return new BPromise(function(_0x1f8437,_0xa232dc){logger['info']('Tilde\x20URI',_0xf0b06a||_0x14c3('0x3'));var _0x452667=new WebSocket(_0xf0b06a||_0x14c3('0x3'),{'perMessageDeflate':![]});var _0x586277='';var _0x339a07='0';var _0x4e7e38='1';var _0x534a01='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x36bdc0(_0x248b76){var _0x4a5912=crypto[_0x14c3('0x4')](_0x14c3('0x5'));_0x4a5912[_0x14c3('0x6')](_0x248b76);return _0x4a5912[_0x14c3('0x7')]('hex');}function _0x8a2b64(){try{logger[_0x14c3('0x8')]('Open\x20Tilde\x20ASR\x20socket');var _0x28f728=moment()[_0x14c3('0x9')]();var _0x565175=_0x36bdc0(_0x28f728+_0x28a89d+_0xc8a8be);_0x452667['send'](JSON[_0x14c3('0xa')]({'appID':_0x28a89d,'timestamp':_0x28f728,'appKey':_0x565175}));var _0xa2bc71=fs[_0x14c3('0xb')](_0x2c4e7e);_0xa2bc71['on']('data',function(_0xdf1bcc){_0x452667[_0x14c3('0xc')](_0xdf1bcc);});_0xa2bc71['on'](_0x14c3('0xd'),function(){_0x452667[_0x14c3('0xc')](_0x14c3('0xe'));});}catch(_0x15c6bf){logger[_0x14c3('0xf')](_0x14c3('0x10'),JSON[_0x14c3('0xa')](_0x15c6bf));_0x452667[_0x14c3('0x11')]();}}function _0x14fbae(_0x320952){try{if(_0x320952){var _0x34bc40=JSON[_0x14c3('0x12')](_0x320952);switch(_0x34bc40[_0x14c3('0x13')]){case 0x0:if(_0x34bc40['result']){if(_0x34bc40['result']['final']){logger['info'](_0x14c3('0x14'),JSON[_0x14c3('0xa')](_0x34bc40[_0x14c3('0x15')][_0x14c3('0x16')]));_0x586277=_0x34bc40[_0x14c3('0x15')]['hypotheses'][0x0][_0x14c3('0x17')];_0x339a07=_0x34bc40[_0x14c3('0x15')][_0x14c3('0x16')][0x0][_0x14c3('0x18')];_0x4e7e38='0';_0x534a01=_0x14c3('0x19');_0x452667[_0x14c3('0x11')]();}}break;case 0x1:logger['info'](_0x14c3('0x1a'));_0x4e7e38='1';_0x534a01='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';break;case 0x2:logger[_0x14c3('0x8')](_0x14c3('0x1b'));_0x4e7e38='2';_0x534a01='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger[_0x14c3('0x8')](_0x14c3('0x1c'));_0x4e7e38='9';_0x534a01=_0x14c3('0x1c');break;case 0xa:logger[_0x14c3('0x8')](_0x14c3('0x1d'));_0x4e7e38='10';_0x534a01=_0x14c3('0x1d');break;case 0xb:logger[_0x14c3('0x8')]('All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.');_0x4e7e38='11';_0x534a01=_0x14c3('0x1e');}}}catch(_0x36f85e){logger[_0x14c3('0xf')](_0x14c3('0x1f'),JSON[_0x14c3('0xa')](_0x36f85e));_0x452667[_0x14c3('0x11')]();}}function _0x526252(){logger[_0x14c3('0x8')]('Close\x20Tilde\x20ASR\x20socket');_0x1f8437({'transcript':_0x586277,'confidence':_0x339a07,'status':_0x4e7e38,'status_message':_0x534a01});}function _0xc99159(_0x4a8607){logger[_0x14c3('0xf')](_0x14c3('0x20'));if(!_[_0x14c3('0x21')](_0x4a8607)){logger[_0x14c3('0xf')](_[_0x14c3('0x22')](_0x4a8607)?JSON[_0x14c3('0xa')](_0x4a8607):_0x4a8607);}}_0x452667['on'](_0x14c3('0x23'),_0x8a2b64);_0x452667['on'](_0x14c3('0x24'),_0x14fbae);_0x452667['on'](_0x14c3('0xd'),_0x526252);_0x452667['on'](_0x14c3('0xf'),_0xc99159);});};