Built motion from commit f7863d46.|2.5.41
[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 _0xbdec=['hypotheses','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.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','error','Tilde\x20ASR\x20parse\x20error','Error\x20Tilde\x20ASR\x20socket','isObject','open','message','bluebird','moment','crypto','../../../../../../config/logger','exports','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','digest','hex','info','Open\x20Tilde\x20ASR\x20socket','unix','send','createReadStream','Tilde\x20ASR\x20send\x20error','stringify','terminate','parse','status','result','final','Tilde\x20ASR\x20hypoteses'];(function(_0x486a41,_0x53199b){var _0x8ef209=function(_0x2c75a8){while(--_0x2c75a8){_0x486a41['push'](_0x486a41['shift']());}};_0x8ef209(++_0x53199b);}(_0xbdec,0x11d));var _0xcbde=function(_0x559636,_0x2d308e){_0x559636=_0x559636-0x0;var _0x2c9dc8=_0xbdec[_0x559636];return _0x2c9dc8;};'use strict';var BPromise=require(_0xcbde('0x0'));var _=require('lodash');var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xcbde('0x1'));var crypto=require(_0xcbde('0x2'));var logger=require(_0xcbde('0x3'))('agi');module[_0xcbde('0x4')]=function(_0x281e9f,_0x583b69,_0x346879,_0x2d792d){return new BPromise(function(_0x41f11b,_0xc047b2){logger['info']('Tilde\x20URI',_0x2d792d||_0xcbde('0x5'));var _0xcd1993=new WebSocket(_0x2d792d||_0xcbde('0x5'),{'perMessageDeflate':![]});var _0x318e5d='';var _0xb7f98='0';var _0x256c83='1';var _0x2ecaa4='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x3a7042(_0x445ec8){var _0x15c74a=crypto['createHash']('sha1');_0x15c74a['update'](_0x445ec8);return _0x15c74a[_0xcbde('0x6')](_0xcbde('0x7'));}function _0x2ac976(){try{logger[_0xcbde('0x8')](_0xcbde('0x9'));var _0x1f4980=moment()[_0xcbde('0xa')]();var _0x30069b=_0x3a7042(_0x1f4980+_0x583b69+_0x346879);_0xcd1993[_0xcbde('0xb')](JSON['stringify']({'appID':_0x583b69,'timestamp':_0x1f4980,'appKey':_0x30069b}));var _0x319ec5=fs[_0xcbde('0xc')](_0x281e9f);_0x319ec5['on']('data',function(_0x263603){_0xcd1993[_0xcbde('0xb')](_0x263603);});_0x319ec5['on']('close',function(){_0xcd1993['send']('EOS');});}catch(_0x4aaf4e){logger['error'](_0xcbde('0xd'),JSON[_0xcbde('0xe')](_0x4aaf4e));_0xcd1993[_0xcbde('0xf')]();}}function _0x4f1e1b(_0x1c8d1f){try{if(_0x1c8d1f){var _0x43a65e=JSON[_0xcbde('0x10')](_0x1c8d1f);switch(_0x43a65e[_0xcbde('0x11')]){case 0x0:if(_0x43a65e[_0xcbde('0x12')]){if(_0x43a65e[_0xcbde('0x12')][_0xcbde('0x13')]){logger[_0xcbde('0x8')](_0xcbde('0x14'),JSON['stringify'](_0x43a65e[_0xcbde('0x12')][_0xcbde('0x15')]));_0x318e5d=_0x43a65e['result'][_0xcbde('0x15')][0x0]['transcript'];_0xb7f98=_0x43a65e[_0xcbde('0x12')]['hypotheses'][0x0][_0xcbde('0x16')];_0x256c83='0';_0x2ecaa4=_0xcbde('0x17');_0xcd1993[_0xcbde('0xf')]();}}break;case 0x1:logger[_0xcbde('0x8')](_0xcbde('0x18'));_0x256c83='1';_0x2ecaa4='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';break;case 0x2:logger[_0xcbde('0x8')](_0xcbde('0x19'));_0x256c83='2';_0x2ecaa4=_0xcbde('0x19');break;case 0x9:logger[_0xcbde('0x8')](_0xcbde('0x1a'));_0x256c83='9';_0x2ecaa4=_0xcbde('0x1a');break;case 0xa:logger[_0xcbde('0x8')]('Authentication\x20failed.');_0x256c83='10';_0x2ecaa4='Authentication\x20failed.';break;case 0xb:logger[_0xcbde('0x8')](_0xcbde('0x1b'));_0x256c83='11';_0x2ecaa4='All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.';}}}catch(_0x2151b6){logger[_0xcbde('0x1c')](_0xcbde('0x1d'),JSON[_0xcbde('0xe')](_0x2151b6));_0xcd1993[_0xcbde('0xf')]();}}function _0x52e23f(){logger['info']('Close\x20Tilde\x20ASR\x20socket');_0x41f11b({'transcript':_0x318e5d,'confidence':_0xb7f98,'status':_0x256c83,'status_message':_0x2ecaa4});}function _0x2f8fac(_0x11c117){logger[_0xcbde('0x1c')](_0xcbde('0x1e'));if(!_['isNil'](_0x11c117)){logger[_0xcbde('0x1c')](_[_0xcbde('0x1f')](_0x11c117)?JSON[_0xcbde('0xe')](_0x11c117):_0x11c117);}}_0xcd1993['on'](_0xcbde('0x20'),_0x2ac976);_0xcd1993['on'](_0xcbde('0x21'),_0x4f1e1b);_0xcd1993['on']('close',_0x52e23f);_0xcd1993['on'](_0xcbde('0x1c'),_0x2f8fac);});};