15 from threading
import Lock
17 from mycroft
import dialog
25 from mycroft.util import create_daemon, wait_for_exit_signal, \
36 LOG.info(
"Begin Recording...")
37 bus.emit(
Message(
'recognizer_loop:record_begin'))
41 LOG.info(
"End Recording...")
42 bus.emit(
Message(
'recognizer_loop:record_end'))
46 LOG.debug(
"Notifying enclosure of no internet connection")
47 bus.emit(
Message(
'enclosure.notify.no_internet'))
51 """ Forward mycroft.awoken to the messagebus. """ 52 LOG.info(
"Listener is now Awake: ")
53 bus.emit(
Message(
'mycroft.awoken'))
57 LOG.info(
"Wakeword Detected: " + event[
'utterance'])
58 bus.emit(
Message(
'recognizer_loop:wakeword', event))
62 LOG.info(
"Utterance: " + str(event[
'utterances']))
63 context = {
'client_name':
'mycroft_listener'}
65 ident = event.pop(
'ident')
66 context[
'ident'] = ident
67 bus.emit(
Message(
'recognizer_loop:utterance', event, context))
71 bus.emit(
Message(
'mycroft.speech.recognition.unknown'))
76 Forward speak message to message bus. 78 bus.emit(
Message(
'speak', event))
82 LOG.info(
"Failed to find intent.")
83 data = {
'utterance': dialog.get(
'not.loaded')}
84 bus.emit(
Message(
'speak', data))
105 Query microphone mute status. 107 data = {
'muted': loop.is_muted()}
108 bus.emit(event.response(data))
112 IdentityManager.update(event.data)
119 if config.get(
"listener").
get(
"mute_during_output"):
125 Request unmute, if more sources have requested the mic to be muted 126 it will remain muted. 128 if config.get(
"listener").
get(
"mute_during_output"):
134 Handler for mycroft.stop, i.e. button press 152 Configuration.init(bus)
153 config = Configuration.get()
157 loop.on(
'recognizer_loop:utterance', handle_utterance)
158 loop.on(
'recognizer_loop:speech.recognition.unknown', handle_unknown)
159 loop.on(
'speak', handle_speak)
160 loop.on(
'recognizer_loop:record_begin', handle_record_begin)
161 loop.on(
'recognizer_loop:awoken', handle_awoken)
162 loop.on(
'recognizer_loop:wakeword', handle_wakeword)
163 loop.on(
'recognizer_loop:record_end', handle_record_end)
164 loop.on(
'recognizer_loop:no_internet', handle_no_internet)
167 bus.on(
'open', handle_open)
168 bus.on(
'complete_intent_failure', handle_complete_intent_failure)
169 bus.on(
'recognizer_loop:sleep', handle_sleep)
170 bus.on(
'recognizer_loop:wake_up', handle_wake_up)
171 bus.on(
'mycroft.mic.mute', handle_mic_mute)
172 bus.on(
'mycroft.mic.unmute', handle_mic_unmute)
173 bus.on(
'mycroft.mic.get_status', handle_mic_get_status)
174 bus.on(
"mycroft.paired", handle_paired)
175 bus.on(
'recognizer_loop:audio_output_start', handle_audio_start)
176 bus.on(
'recognizer_loop:audio_output_end', handle_audio_end)
177 bus.on(
'mycroft.stop', handle_stop)
185 if __name__ ==
"__main__":
def create_daemon(target, args=(), kwargs=None)
def handle_record_begin()
def handle_audio_start(event)
def handle_audio_end(event)
def handle_complete_intent_failure(event)
def wait_for_exit_signal()
def handle_mic_unmute(event)
def handle_mic_get_status(event)
def reset_sigint_handler()
def handle_wake_up(event)
def handle_mic_mute(event)
def handle_wakeword(event)
def handle_utterance(event)
def get(phrase, lang=None, context=None)