yaml good

master
Bel LaPointe 2022-11-14 12:51:33 -07:00
parent e270249eaf
commit 6fdb4356e7
10 changed files with 52 additions and 29 deletions

View File

@ -17,21 +17,25 @@ if ! docker images | grep snowboy-pmdl.*latest &> /dev/null; then
popd popd
fi fi
export HOTWORD="${HOTWORD:-default_hotword}" export HOTWORD="${HOTWORD:-${TRAIN:-default_hotword}}"
if [ -n "$TRAIN" ] || [ ! -d ./model ] || [ ! -f ./model/$HOTWORD.pmdl ]; then if [ -n "$TRAIN" ] || [ ! -d ./model ] || [ ! -f ./model/$HOTWORD.pmdl ]; then
mkdir -p model mkdir -p model
pushd model pushd model
rm -f ./record{1,2,3}.wav || true
echo "record 3 instances of '$HOTWORD'" >&2 echo "record 3 instances of '$HOTWORD'" >&2
for i in 1 2 3; do for i in 1 2 3; do
read -p "ready? ctrl-c when done" read -p "[$i/3] ready? you get 3 seconds."
rec \ (
timeout 3 rec \
-r 16000 \ -r 16000 \
-c 1 \ -c 1 \
-b 16 \ -b 16 \
-e signed-integer \ -e signed-integer \
-t wav \ -t wav \
record$i.wav record$i.wav
) || true
ls record$i.wav
done done
popd popd
@ -41,6 +45,9 @@ if [ -n "$TRAIN" ] || [ ! -d ./model ] || [ ! -f ./model/$HOTWORD.pmdl ]; then
-v "$(realpath ./model)":/snowboy-master/examples/Python/model \ -v "$(realpath ./model)":/snowboy-master/examples/Python/model \
snowboy-pmdl:latest snowboy-pmdl:latest
mv ./model/hotword.pmdl ./model/$HOTWORD.pmdl mv ./model/hotword.pmdl ./model/$HOTWORD.pmdl
if [ -n "$TRAIN" ]; then
exit 0
fi
fi fi
if false; then if false; then
@ -71,7 +78,11 @@ else
hotword="$(realpath ./model/$HOTWORD.pmdl)" hotword="$(realpath ./model/$HOTWORD.pmdl)"
GOPROXY= go build -o snowboy GOPROXY= go build -o snowboy
if [ -z "$PUSH" ]; then if [ -z "$PUSH" ]; then
./snowboy -m "$hotword" -r "$resources" -s 0.5 "$@" ./snowboy \
-ms "$hotword/$HOTWORD" \
-r "$resources" \
-s 0.5 \
"$@"
else else
echo ' echo '
FROM registry-app.eng.qops.net:5001/imported/alpine:3.16 FROM registry-app.eng.qops.net:5001/imported/alpine:3.16

View File

@ -97,7 +97,8 @@ func main() {
defer d.Close() defer d.Close()
// set the handlers // set the handlers
for _, modelStr := range strings.Split(*models, ",") { for _, modelStrC := range strings.Split(*models, ",") {
modelStr := modelStrC
d.HandleFunc(snowboy.NewHotword(path.Dir(modelStr), float32(*sensitivity)), func(string) { d.HandleFunc(snowboy.NewHotword(path.Dir(modelStr), float32(*sensitivity)), func(string) {
if !*quiet { if !*quiet {
log.Println(path.Base(modelStr)) log.Println(path.Base(modelStr))

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,17 +1,18 @@
#! /bin/bash #! /bin/bash
main() { main() {
cleanup() {
killall -9 $(jobs -p)
killall snowboy
}
trap cleanup EXIT
if [ ! -e /tmp/stt.fifo ]; then if [ ! -e /tmp/stt.fifo ]; then
mkfifo /tmp/stt.fifo mkfifo /tmp/stt.fifo
fi fi
cleanup() {
killall -9 $(jobs -p)
}
trap cleanup EXIT
echo starting in echo starting in
for ((i=3; i>0; i--)); do for ((i=2; i>0; i--)); do
echo "...$i..." echo "...$i..."
sleep 1 sleep 1
done done
@ -26,7 +27,7 @@ main() {
)) ))
echo models=$models echo models=$models
./snowboy -s .5 -r resources.res -ms $models "$@" > /tmp/stt.fifo & ./snowboy -r resources.res -ms $models "$@" > /tmp/stt.fifo &
python3 -c ' python3 -c '
import pyautogui import pyautogui
@ -34,25 +35,31 @@ import time
keys = set() keys = set()
def press(key): def toggle(key):
hold(key) global keys
time.sleep(0.25) if key in keys:
release(key) release(key)
else:
hold(key)
def hold(key): def hold(key):
global keys global keys
for keyin in [todrop for todrop in keys]:
if keyin != key:
release(keyin)
keys = set()
keys.add(key) keys.add(key)
print()
print("pressing", key)
print()
pyautogui.keyDown(key) pyautogui.keyDown(key)
def release(key): def release(key):
print()
print("releasing", key)
print()
pyautogui.keyUp(key) pyautogui.keyUp(key)
def release_all():
global keys
for key in keys:
release(key)
keys = set()
def main(): def main():
with open("/tmp/stt.fifo", "r") as q: with open("/tmp/stt.fifo", "r") as q:
for line in q: for line in q:
@ -64,7 +71,7 @@ print(mapping)
def handle(cmd): def handle(cmd):
global mapping global mapping
press(mapping.get(cmd)) hold(mapping.get(cmd))
main() main()
' '

View File

@ -1 +1,5 @@
up: w up: w
down: s
left: a
right: d
jump: w