PageSourceSearch

https://briangrant.org/wp-content/plugins/universal-voice-search/js/uvs.text-library.js?ver=1790578263

js briangrant.org collected 2026-09-28 08:16:06 UTC 7,526 bytes, 161 lines download raw bytes

1// *****************************************************************************************************
2// *******              speak2web UNIVERSAL VOICE SEARCH                                    ***********
3// *******               AI Service requires subcriptions                                    ***********
4// *******               Get your subscription at                                            ***********
5// *******                    https://speak2web.com/plugin#plans                             ***********
6// *******               Need support? https://speak2web.com/support                         ***********
7// *******               Licensed GPLv2+                                                     ***********
8//******************************************************************************************************
9
10
11//####################################
12// PLUGIN LANGUAGE
13//####################################
14var uvsTypeOfSelectedLanguage = (typeof (vs.uvsSelectedLanguage) != 'undefined' && vs.uvsSelectedLanguage !== null) ? vs.uvsSelectedLanguage.trim() : 'English';
15var uvsSelectedLang = (typeof (vs.uvsSelectedLanguage) != 'undefined' && vs.uvsSelectedLanguage !== null) ? vs.uvsSelectedLanguage.trim() : 'en-US';
16
17var uvsIsSttLangCtx = typeof _uvsSttLanguageContext != 'undefined' && !!_uvsSttLanguageContext && _uvsSttLanguageContext instanceof Object ? true : false;
18var uvsSttLanguageContext = {
19    'gcp': {
20        'stt': null,
21        'langCode': null,
22        'endPoint': null,
23        'key': null,
24        'qs': { 'key': null }
25    }
26}
27
28if (uvsIsSttLangCtx === true) {
29    //###############################
30    // GCP
31    //###############################
32    let gcp = 'gcp' in _uvsSttLanguageContext && _uvsSttLanguageContext['gcp'] instanceof Object ? _uvsSttLanguageContext['gcp'] : {};
33    uvsSttLanguageContext['gcp']['stt'] = 'stt' in gcp && gcp['stt'] == 'Y' ? true : false;
34
35    if (!!uvsSttLanguageContext['gcp']['stt']) {
36        uvsSttLanguageContext['gcp']['endPoint'] = 'endPoint' in gcp && typeof gcp['endPoint'] != 'undefined' && !!gcp['endPoint'] ? gcp['endPoint'] : null;
37        uvsSttLanguageContext['gcp']['key'] = 'key' in gcp && typeof gcp['key'] != 'undefined' && !!gcp['key'] ? gcp['key'] : null;
38        uvsSttLanguageContext['gcp']['langCode'] = 'langCode' in gcp && typeof gcp['langCode'] != 'undefined' && !!gcp['langCode'] ? gcp['langCode'] : null;
39
40        let qs = 'qs' in gcp && gcp['qs'] instanceof Object ? gcp['qs'] : {};
41        uvsSttLanguageContext['gcp']['qs']['key'] = 'key' in qs && typeof qs['key'] != 'undefined' && !!qs['key'] ? qs['key'] : null;
42    }
43}
44
45//####################################
46// CLIENT INFO
47//####################################
48let uvsNavigator = { 'navigatorUserAgent': navigator.userAgent.toLowerCase(), 'navigatorPlatform': navigator.platform };
49var uvsClientInfo = {
50    'chrome': uvsNavigator.navigatorUserAgent.indexOf('chrome') > -1,
51    'firefox': uvsNavigator.navigatorUserAgent.indexOf('firefox') > -1,
52    'edge': uvsNavigator.navigatorUserAgent.indexOf('edge') > -1 || uvsNavigator.navigatorUserAgent.indexOf('edg') > -1,
53    'ie': uvsNavigator.navigatorUserAgent.indexOf('msie') > -1 || uvsNavigator.navigatorUserAgent.indexOf('trident') > -1,
54    'opera': uvsNavigator.navigatorUserAgent.indexOf('opera') > -1 || uvsNavigator.navigatorUserAgent.indexOf('opr') > -1,
55
56    'ios': !!uvsNavigator.navigatorPlatform && /iPad|iPhone|iPod/.test(uvsNavigator.navigatorPlatform),
57    'android': uvsNavigator.navigatorUserAgent.indexOf("android") > -1,
58    'windows': uvsNavigator.navigatorUserAgent.indexOf("windows") > -1,
59    'linux': uvsNavigator.navigatorUserAgent.indexOf("linux") > -1,
60
61    'macSafari': uvsNavigator.navigatorUserAgent.indexOf('mac') > -1 && uvsNavigator.navigatorUserAgent.indexOf('safari') > -1 && uvsNavigator.navigatorUserAgent.indexOf('chrome') === -1,
62    'iosSafari': this.ios === true && uvsNavigator.navigatorUserAgent.indexOf('safari') > -1,
63};
64
65if (uvsClientInfo['chrome'] === true && (uvsClientInfo['opera'] === true || uvsClientInfo['edge'] === true)) {
66    uvsClientInfo['chrome'] = false;
67}
68
69/**
70 * Path map for audio files of short phrases
71 * 
72 */
73var uvsAudioShortPharasesPaths = {
74    'root': 'short_phrases/',
75    'voice': uvsSelectedLang + '/',
76    'random': 'random/',
77    'general': 'general/',
78    'getRandomVoicesPath': function () {
79        return this.root + this.random + this.voice + uvsSelectedLang + '_';
80    },
81    'getGeneralVoicesPath': function () {
82        return this.root + this.general + this.voice + uvsSelectedLang + '_';
83    }
84}
85
86let uvsRandomShortPhrasePath = uvsAudioShortPharasesPaths.getRandomVoicesPath();
87let uvsGeneralShortPhrasePath = uvsAudioShortPharasesPaths.getGeneralVoicesPath();
88let uvsSilenceSoundPath = uvsAudioShortPharasesPaths.root + 'silence.mp3';
89
90/**
91 * Alternative response audio files to be played/spoken
92 *
93 */
94var uvsAlternativeResponse = {
95    /**
96     * Text in audio file: Let me search it
97     */
98    'basic': uvsGeneralShortPhrasePath + "basic.mp3",
99    /**
100     * Text in audio file: I am sorry but I am unable to access your microphone, Please connect a microphone or you can also type your question if needed
101     */
102    'micConnect': uvsGeneralShortPhrasePath + "mic_connect.mp3",
103    /**
104     * Text in audio file: Voice search is currently unavailable, Please try again after some time
105     */
106    'unavailable': uvsGeneralShortPhrasePath + "unavailable.mp3",
107    /**
108     * Text in audio file: I am unable to hear you
109     */
110    'notAudible': uvsGeneralShortPhrasePath + "not_audible.mp3",
111    'randomLib': [
112        /**
113         * Text in audio file: Just a second please
114         */
115        uvsRandomShortPhrasePath + "0.mp3",
116        /**
117         * Text in audio file: I am on it
118         */
119        uvsRandomShortPhrasePath + "1.mp3",
120        /**
121         * Text in audio file: No problem
122         */
123        uvsRandomShortPhrasePath + "2.mp3",
124        /**
125         * Text in audio file: Just a moment, I need a brief rest
126         */
127        uvsRandomShortPhrasePath + "3.mp3",
128        /**
129         * Text in audio file: You seem to work too hard, Get your self a coffee and I will find it up for you
130         */
131        uvsRandomShortPhrasePath + "4.mp3",
132        /**
133         * Text in audio file: Coming right up
134         */
135        uvsRandomShortPhrasePath + "5.mp3",
136        /**
137         * Text in audio file: I will do my best
138         */
139        uvsRandomShortPhrasePath + "6.mp3",
140        /**
141         * Text in audio file: Anything for you. I will get right on it
142         */
143        uvsRandomShortPhrasePath + "7.mp3",
144        /**
145         * Text in audio file: Working on it, One moment please
146         */
147        uvsRandomShortPhrasePath + "8.mp3",
148        /**
149         * Text in audio file: Beep - Beep - Beep, just kidding, One moment please
150         */
151        uvsRandomShortPhrasePath + "9.mp3"
152    ],
153};
154
155var uvsMessages = _uvsTextPhrases['uvsMessages'];
156var uvsErrorLibrary = _uvsTextPhrases['uvsErrorLibrary'];
157var uvsWidgetMessages = _uvsTextPhrases['uvsWidgetMessages'];
158
159var uvsIsMuteSimon = typeof vs._uvsMuteAudioPhrases != 'undefined' && !!vs._uvsMuteAudioPhrases && vs._uvsMuteAudioPhrases == 'yes' ? true : false;
160var uvsIsSingleClick = typeof vs._uvsSingleClick != 'undefined' && !!vs._uvsSingleClick && vs._uvsSingleClick == 'yes' ? true : false;
161var uvsIsElementor = typeof vs._uvsElementor != 'undefined' && !!vs._uvsElementor && vs._uvsElementor == 'yes' ? true : false;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.