# /bin/bash main() { _discord _dolphin _stt _mayhem_party while read; do pkill -SIGUSR1 -f mayhem-party done } cleanup() { local jobs_to_clean="$(jobs -p)" log killing $jobs_to_clean kill -9 $jobs_to_clean pkill -f mayhem-party pkill -f hotwords.py } trap cleanup EXIT log() { echo "$(date) > $*" >&2 } _discord() { if ps aux | grep -v grep | grep -v "server-vm.sh" | grep -i discord; then return fi if ! _snap info discord; then sudo snap install discord fi log launching discord snap run discord &> /tmp/mayhem-party.discord.log & disown } _dolphin() { if ps aux | grep -v grep | grep -v "server-vm.sh" | grep -i dolphin; then return fi if ! _snap info dolphin-emulator; then sudo snap install dolphin-emulator --beta fi log launching dolphin snap run dolphin-emulator.dolphin-emu &> /tmp/mayhem-party.dolphin.log & disown } _mayhem_party() { log dolphin if ! which mayhem-party; then sudo snap install go --classic export GOPATH="$HOME/Go" cd ./git.d/mayhem-party.d snap run go install test -f "$GOPATH/bin/mayhem-party" || log "did not install" fi log launching mayhem-party ( source ../../config.d/mayhem-party.d/env.env while true; do "$HOME"/Go/bin/mayhem-party sleep 5 done ) & #) &> /tmp/mayhem-party.mayhem-party.log & } _stt() { 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 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