From e270249eaf3f2966acaec7370e3f5cca24ec0d06 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Mon, 14 Nov 2022 11:32:24 -0700 Subject: [PATCH] mapping --- snowboy-2022/main.go | 2 +- snowboy-2022/pyautogui.sh | 75 +++++++++++++++++++++++++++++++++++++ snowboy-2022/pyautogui.yaml | 1 + 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 snowboy-2022/pyautogui.sh create mode 100644 snowboy-2022/pyautogui.yaml diff --git a/snowboy-2022/main.go b/snowboy-2022/main.go index 0f3606d..980550b 100644 --- a/snowboy-2022/main.go +++ b/snowboy-2022/main.go @@ -100,7 +100,7 @@ func main() { for _, modelStr := range strings.Split(*models, ",") { d.HandleFunc(snowboy.NewHotword(path.Dir(modelStr), float32(*sensitivity)), func(string) { if !*quiet { - log.Println("GOTCHA!") + log.Println(path.Base(modelStr)) } fmt.Println(path.Base(modelStr)) }) diff --git a/snowboy-2022/pyautogui.sh b/snowboy-2022/pyautogui.sh new file mode 100644 index 0000000..8744d0a --- /dev/null +++ b/snowboy-2022/pyautogui.sh @@ -0,0 +1,75 @@ +#! /bin/bash + +main() { + if [ ! -e /tmp/stt.fifo ]; then + mkfifo /tmp/stt.fifo + fi + + cleanup() { + killall -9 $(jobs -p) + } + trap cleanup EXIT + + echo starting in + for ((i=3; i>0; i--)); do + echo "...$i..." + sleep 1 + done + + local models=($( + cat pyautogui.yaml \ + | gojq -r -c --yaml-input ' + to_entries[] | "model/"+.key+".pmdl/"+.key + ' \ + | tr '\n' ',' \ + | sed 's/,$//' + )) + echo models=$models + + ./snowboy -s .5 -r resources.res -ms $models "$@" > /tmp/stt.fifo & + + python3 -c ' +import pyautogui +import time + +keys = set() + +def press(key): + hold(key) + time.sleep(0.25) + release(key) + +def hold(key): + global keys + keys.add(key) + pyautogui.keyDown(key) + +def release(key): + pyautogui.keyUp(key) + +def release_all(): + global keys + for key in keys: + release(key) + keys = set() + +def main(): + with open("/tmp/stt.fifo", "r") as q: + for line in q: + handle(line.strip()) + +import yaml +mapping = yaml.safe_load(open("./pyautogui.yaml", "r")) +print(mapping) + +def handle(cmd): + global mapping + press(mapping.get(cmd)) + +main() + ' +} + +if [ "$0" == "$BASH_SOURCE" ]; then + main "$@" +fi diff --git a/snowboy-2022/pyautogui.yaml b/snowboy-2022/pyautogui.yaml new file mode 100644 index 0000000..5044cf0 --- /dev/null +++ b/snowboy-2022/pyautogui.yaml @@ -0,0 +1 @@ +up: w