-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjquery-speechreconize.js
61 lines (53 loc) · 1.12 KB
/
jquery-speechreconize.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
(function($)
{
$.fn.SpeechReconize = function(SENTENCES, WORDS, sentence)
{
return analyzeSentence(SENTENCES, WORDS, sentence);
}
function analyzeSentence(SENTENCES, WORDS, sentence)
{
var words = sentence.toLowerCase().replace("'", ' ').split(' ');
var s;
s = wordsRecognizing(WORDS, words).join(' ');
for (var key in SENTENCES)
{
var sentence = SENTENCES[key];
var m = s.match(sentence.text);
if (m != null && m.length >= 1)
{
sentence.action(m);
return s;
}
}
}
function wordsRecognizing(WORDS, words)
{
var results = [];
for (var key in words)
{
var wType = wordRecognizing(WORDS, words[key]);
if (wType != null)
results.push(wType);
}
return results;
}
function wordRecognizing(WORDS, word)
{
for (var type in WORDS)
{
var wordsValues = WORDS[type];
if ($.isArray(wordsValues))
{
if ($.inArray(word, wordsValues) != -1)
return type;
}
else
{
for (var value in wordsValues)
if ($.inArray(word, wordsValues[value]) != -1)
return value;
}
}
return null;
}
}(jQuery));