Skip to content
This repository was archived by the owner on Sep 8, 2024. It is now read-only.

Commit 083bda8

Browse files
isaacnwardethanaward
authored andcommitted
Issues/122 (#220)
* added mouth spelling * spell word after talking * removed speech to test * test * re-added speech * used emitter * mycroft/skills/spelling/__init__.py * emitters 102: intermediate emitters * emitters 103: importing the right method * trying enclosure methods * more fixing * sorry slack * added brief pause * added api listener method * fixed syntax * further edited syntax * slightly changed syntax * added brief pause before listener reactivation * changed ordering * testing method * further tests * test test test * logger * further logger * altered logic * i really need to fork * more debug * changed boolean logic * more debug * fixed it?? * added brief pause again * final commit * test * test * fixed it * sleep * more testing * stuff * added constants: * pep8
1 parent df2cb5f commit 083bda8

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

mycroft/client/enclosure/api.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,7 @@ def mouth_smile(self):
8888
def mouth_text(self, text=""):
8989
self.client.emit(
9090
Message("enclosure.mouth.text", metadata={'text': text}))
91+
92+
def activate_mouth_listeners(self, active):
93+
msg = Message('enclosure.mouth.listeners', metadata={'active': active})
94+
self.client.emit(msg)

mycroft/client/enclosure/enclosure.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
from mycroft.messagebus.message import Message
3131
from mycroft.util import kill
3232
from mycroft.util.log import getLogger
33-
from mycroft.skills.volume import VolumeSkill
3433

3534
__author__ = 'aatchison + jdorleans'
3635

@@ -171,8 +170,17 @@ def __init_serial(self):
171170

172171
def __register_events(self):
173172
self.client.on('mycroft.paired', self.__update_events)
173+
self.client.on('enclosure.mouth.listeners', self.__mouth_listeners)
174174
self.__register_mouth_events()
175175

176+
def __mouth_listeners(self, event=None):
177+
if event and event.metadata:
178+
active = event.metadata['active']
179+
if active:
180+
self.__register_mouth_events()
181+
else:
182+
self.__remove_mouth_events()
183+
176184
def __register_mouth_events(self):
177185
self.client.on('recognizer_loop:record_begin', self.mouth.listen)
178186
self.client.on('recognizer_loop:record_end', self.mouth.reset)
@@ -186,7 +194,6 @@ def __remove_mouth_events(self):
186194
self.mouth.talk)
187195
self.client.remove('recognizer_loop:audio_output_end',
188196
self.mouth.reset)
189-
self.mouth.reset()
190197

191198
def __update_events(self, event=None):
192199
if event and event.metadata:

mycroft/skills/spelling/__init__.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
from os.path import dirname, join
2020

21+
import time
22+
2123
from adapt.intent import IntentBuilder
2224
from mycroft.skills.core import MycroftSkill
2325

@@ -26,6 +28,9 @@
2628

2729
# TODO - Localization
2830
class SpellingSkill(MycroftSkill):
31+
SEC_PER_LETTER = 5.0 / 7.0
32+
LETTERS_PER_SCREEN = 7.0
33+
2934
def __init__(self):
3035
super(SpellingSkill, self).__init__(name="SpellingSkill")
3136

@@ -46,8 +51,14 @@ def __register_prefixed_regex(self, prefixes, suffix_regex):
4651

4752
def handle_intent(self, message):
4853
word = message.metadata.get("Word")
54+
self.emitter.once("recognizer_loop:audio_output_start",
55+
self.enclosure.mouth_text(word))
4956
spelled_word = ', '.join(word).lower()
57+
self.enclosure.activate_mouth_listeners(False)
5058
self.speak(spelled_word)
59+
time.sleep((self.LETTERS_PER_SCREEN + len(word)) * self.SEC_PER_LETTER)
60+
self.enclosure.activate_mouth_listeners(True)
61+
self.enclosure.mouth_reset()
5162

5263
def stop(self):
5364
pass

0 commit comments

Comments
 (0)