Exemplo n.º 1
0
 def startup(self):
     """Startup of the LED pixel ring."""
     LOG.debug("[Respeaker4Mic] Start LED pixel ring.")
     self.power.on()
     pixel_ring.set_brightness(10)
     pixel_ring.change_pattern(self.pattern)
     pixel_ring.wakeup()
Exemplo n.º 2
0
 def initialize(self):
     self.log.info("Pixel Ring: Initializing")
     self.power = LED(5)
     self.power.on()
     pixel_ring.set_brightness(10)
     pixel_ring.change_pattern('echo')
     pixel_ring.wakeup()
     self.enable()
 def initialize(self):
     self.log.info("Pixel Ring: Initializing")
     self.power = LED(5)
     self.power.on()
     pixel_ring.set_brightness(10)
     pattern = self.settings.get("theme", "mytheme1")
     pixel_ring.change_pattern(pattern)
     self.log.info(
         f"Pixel Ring Pattern - Input: {pattern} - Actual: {pixel_ring.pattern}"
     )
     pixel_ring.wakeup()
     self.enable()
Exemplo n.º 4
0
def main(options):
    """
    Main function, starts the logic based on parameters.
    """
    LOGGER.debug("Options: %s", options)
    # start LED ring
    power = LED(5)
    power.on()
    pixel_ring.set_brightness(options.led_brightness)
    pixel_ring.change_pattern(options.led_pattern)
    # subscribe topics
    start_subscribe(options)
Exemplo n.º 5
0
def main():
    if len(sys.argv) < 2:
        print("Error: need to specify sensitivity")
        print("Usage: python main.py 0.36")
        sys.exit(-1)

    #pixel_ring
    en = mraa.Gpio(12)

    if os.geteuid() != 0:
        time.sleep(1)

    en.dir(mraa.DIR_OUT)
    en.write(0)

    pixel_ring.set_brightness(20)
    pixel_ring.change_pattern('echo')

    files = os.listdir("./res/*.*mdl")
    models = files

    sensitivity = sys.argv[1] * models.count()
    # capture SIGINT signal, e.g., Ctrl+C
    signal.signal(signal.SIGINT, signal_handler)

    detector = snowboydecoder_arecord.HotwordDetector(models, sensitivity=sensitivity, audio_gain=2)
    print('Listening... Press Ctrl+C to exit')

    # main loop
    detector.start(detected_callback=detected_callback,
                   interrupt_check=interrupt_callback,
                   sleep_time=0.03)

    pixel_ring.off()
    time.sleep(1)
    en.write(1)
    detector.terminate()
Exemplo n.º 6
0
path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
if not path in sys.path:
    sys.path.insert(1, path)

print("path: {}".format(sys.path))
# LED imports
import time
from pixel_ring import pixel_ring
from gpiozero import LED
import numpy as np
# Initalize LEDS
power = LED(5)
power.on()

pixel_ring.set_brightness(20)
pixel_ring.change_pattern('echo')
pixel_ring.wakeup()


import pyaudio
import _thread
from time import sleep
from array import array
import RPi.GPIO as GPIO
import time
import requests

from watchdog.observers import Observer  
from watcher import MyHandler

iftttkey = os.environ['IFTTTKEY']
Exemplo n.º 7
0

def has_ssid():
    f = open("/etc/wpa_supplicant/wpa_supplicant.conf", "r")
    for line in f.readlines():
        if 'ssid="' in line:
            return True
    return False


if __name__ == "__main__":
    power = LED(5)
    power.on()

    pixel_ring.set_brightness(20)
    pixel_ring.change_pattern("echo")

    try:
        start()
        time.sleep(1)

        if has_ssid():
            if is_connected():
                ok()
            else:
                error()
        else:
            waiting()
            time.sleep(12)
    except KeyboardInterrupt:
        pass
Exemplo n.º 8
0
After finding the keyword, Direction Of Arrival (DOA) is estimated.

The hardware is respeaker 4 mic array for raspberry pi:
    https://www.seeedstudio.com/ReSpeaker-Mic-Array-Far-field-w--7-PDM-Microphones--p-2719.html
"""

import time
from voice_engine.source import Source
from voice_engine.kws import KWS
from voice_engine.doa_respeaker_4mic_array import DOA
from voice_engine.delay_sum import DelaySum
from pixel_ring import pixel_ring
from pixel_ring.echo import Pattern
from gpiozero import LED

pixel_ring.change_pattern(Pattern)
power = LED(5)
power.on()

max_offset = int(16000 * 0.081 / 340)


def main():
    src = Source(rate=16000, frames_size=320, channels=4)
    ds = DelaySum(channels=4,
                  frames_size=src.frames_size,
                  max_offset=max_offset)
    kws = KWS()
    doa = DOA(rate=16000, chunks=20)

    src.link(ds)
Exemplo n.º 9
0
def main():
    logging.basicConfig(level=logging.DEBUG)
    #logging.getLogger('avs.alexa').setLevel(logging.INFO)
    logging.getLogger('hpack.hpack').setLevel(logging.INFO)

    en = mraa.Gpio(12)
    if os.geteuid() != 0:
        time.sleep(1)
    en.dir(mraa.DIR_OUT)
    en.write(0)

    src = RespeakerdSource()
    alexa = Alexa()

    src.link(alexa)

    pixel_ring.change_pattern('echo')
    pixel_ring.think()

    state = 'thinking'
    last_dir = 0

    def on_ready():
        global state
        print("===== on_ready =====\r\n")
        state = 'off'
        pixel_ring.off()
        src.on_cloud_ready()

    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 on_speaking():
        global state
        print("===== on_speaking =====\r\n")
        state = 'speaking'
        src.on_speak()
        pixel_ring.speak()

    def on_thinking():
        global state
        print("===== on_thinking =====\r\n")
        state = 'thinking'
        src.stop_capture()
        pixel_ring.think()

    def on_off():
        global state
        print("===== on_off =====\r\n")
        state = 'off'
        pixel_ring.off()

    def on_detected(dir, index):
        global state
        global last_dir
        logging.info('detected hotword:{} at {}`'.format(index, dir))
        state = 'detected'
        last_dir = (dir + 360 - 60) % 360
        pixel_ring.wakeup(last_dir)
        alexa.listen()

    def on_vad():
        # when someone is talking
        # print("."),
        # sys.stdout.flush()
        global last_dir
        pixel_ring.wakeup(last_dir)

    def on_silence():
        # when it is silent
        pixel_ring.off()

    def on_doa(dir):
        global last_dir
        last_dir = (dir + 360 - 60) % 360
        # pixel_ring.wakeup(last_dir)

    alexa.state_listener.on_listening = on_listening
    alexa.state_listener.on_thinking = on_thinking
    alexa.state_listener.on_speaking = on_speaking
    alexa.state_listener.on_finished = on_off
    alexa.state_listener.on_ready = on_ready

    src.set_callback(on_detected)
    src.set_doa_callback(on_doa)
    src.set_vad_callback(on_vad)
    src.set_silence_callback(on_silence)

    src.recursive_start()

    is_quit = threading.Event()

    def signal_handler(signal, frame):
        print('Quit')
        is_quit.set()

    signal.signal(signal.SIGINT, signal_handler)

    while not is_quit.is_set():
        try:
            time.sleep(1)
        except SyntaxError:
            pass
        except NameError:
            pass

    src.recursive_stop()

    en.write(1)
Exemplo n.º 10
0
import time
import argparse
from pixel_ring import pixel_ring
from gpiozero import LED


parser = argparse.ArgumentParser(description='Light ring demo')
parser.add_argument('--theme', type=str, required=False, default='echo', choices=['echo', 'google', 'mytheme1', '1'])

power = LED(5)
power.on()


theme = parser.parse_args().theme
pixel_ring.change_pattern(theme)
pixel_ring.set_brightness(10)
t = 5
while True:
    try:
        print("wakeup")
        pixel_ring.wakeup()
        time.sleep(t)
        print("listening")
        pixel_ring.listen()
        time.sleep(t)
        print("thinking")
        pixel_ring.think()
        time.sleep(t)
        print("speaking")
        pixel_ring.speak()
        time.sleep(t)