132 lines
2.9 KiB
Bash
132 lines
2.9 KiB
Bash
# /bin/bash
|
|
|
|
main() {
|
|
_discord
|
|
_dolphin
|
|
_stt
|
|
_mayhem_party
|
|
#while read; do
|
|
# pkill -SIGUSR1 -f mayhem-party
|
|
#done
|
|
}
|
|
|
|
cleanup() {
|
|
pkill -f mayhem-party
|
|
pkill -f hotwords.py
|
|
pkill -f server-vm
|
|
}
|
|
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
|
|
export DEBUG=true
|
|
"$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
|
|
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
|
|
|