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()
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()
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)
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()
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']
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
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)
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)
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)