121ce8b54fd3c8a4de74219c8fbad316742a3784
[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 _0xb0d8=['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','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','error','isObject','open','bluebird','lodash','moment','crypto','../../../../../../config/logger','agi','exports','info','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','sha1','update','digest','hex','Open\x20Tilde\x20ASR\x20socket','send','createReadStream','data','close','EOS','stringify','terminate','parse','status','result','final','Tilde\x20ASR\x20hypoteses','hypotheses','likelihood','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.'];(function(_0x187ee1,_0x3fd1e6){var _0x388160=function(_0x542dd2){while(--_0x542dd2){_0x187ee1['push'](_0x187ee1['shift']());}};_0x388160(++_0x3fd1e6);}(_0xb0d8,0x168));var _0x8b0d=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0xb0d8[_0x40a045];return _0x1a687c;};'use strict';var BPromise=require(_0x8b0d('0x0'));var _=require(_0x8b0d('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x8b0d('0x2'));var crypto=require(_0x8b0d('0x3'));var logger=require(_0x8b0d('0x4'))(_0x8b0d('0x5'));module[_0x8b0d('0x6')]=function(_0x31496c,_0x5da93c,_0x28ad5a,_0x370bda){return new BPromise(function(_0x1aad51,_0x122dca){logger[_0x8b0d('0x7')]('Tilde\x20URI',_0x370bda||_0x8b0d('0x8'));var _0x495ce4=new WebSocket(_0x370bda||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE',{'perMessageDeflate':![]});var _0xd46dfa='';var _0x5944be='0';var _0x7ebc4a='1';var _0x5cba0a='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x4ada24(_0x218cfd){var _0x9d6109=crypto['createHash'](_0x8b0d('0x9'));_0x9d6109[_0x8b0d('0xa')](_0x218cfd);return _0x9d6109[_0x8b0d('0xb')](_0x8b0d('0xc'));}function _0x756f3b(){try{logger[_0x8b0d('0x7')](_0x8b0d('0xd'));var _0x167eda=moment()['unix']();var _0x34ace9=_0x4ada24(_0x167eda+_0x5da93c+_0x28ad5a);_0x495ce4[_0x8b0d('0xe')](JSON['stringify']({'appID':_0x5da93c,'timestamp':_0x167eda,'appKey':_0x34ace9}));var _0x3d7869=fs[_0x8b0d('0xf')](_0x31496c);_0x3d7869['on'](_0x8b0d('0x10'),function(_0x1d9ab2){_0x495ce4[_0x8b0d('0xe')](_0x1d9ab2);});_0x3d7869['on'](_0x8b0d('0x11'),function(){_0x495ce4[_0x8b0d('0xe')](_0x8b0d('0x12'));});}catch(_0x7bd669){logger['error']('Tilde\x20ASR\x20send\x20error',JSON[_0x8b0d('0x13')](_0x7bd669));_0x495ce4[_0x8b0d('0x14')]();}}function _0x496648(_0x1eb688){try{if(_0x1eb688){var _0x353215=JSON[_0x8b0d('0x15')](_0x1eb688);switch(_0x353215[_0x8b0d('0x16')]){case 0x0:if(_0x353215[_0x8b0d('0x17')]){if(_0x353215[_0x8b0d('0x17')][_0x8b0d('0x18')]){logger[_0x8b0d('0x7')](_0x8b0d('0x19'),JSON['stringify'](_0x353215[_0x8b0d('0x17')][_0x8b0d('0x1a')]));_0xd46dfa=_0x353215['result']['hypotheses'][0x0]['transcript'];_0x5944be=_0x353215['result'][_0x8b0d('0x1a')][0x0][_0x8b0d('0x1b')];_0x7ebc4a='0';_0x5cba0a='Success.';_0x495ce4[_0x8b0d('0x14')]();}}break;case 0x1:logger['info']('No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech');_0x7ebc4a='1';_0x5cba0a=_0x8b0d('0x1c');break;case 0x2:logger[_0x8b0d('0x7')](_0x8b0d('0x1d'));_0x7ebc4a='2';_0x5cba0a='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger[_0x8b0d('0x7')](_0x8b0d('0x1e'));_0x7ebc4a='9';_0x5cba0a=_0x8b0d('0x1e');break;case 0xa:logger['info'](_0x8b0d('0x1f'));_0x7ebc4a='10';_0x5cba0a=_0x8b0d('0x1f');break;case 0xb:logger[_0x8b0d('0x7')](_0x8b0d('0x20'));_0x7ebc4a='11';_0x5cba0a=_0x8b0d('0x20');}}}catch(_0x5e06b9){logger['error'](_0x8b0d('0x21'),JSON[_0x8b0d('0x13')](_0x5e06b9));_0x495ce4[_0x8b0d('0x14')]();}}function _0x3be36f(){logger[_0x8b0d('0x7')](_0x8b0d('0x22'));_0x1aad51({'transcript':_0xd46dfa,'confidence':_0x5944be,'status':_0x7ebc4a,'status_message':_0x5cba0a});}function _0x1e5313(_0x2424b2){logger['error'](_0x8b0d('0x23'));if(!_['isNil'](_0x2424b2)){logger[_0x8b0d('0x24')](_[_0x8b0d('0x25')](_0x2424b2)?JSON[_0x8b0d('0x13')](_0x2424b2):_0x2424b2);}}_0x495ce4['on'](_0x8b0d('0x26'),_0x756f3b);_0x495ce4['on']('message',_0x496648);_0x495ce4['on'](_0x8b0d('0x11'),_0x3be36f);_0x495ce4['on'](_0x8b0d('0x24'),_0x1e5313);});};