Create a Local, AI Voice Assistant (Alexa Replacement)

Nov 04, 2024
networkchuck alexa replacement

 

Wyoming Satellite Installation Guide

Wyoming Satellite Installation Guide

Install Prerequisites

sudo apt-get update
sudo apt-get install --no-install-recommends git python3-venv

Download Wyoming Assist

git clone https://github.com/rhasspy/wyoming-satellite.git
cd wyoming-satellite/

For Respeaker Hat ONLY

sudo bash etc/install-respeaker-drivers.sh
sudo reboot

Create Python Virtual Environment & Install Prerequisites

cd wyoming-satellite/
python3 -m venv .venv
.venv/bin/pip3 install --upgrade pip
.venv/bin/pip3 install --upgrade wheel setuptools
.venv/bin/pip3 install -f 'https://synesthesiam.github.io/prebuilt-apps/' -r requirements.txt -r requirements_audio_enhancement.txt -r requirements_vad.txt

Verify Installation

script/run --help

Audio Device Setup & Testing

Verify Audio Devices

arecord -L

Record Test Audio

arecord -D plughw:CARD=seeed2micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t wav -d 5 test.wav

List Available Speakers

aplay -L

Playback Test Audio

aplay -D plughw:CARD=seeed2micvoicec,DEV=0 test.wav

Run Wyoming Satellite with Components

Run Wyoming Satellite

script/run \
  --debug \
  --name 'my satellite' \
  --uri 'tcp://0.0.0.0:10700' \
  --mic-command 'arecord -D plughw:CARD=seeed2micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t raw' \
  --snd-command 'aplay -D plughw:CARD=seeed2micvoicec,DEV=0 -r 22050 -c 1 -f S16_LE -t raw'

Run Wyoming Satellite as a Service

Create Service

sudo systemctl edit --force --full wyoming-satellite.service

Service Configuration

[Unit]
Description=Wyoming Satellite
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecStart=/home/pi/wyoming-satellite/script/run --name 'my satellite' --uri 'tcp://0.0.0.0:10700' --mic-command 'arecord -D plughw:CARD=seeed2micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t raw' --snd-command 'aplay -D plughw:CARD=seeed2micvoicec,DEV=0 -r 22050 -c 1 -f S16_LE -t raw'
WorkingDirectory=/home/pi/wyoming-satellite
Restart=always
RestartSec=1

[Install]
WantedBy=default.target

Enable and Start the Service

sudo systemctl enable --now wyoming-satellite.service

For LED Control

Install LED Packages

sudo apt-get install python3-spidev python3-gpiozero

Setup LED Control Environment

cd wyoming-satellite/examples
python3 -m venv --system-site-packages .venv
.venv/bin/pip3 install --upgrade pip
.venv/bin/pip3 install --upgrade wheel setuptools
.venv/bin/pip3 install 'wyoming==1.5.2'

Test LED Service

.venv/bin/python3 2mic_service.py --help

Create LED Control Service

Create Service File

sudo systemctl edit --force --full 2mic_leds.service

LED Service Configuration

[Unit]
Description=2Mic LEDs

[Service]
Type=simple
ExecStart=/home/pi/wyoming-satellite/examples/.venv/bin/python3 2mic_service.py --uri 'tcp://127.0.0.1:10500'
WorkingDirectory=/home/pi/wyoming-satellite/examples
Restart=always
RestartSec=1

[Install]
WantedBy=default.target

Update Wyoming Satellite Service File

Edit Wyoming Satellite Service

sudo systemctl edit --force --full wyoming-satellite.service

Update Configuration

Add to [Unit] section:

Requires=2mic_leds.service

Modify [Service] ExecStart line:

ExecStart=/home/pi/wyoming-satellite/script/run ... --event-uri 'tcp://127.0.0.1:10500'

Reload and Restart Services

sudo systemctl daemon-reload
sudo systemctl restart wyoming-satellite.service
sudo systemctl start 2mic_leds.service