# /bin/bash main() { set -eo pipefail tty && read -p "git refresh? [yN] " a && test "$a" == "y" && ( git config --global credential.helper store git submodule init git pull --recurse-submodules --jobs=10 git submodule foreach git pull origin master ) _tts _stt _mayhem_party _discord _dolphin while read; do pkill -SIGUSR1 -f mayhem-party done } cleanup() { pkill -f larynx pkill -f hotwords.py pkill -f rust-whisper pkill -f mayhem-party pkill -f server-vm } trap cleanup EXIT log() { echo "$(date) > $*" >&2 } _discord() { read -p "pls start discord" } _dolphin() { read -p "pls start dolphin" } _mayhem_party() { log mayhem-party pushd ./git.d/mayhem-party.d go build popd log launching mayhem-party ( source ./config.d/mayhem-party.d/env.env while true; do ./git.d/mayhem-party.d/mayhem-party sleep 5 done ) &> /tmp/mayhem-party.mayhem-party.log & } _tts() { log tts ( cd ./git.d/tts.d/larynx.d/ bash ./run.sh ) &> /tmp/mayhem-party.mayhem-party.log & } _stt() { log stt pushd ./git.d/stt.d/rust-whisper.d/ pip3 install ./requirements.txt popd return 1 if ! python3 -m pip show PyAudio; then sudo apt -y install \ portaudio19-dev \ python3-pyaudio \ python3-pip \ git \ pulseaudio sudo python3 -m pip install --no-cache-dir \ git+https://github.com/openai/whisper.git \ soundfile \ PyAudio \ SpeechRecognition \ PyYAML fi log launching stt ( export HOME="$PWD/mnt.d/stt.d" mkdir -p "$HOME" cd "$HOME" local device=$( pactl list \ | grep Monitor.Source \ | grep -v hdmi \ | awk "{print \$NF}" \ | head -n 1 ) ( echo "pcm.pulse_monitor {" echo " type pulse" echo " device $device" echo "}" echo "ctl.pulse_monitor {" echo " type pulse" echo " device $device" echo "}" ) | sudo tee /etc/asound.conf cd ../../git.d/stt.d/whisper-2023 export HOTWORDS=../../config.d/mayhem-party.d/v01.yaml@.users[].state.gm.alias export MIC_TIMEOUT=2 export URL=http://localhost:17071/gm/rpc/broadcastSomeoneSaidAlias?message={{hotword}} export HEADERS=say="Eye herd {{hotword}}" export MIC_NAME=pulse_monitor export MODEL=tiny.en export DEBUG=true while true; do python3 ./hotwords.py sleep 5 done ) &> /tmp/mayhem-party.stt.log & } _snap() { if ! which snap; then sudo apt -y install snap fi snap "$@" } if [ "$0" == "$BASH_SOURCE" ]; then main "$@" fi