yaml good
parent
e270249eaf
commit
6fdb4356e7
|
|
@ -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 \
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -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)
|
||||
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()
|
||||
'
|
||||
|
|
|
|||
|
|
@ -1 +1,5 @@
|
|||
up: w
|
||||
down: s
|
||||
left: a
|
||||
right: d
|
||||
jump: w
|
||||
|
|
|
|||
Loading…
Reference in New Issue