Beispiel #1
0
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))
Beispiel #2
0
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()
Beispiel #4
0
 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()
Beispiel #6
0
 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)
Beispiel #7
0
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)
Beispiel #8
0
def listen():
    pixel_ring.listen()
Beispiel #9
0
 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)
Beispiel #12
0
def detected_callback():
    snowboydecoder_arecord.play_audio_file
    pixel_ring.listen()
Beispiel #13
0
 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)
Beispiel #15
0
 def wakeup(self) -> None:
     """Show wakeup interaction."""
     pixel_ring.listen()