-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhark.js
78 lines (75 loc) · 1.5 KB
/
hark.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
module.exports = {
name: "hark",
ns: "webrtc",
description: "Hark",
phrases: {
active: "Harking"
},
ports: {
input: {
stream: {
title: "Stream",
type: "HTMLElement",
description: "e.g. document.querySelector('audio')",
required: true
}
},
output: {
stream: {
title: "Stream",
type: "HTMLElement"
},
speaking: {
title: "Speaking",
type: "HTMLElement"
},
silence: {
title: "Silence",
type: "HTMLelement"
},
volume: {
title: "volume",
type: "number"
},
threshold: {
title: "Treshold",
type: "number"
}
}
},
dependencies: {
npm: {
hark: require('hark')
}
},
fn: function hark(input, $, output, state, done, cb, on, hark) {
var r = function() {
var speechEvents = hark($.stream);
output({
stream: $.get('stream')
});
speechEvents.on('speaking', function() {
output({
speaking: $.get('stream')
});
});
speechEvents.on('volume_change', function(volume, threshold) {
output({
volume: $.create(volume),
threshold: $.create(threshold)
});
});
speechEvents.on('stopped_speaking', function() {
output({
silence: $.get('stream')
});
});
}.call(this);
return {
output: output,
state: state,
on: on,
return: r
};
}
}