From 6fdb4356e75a0105c806e627176d08b93852cb11 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Mon, 14 Nov 2022 12:51:33 -0700 Subject: [PATCH] yaml good --- snowboy-2022/build.sh | 31 +++++++++++------ snowboy-2022/main.go | 3 +- snowboy-2022/model/default_hotword.pmdl | Bin 0 -> 3699 bytes snowboy-2022/model/down.pmdl | Bin 0 -> 5995 bytes snowboy-2022/model/jump.pmdl | Bin 0 -> 4683 bytes snowboy-2022/model/left.pmdl | Bin 0 -> 7799 bytes snowboy-2022/model/right.pmdl | Bin 0 -> 5831 bytes snowboy-2022/model/up.pmdl | Bin 4683 -> 3699 bytes snowboy-2022/pyautogui.sh | 43 ++++++++++++++---------- snowboy-2022/pyautogui.yaml | 4 +++ 10 files changed, 52 insertions(+), 29 deletions(-) create mode 100644 snowboy-2022/model/default_hotword.pmdl create mode 100644 snowboy-2022/model/down.pmdl create mode 100644 snowboy-2022/model/jump.pmdl create mode 100644 snowboy-2022/model/left.pmdl create mode 100644 snowboy-2022/model/right.pmdl diff --git a/snowboy-2022/build.sh b/snowboy-2022/build.sh index 5dd1a9d..d88ca59 100644 --- a/snowboy-2022/build.sh +++ b/snowboy-2022/build.sh @@ -17,21 +17,25 @@ if ! docker images | grep snowboy-pmdl.*latest &> /dev/null; then popd fi -export HOTWORD="${HOTWORD:-default_hotword}" +export HOTWORD="${HOTWORD:-${TRAIN:-default_hotword}}" if [ -n "$TRAIN" ] || [ ! -d ./model ] || [ ! -f ./model/$HOTWORD.pmdl ]; then mkdir -p model pushd model + rm -f ./record{1,2,3}.wav || true echo "record 3 instances of '$HOTWORD'" >&2 for i in 1 2 3; do - read -p "ready? ctrl-c when done" - rec \ - -r 16000 \ - -c 1 \ - -b 16 \ - -e signed-integer \ - -t wav \ - record$i.wav + read -p "[$i/3] ready? you get 3 seconds." + ( + timeout 3 rec \ + -r 16000 \ + -c 1 \ + -b 16 \ + -e signed-integer \ + -t wav \ + record$i.wav + ) || true + ls record$i.wav done popd @@ -41,6 +45,9 @@ if [ -n "$TRAIN" ] || [ ! -d ./model ] || [ ! -f ./model/$HOTWORD.pmdl ]; then -v "$(realpath ./model)":/snowboy-master/examples/Python/model \ snowboy-pmdl:latest mv ./model/hotword.pmdl ./model/$HOTWORD.pmdl + if [ -n "$TRAIN" ]; then + exit 0 + fi fi if false; then @@ -71,7 +78,11 @@ else hotword="$(realpath ./model/$HOTWORD.pmdl)" GOPROXY= go build -o snowboy if [ -z "$PUSH" ]; then - ./snowboy -m "$hotword" -r "$resources" -s 0.5 "$@" + ./snowboy \ + -ms "$hotword/$HOTWORD" \ + -r "$resources" \ + -s 0.5 \ + "$@" else echo ' FROM registry-app.eng.qops.net:5001/imported/alpine:3.16 diff --git a/snowboy-2022/main.go b/snowboy-2022/main.go index 980550b..69f42af 100644 --- a/snowboy-2022/main.go +++ b/snowboy-2022/main.go @@ -97,7 +97,8 @@ func main() { defer d.Close() // 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) { if !*quiet { log.Println(path.Base(modelStr)) diff --git a/snowboy-2022/model/default_hotword.pmdl b/snowboy-2022/model/default_hotword.pmdl new file mode 100644 index 0000000000000000000000000000000000000000..e9a9a9444965765477e03c86f8a47ced4da6cea7 GIT binary patch literal 3699 zcmXxiX*iYp*9UM38A_sqP(%rlZQJ|)jrUEIqDdv3rlX{k21!cEoTQXe5kgVz5K<^A zL<-rQRHg-9_}R;^6nBHkczG zK^qUXkYht95KrWelifRoc^mek<^pN5(Y_g)*3^Ivk(pT9GnCC-WdrBS<{+N43Q;~V zNuaBlfOQM9$*jyA_~WJpGGO}QvEIqFeoH#m4K{?HX0_NdP#FrHukapM7Qvc%@!YL| z3pC|?1(&z#H(NF#nRHBC$9lCGk`^&582XZg!%QxtV!1S&INObINmdZ2<)hJ7S={ll zkt`oOjvSLr@XEM8p{K-NG(S_7t`f@f*bj`E63D6n=i9J_Q)+H+xwqgq1*PVffOKnlMP6IB^P=kjr-QbPQbVGe^iQEmtEp&%C zo9jDl!Zj?qLPW}2S%*1|M9(-zAn>&ydk;jSW!++Ie`X;`pRymOG!{W(yBS-@ej`;k zPoc{Hw6TS;K6APx7^S%EB5K4I_U(uVVaOJ@$!%dRe6FL?1SvfKP6@WZDi)ksp8*}y zjuEn^o6(ewMmB5bBaI)5l-ZDqm--z-4F!{kzPtt$>6Y_i99n?#o^+0{9ZE}&KIP=G z0%v?Slf)MOqTGv{B;?MZKL$*yulaiJX<80!Rv1@h>|(^1TeZzhekr;&J# zE}pd@nQ2kIf(jN|kvaG)uoImEM`!w>dA%%q?V~zsu9C*}9f51t%ROyvN2rVfMK1+MKi?>SzsZX%Ek4D(H8eXF8)S7o4r7Z z)=thKDRUkp?ZoSXyUSY8Y%?8Hd13}}r@q8=b~Kpmz(V=on%Mu&zohv|B&zr|4+q{3 zVq{PIBKsmmQhv0Wv3#)^SR7mcpZ%@FF4=7eT`trjCv_3l)s_@Yye2?0<{L@opafH6 z@d6&Ue+|1IOr@2t6Y*J(SMcaqHQo?}V5zgIS#0?zqcWk5)4P*QBj`gee909ys$)70 zR2P!%2cN*nUN;2KMbF{g-f9>!`VMcC&mtQhWq_ePNjT|TC(>G6LsnQtqkU^-@JfqW z%=!cul+v-4C=Lk$G*<@ZZBt+{tIVby%K{2|@u+wt73ceSn%D0$M+@rC5$ARJf*^}o z(Ar%Qx&0MQjW>niT?r45W7jkkf|ML*ZC^au=XN4dTtsngVM}h zKW1;5RoHv$#d!39Qsu1kB-3shQ z%g~Yh7-}_o9Ivt;0r7}?y8f+trHCg(izIVp>CBjSWHYh93v zYZSS^eKn{{*#jIMH^4CyWwt6g3%EC*M`h1nk#CC*n9p&2gdKZFh?|*&(8)p!`o_#~ zop(HKjysOO-~Ivyiv#h)Yq7vBd5W2atT8iKCT~%UHR#aFt6WEtJA1bDZ&LNP7Q0Ri z1n+yI%|%5gVYGKG92uU0%`?A}=e7sIj^ZFd*ItA@O0$UN$YEr3L=mT&WDEY@ri_|( zD@ko*1z6~m0C(KI4Q1Bb(!!!|j37f3woAPwzsy$hmDnCcgGPwC=OTgXcr0*Forx2p zp3wF8VsOh3Q|SHaB6jNk4g&W+HPstR5%T94T3iTSOx?VB+5Bz`yZ7Fs%SBJMU_CYZ8F62=%q zIzLkpZgA{|k=n+Hz4w)Fl4)RW=_tb!o~pFkljAQNUWek0o{0d3Zzc;B5fxG79W*jJm0H;%ue zT(>1!BdW(_{(l8jy+@eS9)hhJtg z%5*zi%2&cE2~TjR?<=YT@}W#`5zY{`fvOK-IJ@N>4lyaf8Uvcb)Y$vPROrrXmnq?A z3H7MpY7FVGwxOqk6hOfGuM{l%NmpB+5~%I`jQc)o&^2;PK$FdW9B!LKYiiH1^Qwz+ znvXlir_JH_qYoH9tH6JAGXONS`*FjyrNrQpfOEM#gO)AxU79zvj~S`dQ@tTNl!DK#_*qxI+Gl8q{vp zioc&z$8W~HXq0z0I?#C&A=%qI;^@Klg7Jgi{nR<$+fhFtWah|g=7i>2|w`~kTM*HmO z!@N9Hr*(&Mi5lUN9#b%!IK-AKYZLqG2=*DOqOZ#9$is`l{0mJgeTV{61BJZw0aoI359`d|L*7yuY<V#;NV0(({Sf&a&e1MG2aDuLilPLb-sw-B zpaYVRIZj^w*N9ftzN2#z-y%OI4yo8pXH=xOvrUct?17hi$+D%RXtVD+!t|%pZ@P1V zk~-qjpK$c6v;?D(c$|1XTt+SP6=0m)1I&Dl;_%!-S{!#0{Zna2cO1_{9f=thv5uIo$+)))uEyAv$ ziX|cBguod0{ONk!VE~oyPD4)99y2w+vRIXjURHd=pDh0^kHhUSAoa-ItjAl+wMkwP3NxhVu@} zqWnn*nHK|_>CFe5sgkiO>`(B<#%C6B4|fgFYc0Rf#=MmjMm0~q)`5cy8A$; zw3gj#DnVYo4Pt+E$*}8Qhf%Ksdh`yXMLX;6!D5L@^hNVuV)slISLMpFea_BUqW=~# zl3R}Jue4F+jnnaS!#7yvSr~}9Yr|TUOy{iGLXvVM5XWpvCQq&!vIBab;7Id4ELAo4{V}5`u)lq0gu9tE_w^^cj9oGT>2W;Uf AUH||9 literal 0 HcmV?d00001 diff --git a/snowboy-2022/model/down.pmdl b/snowboy-2022/model/down.pmdl new file mode 100644 index 0000000000000000000000000000000000000000..c7c69fa6046b52f0cdd4121a85acbf3836ef4917 GIT binary patch literal 5995 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 JD+kKC{{e<^-5dY_ literal 0 HcmV?d00001 diff --git a/snowboy-2022/model/right.pmdl b/snowboy-2022/model/right.pmdl new file mode 100644 index 0000000000000000000000000000000000000000..bb4530cda3012a36171f3615917524eb533d6725 GIT binary patch literal 5831 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 literal 0 HcmV?d00001 diff --git a/snowboy-2022/model/up.pmdl b/snowboy-2022/model/up.pmdl index 51646cd907e1931247ab854763b169732706e6d5..78cb0ab8ca36dc7612dd94893a34b81021888441 100644 GIT binary patch literal 3699 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 literal 4683 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 diff --git a/snowboy-2022/pyautogui.sh b/snowboy-2022/pyautogui.sh index 8744d0a..e736cb2 100644 --- a/snowboy-2022/pyautogui.sh +++ b/snowboy-2022/pyautogui.sh @@ -1,17 +1,18 @@ #! /bin/bash main() { + cleanup() { + killall -9 $(jobs -p) + killall snowboy + } + trap cleanup EXIT + 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 + for ((i=2; i>0; i--)); do echo "...$i..." sleep 1 done @@ -26,7 +27,7 @@ main() { )) 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 ' import pyautogui @@ -34,25 +35,31 @@ import time keys = set() -def press(key): - hold(key) - time.sleep(0.25) - release(key) +def toggle(key): + global keys + if key in keys: + release(key) + else: + hold(key) def hold(key): global keys + for keyin in [todrop for todrop in keys]: + if keyin != key: + release(keyin) + keys = set() keys.add(key) + print() + print("pressing", key) + print() pyautogui.keyDown(key) def release(key): + print() + print("releasing", key) + print() 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: @@ -64,7 +71,7 @@ print(mapping) def handle(cmd): global mapping - press(mapping.get(cmd)) + hold(mapping.get(cmd)) main() ' diff --git a/snowboy-2022/pyautogui.yaml b/snowboy-2022/pyautogui.yaml index 5044cf0..7bd2bac 100644 --- a/snowboy-2022/pyautogui.yaml +++ b/snowboy-2022/pyautogui.yaml @@ -1 +1,5 @@ up: w +down: s +left: a +right: d +jump: w