This repository has been archived by the owner on Jun 23, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplay_sense.py
104 lines (88 loc) · 2.02 KB
/
play_sense.py
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
from sense_hat import SenseHat
import threading
from tfvoicepi import classify, voicecmd
import mic_pi as mic
sense = SenseHat()
X = [255, 0, 0]
_ = [0, 0, 0]
UNKNOWN = [
_, _, _, X, X, _, _, _,
_, _, X, _, _, X, _, _,
_, _, _, _, _, X, _, _,
_, _, _, _, X, _, _, _,
_, _, _, X, _, _, _, _,
_, _, _, X, _, _, _, _,
_, _, _, _, _, _, _, _,
_, _, _, X, _, _, _, _
]
ARR_RIGHT = [
_, _, _, _, X, _, _, _,
_, _, _, _, _, X, _, _,
_, _, _, _, _, _, X, _,
_, _, _, _, _, _, _, X,
_, _, _, _, _, _, _, X,
_, _, _, _, _, _, X, _,
_, _, _, _, _, X, _, _,
_, _, _, _, X, _, _, _
]
ARR_UP = [
_, _, _, X, X, _, _, _,
_, _, X, _, _, X, _, _,
_, X, _, _, _, _, X, _,
X, _, _, _, _, _, _, X,
_, _, _, _, _, _, _, _,
_, _, _, _, _, _, _, _,
_, _, _, _, _, _, _, _,
_, _, _, _, _, _, _, _
]
ARR_LEFT = [
_, _, _, X, _, _, _, _,
_, _, X, _, _, _, _, _,
_, X, _, _, _, _, _, _,
X, _, _, _, _, _, _, _,
X, _, _, _, _, _, _, _,
_, X, _, _, _, _, _, _,
_, _, X, _, _, _, _, _,
_, _, _, X, _, _, _, _
]
ARR_DOWN = [
_, _, _, _, _, _, _, _,
_, _, _, _, _, _, _, _,
_, _, _, _, _, _, _, _,
_, _, _, _, _, _, _, _,
X, _, _, _, _, _, _, X,
_, X, _, _, _, _, X, _,
_, _, X, _, _, X, _, _,
_, _, _, X, X, _, _, _
]
def draw(sprite):
sense.set_pixels(sprite)
timer = threading.Timer(0.8, sense.clear)
timer.start()
draw(ARR_UP)
classifier = classify.Classifier()
max_silence = \
voicecmd.calibrate_silence(
mic.get_mic_data(),
classifier)
threshold = max_silence * 4
simple_stream = \
voicecmd.get_labels_batched(
mic.get_mic_data_async(),
classifier,
threshold,
5)
sprites = {
"_unknown_": UNKNOWN,
"left": ARR_LEFT,
"right": ARR_RIGHT,
"up": ARR_UP,
"down": ARR_DOWN
}
for idx, score, label in simple_stream:
if idx == 0:
print(".")
continue
print label
sprite = sprites.get(label, UNKNOWN)
draw(sprite)