diff --git a/eye_keyboard/components/phrase.py b/eye_keyboard/components/phrase.py index 28f1c32..fe390cf 100644 --- a/eye_keyboard/components/phrase.py +++ b/eye_keyboard/components/phrase.py @@ -1,3 +1,5 @@ +# encoding: utf8 + import pygame as pg from hashlib import md5 @@ -32,6 +34,7 @@ def read(self): file_path = join('/', 'tmp', file_name) with open(file_path, 'w') as f: params = st.VOCALWARE_PARAMS + self.text = 'espaço' params[st.VOCALWARE_TXT] = self.text checksum = md5(st.VOCALWARE_MD5_KEY.format(**params)).hexdigest() params[st.VOCALWARE_CHECKSUM] = checksum diff --git a/eye_keyboard/components/table.py b/eye_keyboard/components/table.py index ffdcfce..f65b6ed 100644 --- a/eye_keyboard/components/table.py +++ b/eye_keyboard/components/table.py @@ -1,3 +1,5 @@ +# encoding: utf8 + import pygame as pg from collections import defaultdict @@ -62,11 +64,11 @@ class Table(object): SPACE = 'ESPACO' LABELS = [ - ['A', 'B', 'C', 'D', 'E', 'F', ''], + ['A', 'B', 'C', 'D', 'E', 'F', SPACE], ['G', 'H', 'I', 'J', 'K', 'L', 'M'], ['N', 'O', 'P', 'Q', 'R', 'S', ''], ['T', 'U', 'V', 'W', 'X', 'Y', 'Z'], - [SPACE, ERASE, CLEAN, READ, ALERT, QUIT, ''] + [ERASE, CLEAN, READ, ALERT, QUIT, '', ''] ] def __init__(self): diff --git a/eye_keyboard/control.py b/eye_keyboard/control.py index 965d2c6..5d10d31 100644 --- a/eye_keyboard/control.py +++ b/eye_keyboard/control.py @@ -15,8 +15,7 @@ class Control(object): - THINK_TIME = 3.0 - CAPTURE_TIME = 2.5 + THINK_TIME = 2.5 def __init__(self, tracker): self.row_num = 0 @@ -26,7 +25,7 @@ def __init__(self, tracker): self.num_frames = 0 self.press_enter = False self.done = False - self.wait_time = self.CAPTURE_TIME + self.wait_time = self.THINK_TIME self.tracker = tracker self.eye_threshold = tracker.settings[st.PUPIL_POSITION][1] self.screen = self._init_screen() @@ -45,6 +44,7 @@ def start(self): self._wait_loop() if self.press_enter or self._move_eyes_upwards(): self._execute_choice() + self._wait_loop(capture=False) else: self._move_table_forward() @@ -54,19 +54,40 @@ def _play_step_sound(self): file_name = '{}.wav'.format(self.row_num + 1) file_path = join(sound_dir, 'numbers', file_name) else: - letter = self.table.cells[self.row_num][self.col_num].label.lower() - if not letter or letter not in lowercase: + label = self.table.cells[self.row_num][self.col_num].label.lower() + if not label: + return + if label == 'voltar': + file_name = 'voltar.mp3' + file_path = join(sound_dir, file_name) + elif label == 'som': + file_name = 'som.mp3' + file_path = join(sound_dir, file_name) + elif label == 'sair': + file_name = 'sair.mp3' + file_path = join(sound_dir, file_name) + elif label == 'limpar': + file_name = 'limpar.mp3' + file_path = join(sound_dir, file_name) + elif label == 'ler': + file_name = 'ler.mp3' + file_path = join(sound_dir, file_name) + elif label == 'espaco': + file_name = 'espaco.mp3' + file_path = join(sound_dir, file_name) + elif label in lowercase: + file_name = '{}.mp3'.format(label) + file_path = join(sound_dir, 'letters', file_name) + else: return - file_name = '{}.wav'.format(letter) - file_path = join(sound_dir, 'letters', file_name) pg.mixer.music.load(file_path) pg.mixer.music.play() - def _wait_loop(self): + def _wait_loop(self, capture=True): last_time = time() while (time() - last_time) < self.wait_time: self._update_table() - self._update_eye_preview() + self._update_eye_preview(capture) self._redraw_screen() self._event_loop() @@ -78,10 +99,11 @@ def _update_table(self): if self.col_num == -1 or col_num == self.col_num: item.active = True - def _update_eye_preview(self): + def _update_eye_preview(self, capture): result = self.tracker.give_me_all(pupilrect=True) - self.sum_pupil_y += self.tracker.settings[st.PUPIL_POSITION][1] - self.num_frames += 1 + if capture: + self.sum_pupil_y += self.tracker.settings[st.PUPIL_POSITION][1] + self.num_frames += 1 self.eye_preview.update( snapshot=result[0], pupil_pos=self.tracker.settings[st.PUPIL_POSITION], @@ -100,6 +122,7 @@ def _event_loop(self): if event.type == pg.KEYDOWN: if pg.key.name(event.key) == 'return': self.press_enter = True + print 'ENTER' if pg.key.name(event.key) == 'escape': self.done = True @@ -107,6 +130,7 @@ def _move_eyes_upwards(self): avg_pupil_y = self.sum_pupil_y / self.num_frames self.sum_pupil_y = 0.0 self.num_frames = 0 + print avg_pupil_y, self.eye_threshold return avg_pupil_y <= self.eye_threshold def _move_table_forward(self): @@ -117,7 +141,6 @@ def _move_table_forward(self): if self.col_num == self.table.num_cols: self.row_num = 0 self.col_num = -1 - print self.row_num, self.col_num def _execute_choice(self): if self.col_num == -1: diff --git a/resources/sounds/espaco.mp3 b/resources/sounds/espaco.mp3 new file mode 100644 index 0000000..b7384b1 Binary files /dev/null and b/resources/sounds/espaco.mp3 differ diff --git a/resources/sounds/ler.mp3 b/resources/sounds/ler.mp3 new file mode 100644 index 0000000..020dcbf Binary files /dev/null and b/resources/sounds/ler.mp3 differ diff --git a/resources/sounds/letters/a.wav b/resources/sounds/letters (copy)/a.wav similarity index 100% rename from resources/sounds/letters/a.wav rename to resources/sounds/letters (copy)/a.wav diff --git a/resources/sounds/letters/b.wav b/resources/sounds/letters (copy)/b.wav similarity index 100% rename from resources/sounds/letters/b.wav rename to resources/sounds/letters (copy)/b.wav diff --git a/resources/sounds/letters/c.wav b/resources/sounds/letters (copy)/c.wav similarity index 100% rename from resources/sounds/letters/c.wav rename to resources/sounds/letters (copy)/c.wav diff --git a/resources/sounds/letters/d.wav b/resources/sounds/letters (copy)/d.wav similarity index 100% rename from resources/sounds/letters/d.wav rename to resources/sounds/letters (copy)/d.wav diff --git a/resources/sounds/letters/e.wav b/resources/sounds/letters (copy)/e.wav similarity index 100% rename from resources/sounds/letters/e.wav rename to resources/sounds/letters (copy)/e.wav diff --git a/resources/sounds/letters/f.wav b/resources/sounds/letters (copy)/f.wav similarity index 100% rename from resources/sounds/letters/f.wav rename to resources/sounds/letters (copy)/f.wav diff --git a/resources/sounds/letters/g.wav b/resources/sounds/letters (copy)/g.wav similarity index 100% rename from resources/sounds/letters/g.wav rename to resources/sounds/letters (copy)/g.wav diff --git a/resources/sounds/letters/h.wav b/resources/sounds/letters (copy)/h.wav similarity index 100% rename from resources/sounds/letters/h.wav rename to resources/sounds/letters (copy)/h.wav diff --git a/resources/sounds/letters/i.wav b/resources/sounds/letters (copy)/i.wav similarity index 100% rename from resources/sounds/letters/i.wav rename to resources/sounds/letters (copy)/i.wav diff --git a/resources/sounds/letters/j.wav b/resources/sounds/letters (copy)/j.wav similarity index 100% rename from resources/sounds/letters/j.wav rename to resources/sounds/letters (copy)/j.wav diff --git a/resources/sounds/letters/k.wav b/resources/sounds/letters (copy)/k.wav similarity index 100% rename from resources/sounds/letters/k.wav rename to resources/sounds/letters (copy)/k.wav diff --git a/resources/sounds/letters/l.wav b/resources/sounds/letters (copy)/l.wav similarity index 100% rename from resources/sounds/letters/l.wav rename to resources/sounds/letters (copy)/l.wav diff --git a/resources/sounds/letters/m.wav b/resources/sounds/letters (copy)/m.wav similarity index 100% rename from resources/sounds/letters/m.wav rename to resources/sounds/letters (copy)/m.wav diff --git a/resources/sounds/letters/n.wav b/resources/sounds/letters (copy)/n.wav similarity index 100% rename from resources/sounds/letters/n.wav rename to resources/sounds/letters (copy)/n.wav diff --git a/resources/sounds/letters/o.wav b/resources/sounds/letters (copy)/o.wav similarity index 100% rename from resources/sounds/letters/o.wav rename to resources/sounds/letters (copy)/o.wav diff --git a/resources/sounds/letters/p.wav b/resources/sounds/letters (copy)/p.wav similarity index 100% rename from resources/sounds/letters/p.wav rename to resources/sounds/letters (copy)/p.wav diff --git a/resources/sounds/letters/q.wav b/resources/sounds/letters (copy)/q.wav similarity index 100% rename from resources/sounds/letters/q.wav rename to resources/sounds/letters (copy)/q.wav diff --git a/resources/sounds/letters/r.wav b/resources/sounds/letters (copy)/r.wav similarity index 100% rename from resources/sounds/letters/r.wav rename to resources/sounds/letters (copy)/r.wav diff --git a/resources/sounds/letters/s.wav b/resources/sounds/letters (copy)/s.wav similarity index 100% rename from resources/sounds/letters/s.wav rename to resources/sounds/letters (copy)/s.wav diff --git a/resources/sounds/letters/t.wav b/resources/sounds/letters (copy)/t.wav similarity index 100% rename from resources/sounds/letters/t.wav rename to resources/sounds/letters (copy)/t.wav diff --git a/resources/sounds/letters/u.wav b/resources/sounds/letters (copy)/u.wav similarity index 100% rename from resources/sounds/letters/u.wav rename to resources/sounds/letters (copy)/u.wav diff --git a/resources/sounds/letters/v.wav b/resources/sounds/letters (copy)/v.wav similarity index 100% rename from resources/sounds/letters/v.wav rename to resources/sounds/letters (copy)/v.wav diff --git a/resources/sounds/letters/w.wav b/resources/sounds/letters (copy)/w.wav similarity index 100% rename from resources/sounds/letters/w.wav rename to resources/sounds/letters (copy)/w.wav diff --git a/resources/sounds/letters/x.wav b/resources/sounds/letters (copy)/x.wav similarity index 100% rename from resources/sounds/letters/x.wav rename to resources/sounds/letters (copy)/x.wav diff --git a/resources/sounds/letters/y.wav b/resources/sounds/letters (copy)/y.wav similarity index 100% rename from resources/sounds/letters/y.wav rename to resources/sounds/letters (copy)/y.wav diff --git a/resources/sounds/letters/z.wav b/resources/sounds/letters (copy)/z.wav similarity index 100% rename from resources/sounds/letters/z.wav rename to resources/sounds/letters (copy)/z.wav diff --git a/resources/sounds/letters/a.mp3 b/resources/sounds/letters/a.mp3 new file mode 100644 index 0000000..62b5e3f Binary files /dev/null and b/resources/sounds/letters/a.mp3 differ diff --git a/resources/sounds/letters/b.mp3 b/resources/sounds/letters/b.mp3 new file mode 100644 index 0000000..cb479e8 Binary files /dev/null and b/resources/sounds/letters/b.mp3 differ diff --git a/resources/sounds/letters/c.mp3 b/resources/sounds/letters/c.mp3 new file mode 100644 index 0000000..1f4ef4f Binary files /dev/null and b/resources/sounds/letters/c.mp3 differ diff --git a/resources/sounds/letters/d.mp3 b/resources/sounds/letters/d.mp3 new file mode 100644 index 0000000..0d961c7 Binary files /dev/null and b/resources/sounds/letters/d.mp3 differ diff --git a/resources/sounds/letters/e.mp3 b/resources/sounds/letters/e.mp3 new file mode 100644 index 0000000..e0088f2 Binary files /dev/null and b/resources/sounds/letters/e.mp3 differ diff --git a/resources/sounds/letters/f.mp3 b/resources/sounds/letters/f.mp3 new file mode 100644 index 0000000..efbabb3 Binary files /dev/null and b/resources/sounds/letters/f.mp3 differ diff --git a/resources/sounds/letters/g.mp3 b/resources/sounds/letters/g.mp3 new file mode 100644 index 0000000..1a6b9d9 Binary files /dev/null and b/resources/sounds/letters/g.mp3 differ diff --git a/resources/sounds/letters/h.mp3 b/resources/sounds/letters/h.mp3 new file mode 100644 index 0000000..c1f172f Binary files /dev/null and b/resources/sounds/letters/h.mp3 differ diff --git a/resources/sounds/letters/i.mp3 b/resources/sounds/letters/i.mp3 new file mode 100644 index 0000000..558057b Binary files /dev/null and b/resources/sounds/letters/i.mp3 differ diff --git a/resources/sounds/letters/j.mp3 b/resources/sounds/letters/j.mp3 new file mode 100644 index 0000000..f93ad55 Binary files /dev/null and b/resources/sounds/letters/j.mp3 differ diff --git a/resources/sounds/letters/k.mp3 b/resources/sounds/letters/k.mp3 new file mode 100644 index 0000000..1f4a66c Binary files /dev/null and b/resources/sounds/letters/k.mp3 differ diff --git a/resources/sounds/letters/l.mp3 b/resources/sounds/letters/l.mp3 new file mode 100644 index 0000000..2ccd07b Binary files /dev/null and b/resources/sounds/letters/l.mp3 differ diff --git a/resources/sounds/letters/m.mp3 b/resources/sounds/letters/m.mp3 new file mode 100644 index 0000000..ae21733 Binary files /dev/null and b/resources/sounds/letters/m.mp3 differ diff --git a/resources/sounds/letters/n.mp3 b/resources/sounds/letters/n.mp3 new file mode 100644 index 0000000..295a4d8 Binary files /dev/null and b/resources/sounds/letters/n.mp3 differ diff --git a/resources/sounds/letters/o.mp3 b/resources/sounds/letters/o.mp3 new file mode 100644 index 0000000..01c18e3 Binary files /dev/null and b/resources/sounds/letters/o.mp3 differ diff --git a/resources/sounds/letters/p.mp3 b/resources/sounds/letters/p.mp3 new file mode 100644 index 0000000..9487931 Binary files /dev/null and b/resources/sounds/letters/p.mp3 differ diff --git a/resources/sounds/letters/q.mp3 b/resources/sounds/letters/q.mp3 new file mode 100644 index 0000000..8a7e6c6 Binary files /dev/null and b/resources/sounds/letters/q.mp3 differ diff --git a/resources/sounds/letters/r.mp3 b/resources/sounds/letters/r.mp3 new file mode 100644 index 0000000..ce9a757 Binary files /dev/null and b/resources/sounds/letters/r.mp3 differ diff --git a/resources/sounds/letters/s.mp3 b/resources/sounds/letters/s.mp3 new file mode 100644 index 0000000..7fbe082 Binary files /dev/null and b/resources/sounds/letters/s.mp3 differ diff --git a/resources/sounds/letters/t.mp3 b/resources/sounds/letters/t.mp3 new file mode 100644 index 0000000..bd6927a Binary files /dev/null and b/resources/sounds/letters/t.mp3 differ diff --git a/resources/sounds/letters/u.mp3 b/resources/sounds/letters/u.mp3 new file mode 100644 index 0000000..4659793 Binary files /dev/null and b/resources/sounds/letters/u.mp3 differ diff --git a/resources/sounds/letters/v.mp3 b/resources/sounds/letters/v.mp3 new file mode 100644 index 0000000..8b7e395 Binary files /dev/null and b/resources/sounds/letters/v.mp3 differ diff --git a/resources/sounds/letters/w.mp3 b/resources/sounds/letters/w.mp3 new file mode 100644 index 0000000..0edd0ca Binary files /dev/null and b/resources/sounds/letters/w.mp3 differ diff --git a/resources/sounds/letters/x.mp3 b/resources/sounds/letters/x.mp3 new file mode 100644 index 0000000..e002797 Binary files /dev/null and b/resources/sounds/letters/x.mp3 differ diff --git a/resources/sounds/letters/y.mp3 b/resources/sounds/letters/y.mp3 new file mode 100644 index 0000000..aee7c29 Binary files /dev/null and b/resources/sounds/letters/y.mp3 differ diff --git a/resources/sounds/letters/z.mp3 b/resources/sounds/letters/z.mp3 new file mode 100644 index 0000000..0ee374f Binary files /dev/null and b/resources/sounds/letters/z.mp3 differ diff --git a/resources/sounds/limpar.mp3 b/resources/sounds/limpar.mp3 new file mode 100644 index 0000000..c33d90a Binary files /dev/null and b/resources/sounds/limpar.mp3 differ diff --git a/resources/sounds/sair.mp3 b/resources/sounds/sair.mp3 new file mode 100644 index 0000000..5e51603 Binary files /dev/null and b/resources/sounds/sair.mp3 differ diff --git a/resources/sounds/som.mp3 b/resources/sounds/som.mp3 new file mode 100644 index 0000000..6e8d1df Binary files /dev/null and b/resources/sounds/som.mp3 differ