def process_event(event): """Pretty prints events. Prints all events that occur with two spaces between each new conversation and a single space between turns of a conversation. Args: event(event.Event): The current event to process. """ print("event:" + str(event)) if event.type == EventType.ON_CONVERSATION_TURN_STARTED: subprocess.Popen( ["aplay", "/home/pi/piassistant/src/sample-audio/Fb.wav"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) pixel_ring.listen() if event.type == EventType.ON_RESPONDING_STARTED: pixel_ring.speak() if event.type == EventType.ON_RESPONDING_FINISHED or event.type == EventType.ON_CONVERSATION_TURN_TIMEOUT or event.type == EventType.ON_NO_RESPONSE: pixel_ring.off() if event.type == EventType.ON_END_OF_UTTERANCE: pixel_ring.think() if (event.type == EventType.ON_CONVERSATION_TURN_FINISHED and event.args and not event.args['with_follow_on_turn']): pixel_ring.off() if event.type == EventType.ON_DEVICE_ACTION: for command, params in event.actions: print('Do command', command, 'with params', str(params))
def task(quit_event): #mic = Microphone(quit_event=quit_event) mic_index = None for i, microphone_name in enumerate(Microphone.list_microphone_names()): if 'seeed' in microphone_name: mic_index = i print("Using microphone {}".format(microphone_name)) break if not mic_index: print("Could not find a proper microphone") exit() with Microphone(device_index=mic_index) as mic: recognizer = Recognizer() while not quit_event.is_set(): pixel_ring.off() print("Listening for keyword") data = recognizer.listen(source=mic) kw_text = recognizer.recognize_sphinx(data) print("Heard '{}' while listening for keyword".format(kw_text)) if kw_text == name: print('Wake up') pixel_ring.listen() data = recognizer.listen(mic) pixel_ring.think() text = recognizer.recognize_sphinx(data) print('Done listening') pixel_ring.off() if text: print('Recognized {}'.format(text)) tts.say(text)
def listen(self, duration=9, timeout=3): vad.reset() self.listen_countdown[0] = (duration * self.sample_rate + self.frames_per_buffer - 1) / self.frames_per_buffer self.listen_countdown[1] = (timeout * self.sample_rate + self.frames_per_buffer - 1) / self.frames_per_buffer self.listen_queue.queue.clear() self.status |= self.listening_mask self.start() pixel_ring.listen() logger.info('Start listening') def _listen(): try: data = self.listen_queue.get(timeout=timeout) while data and not self.quit_event.is_set(): yield data data = self.listen_queue.get(timeout=timeout) except Queue.Empty: pass self.stop() return _listen()
def on_listening(self): print("===== on_listening =====") if self.state != 'detected': print('pointing to last dir...') pixel_ring.wakeup(self.last_dir) print("") self.state = 'listening' pixel_ring.listen()
def on_listening(): global state global last_dir print("===== on_listening =====\r\n") if state != 'detected': print('The last dir is {}'.format(last_dir)) pixel_ring.wakeup(last_dir) state = 'listening' pixel_ring.listen()
def _proc_audio(self, recog, audio): txt = recog.recognize_sphinx(audio) if txt == self.name: try: self.stop() tts.say(get_greeting()) pixel_ring.listen() cmd_aud = recog.listen(self.mic, timeout=10) except speech_recognition.WaitTimeoutError: pixel_ring.off() return pixel_ring.think() cmd_txt = recog.recognize_sphinx(cmd_aud)
def task(quit_event): with Microphone(device_index=mic_index, quit_event=quit_event) as mic: recognizer = Recognizer() while not quit_event.is_set(): pixel_ring.off() print("Listening for keyword") data = recognizer.listen(source=mic) kw_text = recognizer.recognize_sphinx(data) print("Heard '{}' while listening for keyword".format(kw_text)) if kw_text == name: print('Wake up') pixel_ring.listen() data = recognizer.listen(mic) pixel_ring.think() text = recognizer.recognize_sphinx(data) print('Done listening') pixel_ring.off() if text: print('Recognized {}'.format(text)) tts.say(text)
def listen(): pixel_ring.listen()
def handle_listener_started(self, message): """Light up LED when listening""" pixel_ring.set_color_palette(self.main_blue, self.main_blue) pixel_ring.listen()
def handle_listener_wakeup(self, message): self.log.info("Pixel Ring: Wakeup") pixel_ring.listen()
en.write(0) pixel_ring.set_brightness(20) if __name__ == '__main__': while True: try: print 'wake up state' pixel_ring.wakeup(0) time.sleep(3) print 'think state' pixel_ring.think() time.sleep(3) print 'speak state' pixel_ring.speak() time.sleep(6) print 'listen state' pixel_ring.listen() time.sleep(3) print 'off state' pixel_ring.off() time.sleep(3) except KeyboardInterrupt: break pixel_ring.off() time.sleep(1) en.write(1)
def detected_callback(): snowboydecoder_arecord.play_audio_file pixel_ring.listen()
def handler_record_begin(self, message): # code to excecute when recognizer_loop:record_begin message detected... self.log.info("listening") pixel_ring.listen()
def handle_listener_wakeup(self, message): pixel_ring.listen() pixel_ring.set_vad_led(2)
def wakeup(self) -> None: """Show wakeup interaction.""" pixel_ring.listen()