Setting Up a Wyoming Satellite with WM8960 on Raspberry Pi
This guide walks you through setting up a Wyoming Satellite using a Raspberry Pi Zero 2 W with the WM8960 I2S soundcard, suitable for offline wake word detection and audio I/O in a Home assistant voice pipeline with the wyoming protocoll. The steps below assume you're working with a clean installation of Raspberry Pi OS Lite (Bookworm/Bullseye).
1. Enable I2S and I2C and Load the WM8960 Driver
Edit the Raspberry Pi configuration file:
sudo nano /boot/firmware/config.txt
Append the following lines to enable I2S and I2C and to load the WM8960 audio driver:
dtparam=i2s=on
dtparam=i2c_arm=on
dtoverlay=wm8960-soundcard
2. System Update and Required Packages
Update the system and install essential packages:
sudo apt update
sudo apt upgrade
sudo apt install --no-install-recommends \
git \
python3-venv \
python3-pip \
alsa-utils \
btop \
fish
Then restart the pi:
sudo reboot
3. Install Wyoming OpenWakeWord
Clone the repository and run its setup script:
git clone https://github.com/rhasspy/wyoming-openwakeword.git
cd wyoming-openwakeword
script/setup
You can later run the wake word detection service with:
script/run --uri 'tcp://0.0.0.0:10400' --debug
4. Install Wyoming Satellite
Clone and set up the Wyoming Satellite:
git clone https://github.com/rhasspy/wyoming-satellite.git
cd wyoming-satellite/
script/setup
5. Run Wyoming Satellite
Launch the satellite with the WM8960 soundcard using the following command:
script/run \
--name 'WM8960 Satellite' \
--uri 'tcp://0.0.0.0:10700' \
--mic-command 'arecord -D plughw:1,0 -r 16000 -c 1 -f S16_LE -t raw' \
--snd-command 'aplay -D plughw:1,0 -r 22050 -c 1 -f S16_LE -t raw' \
--wake-uri 'tcp://127.0.0.1:10400' \
--wake-word-name 'ok_nabu' \
--mic-auto-gain 5 \
--mic-noise-suppression 2 \
--awake-wav /home/adivius/wyoming-satellite/sounds/awake.wav \
--done-wav /home/adivius/wyoming-satellite/sounds/done.wav \
--timer-finished-wav /home/adivius/wyoming-satellite/sounds/timer_finished.wav \
--debug-recording-dir recordings \
--debug
Adjust the sound device identifiers (plughw:1,0
) and paths to match your system as needed.
6. Adjust Volume with alsamixer
Use alsamixer
to configure volume levels:
alsamixer
- Press
F6
to select the WM8960 soundcard. - Set appropriate levels for Speaker, Playback, and Output Mixer.
- Unmute channels using the
M
key.
Summary
You now have a fully functional Wyoming Satellite on your Raspberry Pi using the WM8960 soundcard, ready for integration with a voice assistant stack. This setup enables offline wake word detection and audio handling through an I2S-based device, ideal for low-power and always-on environments.