Merge pull request #576 from forslund/expect_response
Add expect_response option to speak_methodspull/589/head
commit
0fe6ee65e0
|
@ -27,7 +27,7 @@ from mycroft.identity import IdentityManager
|
|||
from mycroft.messagebus.client.ws import WebsocketClient
|
||||
from mycroft.messagebus.message import Message
|
||||
from mycroft.tts import TTSFactory
|
||||
from mycroft.util import kill, play_wav, resolve_resource_file
|
||||
from mycroft.util import kill, play_wav, resolve_resource_file, create_signal
|
||||
from mycroft.util.log import getLogger
|
||||
|
||||
logger = getLogger("SpeechClient")
|
||||
|
@ -89,6 +89,7 @@ def handle_multi_utterance_intent_failure(event):
|
|||
|
||||
def handle_speak(event):
|
||||
utterance = event.data['utterance']
|
||||
expect_response = event.data.get('expect_response', False)
|
||||
|
||||
# This is a bit of a hack for Picroft. The analog audio on a Pi blocks
|
||||
# for 30 seconds fairly often, so we don't want to break on periods
|
||||
|
@ -106,6 +107,9 @@ def handle_speak(event):
|
|||
else:
|
||||
mute_and_speak(utterance)
|
||||
|
||||
if expect_response:
|
||||
create_signal('buttonPress')
|
||||
|
||||
|
||||
def handle_sleep(event):
|
||||
loop.sleep()
|
||||
|
|
|
@ -263,10 +263,13 @@ class MycroftSkill(object):
|
|||
re.compile(regex_str) # validate regex
|
||||
self.emitter.emit(Message('register_vocab', {'regex': regex_str}))
|
||||
|
||||
def speak(self, utterance):
|
||||
self.emitter.emit(Message("speak", {'utterance': utterance}))
|
||||
def speak(self, utterance, expect_response=False):
|
||||
data = {'utterance': utterance,
|
||||
'expect_response': expect_response}
|
||||
self.emitter.emit(Message("speak", data))
|
||||
|
||||
def speak_dialog(self, key, data={}):
|
||||
def speak_dialog(self, key, data={}, expect_response=False):
|
||||
data['expect_response'] = expect_response
|
||||
self.speak(self.dialog_renderer.render(key, data))
|
||||
|
||||
def init_dialog(self, root_directory):
|
||||
|
|
Loading…
Reference in New Issue