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 _0xf1ef=['message','bluebird','lodash','moment','../../../../../../config/logger','agi','exports','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','digest','Open\x20Tilde\x20ASR\x20socket','unix','send','createReadStream','close','EOS','error','Tilde\x20ASR\x20send\x20error','stringify','parse','status','result','final','hypotheses','transcript','likelihood','Success.','terminate','info','Not\x20available.\x20Max\x20load\x20limit\x20reached.','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','isNil','isObject','open'];(function(_0x4854d6,_0x2f1264){var _0x3885c0=function(_0x4d564d){while(--_0x4d564d){_0x4854d6['push'](_0x4854d6['shift']());}};_0x3885c0(++_0x2f1264);}(_0xf1ef,0x141));var _0xff1e=function(_0x39e3b7,_0x14e80d){_0x39e3b7=_0x39e3b7-0x0;var _0xf02968=_0xf1ef[_0x39e3b7];return _0xf02968;};'use strict';var BPromise=require(_0xff1e('0x0'));var _=require(_0xff1e('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xff1e('0x2'));var crypto=require('crypto');var logger=require(_0xff1e('0x3'))(_0xff1e('0x4'));module[_0xff1e('0x5')]=function(_0x50a5fd,_0x20751d,_0x431472,_0x291e5b){return new BPromise(function(_0x5377c6,_0x123fa3){logger['info'](_0xff1e('0x6'),_0x291e5b||_0xff1e('0x7'));var _0x408616=new WebSocket(_0x291e5b||_0xff1e('0x7'),{'perMessageDeflate':![]});var _0x22394d='';var _0x48a7fd='0';var _0x42642d='1';var _0x5766cf=_0xff1e('0x8');function _0x5668d5(_0x1434d9){var _0x4e96cd=crypto[_0xff1e('0x9')](_0xff1e('0xa'));_0x4e96cd['update'](_0x1434d9);return _0x4e96cd[_0xff1e('0xb')]('hex');}function _0xa562b6(){try{logger['info'](_0xff1e('0xc'));var _0x8c26e5=moment()[_0xff1e('0xd')]();var _0x2617f2=_0x5668d5(_0x8c26e5+_0x20751d+_0x431472);_0x408616[_0xff1e('0xe')](JSON['stringify']({'appID':_0x20751d,'timestamp':_0x8c26e5,'appKey':_0x2617f2}));var _0x467fc8=fs[_0xff1e('0xf')](_0x50a5fd);_0x467fc8['on']('data',function(_0x476d2c){_0x408616['send'](_0x476d2c);});_0x467fc8['on'](_0xff1e('0x10'),function(){_0x408616[_0xff1e('0xe')](_0xff1e('0x11'));});}catch(_0x19cd6c){logger[_0xff1e('0x12')](_0xff1e('0x13'),JSON[_0xff1e('0x14')](_0x19cd6c));_0x408616['terminate']();}}function _0x1019ef(_0x8d926d){try{if(_0x8d926d){var _0x3e883d=JSON[_0xff1e('0x15')](_0x8d926d);switch(_0x3e883d[_0xff1e('0x16')]){case 0x0:if(_0x3e883d['result']){if(_0x3e883d[_0xff1e('0x17')][_0xff1e('0x18')]){logger['info']('Tilde\x20ASR\x20hypoteses',JSON[_0xff1e('0x14')](_0x3e883d[_0xff1e('0x17')][_0xff1e('0x19')]));_0x22394d=_0x3e883d[_0xff1e('0x17')][_0xff1e('0x19')][0x0][_0xff1e('0x1a')];_0x48a7fd=_0x3e883d[_0xff1e('0x17')][_0xff1e('0x19')][0x0][_0xff1e('0x1b')];_0x42642d='0';_0x5766cf=_0xff1e('0x1c');_0x408616[_0xff1e('0x1d')]();}}break;case 0x1:logger[_0xff1e('0x1e')]('No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech');_0x42642d='1';_0x5766cf='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';break;case 0x2:logger[_0xff1e('0x1e')]('Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.');_0x42642d='2';_0x5766cf='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger[_0xff1e('0x1e')](_0xff1e('0x1f'));_0x42642d='9';_0x5766cf='Not\x20available.\x20Max\x20load\x20limit\x20reached.';break;case 0xa:logger[_0xff1e('0x1e')]('Authentication\x20failed.');_0x42642d='10';_0x5766cf='Authentication\x20failed.';break;case 0xb:logger[_0xff1e('0x1e')](_0xff1e('0x20'));_0x42642d='11';_0x5766cf=_0xff1e('0x20');}}}catch(_0x4532fb){logger[_0xff1e('0x12')](_0xff1e('0x21'),JSON[_0xff1e('0x14')](_0x4532fb));_0x408616[_0xff1e('0x1d')]();}}function _0x1e9127(){logger['info'](_0xff1e('0x22'));_0x5377c6({'transcript':_0x22394d,'confidence':_0x48a7fd,'status':_0x42642d,'status_message':_0x5766cf});}function _0x24c2fc(_0x4ba49f){logger['error'](_0xff1e('0x23'));if(!_[_0xff1e('0x24')](_0x4ba49f)){logger[_0xff1e('0x12')](_[_0xff1e('0x25')](_0x4ba49f)?JSON['stringify'](_0x4ba49f):_0x4ba49f);}}_0x408616['on'](_0xff1e('0x26'),_0xa562b6);_0x408616['on'](_0xff1e('0x27'),_0x1019ef);_0x408616['on'](_0xff1e('0x10'),_0x1e9127);_0x408616['on'](_0xff1e('0x12'),_0x24c2fc);});};