Built motion from commit 9d0783e6.|2.6.13
[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 _0x8b31=['status','result','final','hypotheses','transcript','likelihood','terminate','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','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','message','bluebird','lodash','moment','../../../../../../config/logger','agi','exports','info','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','update','digest','hex','send','stringify','data','close','error','Tilde\x20ASR\x20send\x20error'];(function(_0x5e4563,_0x3ff918){var _0x8d1bf5=function(_0x3bf7a9){while(--_0x3bf7a9){_0x5e4563['push'](_0x5e4563['shift']());}};_0x8d1bf5(++_0x3ff918);}(_0x8b31,0xa2));var _0x18b3=function(_0x6e07b,_0x54a6a1){_0x6e07b=_0x6e07b-0x0;var _0x4488d4=_0x8b31[_0x6e07b];return _0x4488d4;};'use strict';var BPromise=require(_0x18b3('0x0'));var _=require(_0x18b3('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x18b3('0x2'));var crypto=require('crypto');var logger=require(_0x18b3('0x3'))(_0x18b3('0x4'));module[_0x18b3('0x5')]=function(_0x21bd7b,_0x2a1f2c,_0x457fdc,_0x34187d){return new BPromise(function(_0x2153da,_0x5a7060){logger[_0x18b3('0x6')](_0x18b3('0x7'),_0x34187d||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE');var _0x46330b=new WebSocket(_0x34187d||_0x18b3('0x8'),{'perMessageDeflate':![]});var _0x747b7a='';var _0x31094f='0';var _0x345c17='1';var _0x1acfb2='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0xcd12c7(_0x53cd67){var _0x14e350=crypto['createHash']('sha1');_0x14e350[_0x18b3('0x9')](_0x53cd67);return _0x14e350[_0x18b3('0xa')](_0x18b3('0xb'));}function _0xefcebc(){try{logger['info']('Open\x20Tilde\x20ASR\x20socket');var _0x29076e=moment()['unix']();var _0x4a6b71=_0xcd12c7(_0x29076e+_0x2a1f2c+_0x457fdc);_0x46330b[_0x18b3('0xc')](JSON[_0x18b3('0xd')]({'appID':_0x2a1f2c,'timestamp':_0x29076e,'appKey':_0x4a6b71}));var _0xaddd98=fs['createReadStream'](_0x21bd7b);_0xaddd98['on'](_0x18b3('0xe'),function(_0x44e145){_0x46330b[_0x18b3('0xc')](_0x44e145);});_0xaddd98['on'](_0x18b3('0xf'),function(){_0x46330b[_0x18b3('0xc')]('EOS');});}catch(_0x2d931c){logger[_0x18b3('0x10')](_0x18b3('0x11'),JSON['stringify'](_0x2d931c));_0x46330b['terminate']();}}function _0x25fd7b(_0x494d8d){try{if(_0x494d8d){var _0x3671fa=JSON['parse'](_0x494d8d);switch(_0x3671fa[_0x18b3('0x12')]){case 0x0:if(_0x3671fa['result']){if(_0x3671fa[_0x18b3('0x13')][_0x18b3('0x14')]){logger[_0x18b3('0x6')]('Tilde\x20ASR\x20hypoteses',JSON[_0x18b3('0xd')](_0x3671fa[_0x18b3('0x13')]['hypotheses']));_0x747b7a=_0x3671fa[_0x18b3('0x13')][_0x18b3('0x15')][0x0][_0x18b3('0x16')];_0x31094f=_0x3671fa[_0x18b3('0x13')][_0x18b3('0x15')][0x0][_0x18b3('0x17')];_0x345c17='0';_0x1acfb2='Success.';_0x46330b[_0x18b3('0x18')]();}}break;case 0x1:logger['info'](_0x18b3('0x19'));_0x345c17='1';_0x1acfb2=_0x18b3('0x19');break;case 0x2:logger[_0x18b3('0x6')]('Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.');_0x345c17='2';_0x1acfb2=_0x18b3('0x1a');break;case 0x9:logger[_0x18b3('0x6')](_0x18b3('0x1b'));_0x345c17='9';_0x1acfb2=_0x18b3('0x1b');break;case 0xa:logger[_0x18b3('0x6')](_0x18b3('0x1c'));_0x345c17='10';_0x1acfb2='Authentication\x20failed.';break;case 0xb:logger['info'](_0x18b3('0x1d'));_0x345c17='11';_0x1acfb2=_0x18b3('0x1d');}}}catch(_0xe4a12f){logger[_0x18b3('0x10')](_0x18b3('0x1e'),JSON['stringify'](_0xe4a12f));_0x46330b[_0x18b3('0x18')]();}}function _0x6ebe4a(){logger['info'](_0x18b3('0x1f'));_0x2153da({'transcript':_0x747b7a,'confidence':_0x31094f,'status':_0x345c17,'status_message':_0x1acfb2});}function _0x366e0c(_0x417b08){logger[_0x18b3('0x10')](_0x18b3('0x20'));if(!_[_0x18b3('0x21')](_0x417b08)){logger[_0x18b3('0x10')](_[_0x18b3('0x22')](_0x417b08)?JSON[_0x18b3('0xd')](_0x417b08):_0x417b08);}}_0x46330b['on']('open',_0xefcebc);_0x46330b['on'](_0x18b3('0x23'),_0x25fd7b);_0x46330b['on'](_0x18b3('0xf'),_0x6ebe4a);_0x46330b['on'](_0x18b3('0x10'),_0x366e0c);});};