Follow these instructions here.
https://github.com/rhasspy/wyoming-satellite/blob/master/docs/tutorial_2mic.md
Update OS and packages
sudo apt-get update
sudo apt-get install --no-install-recommends \
git \
python3-venv
Enable i2C and SCI interfaces to Pi using sudo raspi-config
Exception: reinstall respeaker drivers after the rebuild drivers step using this repository.
sudo apt-get update
git clone https://github.com/HinTak/seeed-voicecard.git
cd seeed-voicecard
sudo ./install.sh
sudo reboot now
Install satellite software
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
Test Recording
arecord -D plughw:CARD=seeed4micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t wav -d 5 test.wav
Test Playback
aplay -D plughw:CARD=Headphones,DEV=0 test.wav
Run Wyoming Satellite. Change name as appropriate
script/run \
--debug \
--name 'Wyoming sat1 (Office)' \
--uri 'tcp://0.0.0.0:10700' \
--mic-command 'arecord -D plughw:CARD=seeed4micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t raw' \
--snd-command 'aplay -D plughw:CARD=Headphones,DEV=0 -r 22050 -c 1 -f S16_LE -t raw'
run wyoming-satellite as a systemd service by first creating a service file:
sudo systemctl edit --force --full wyoming-satellite.service
And this script for the satellite service
[Unit]
Description=Wyoming Office Satellite
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecStart=/home/pi/wyoming-satellite/script/run \
--name 'Office satellite' \
--uri 'tcp://0.0.0.0:10700' \
--mic-command 'arecord -D plughw:CARD=seeed4micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t raw' \
--snd-command 'aplay -D plughw:CARD=Headphones,DEV=0 -r 22050 -c 1 -f S16_LE -t raw' \
--wake-uri 'tcp://127.0.0.1:10400' \
--wake-word-name 'jarvis'
WorkingDirectory=/home/pi/wyoming-satellite
Restart=always
RestartSec=1
[Install]
WantedBy=default.target
Enable the service
sudo systemctl enable --now wyoming-satellite.service
And this for the open wake word
sudo systemctl edit --force --full wyoming-openwakeword.service
with these contents
[Unit]
Description=Wyoming openWakeWord
[Service]
Type=simple
ExecStart=/home/pi/wyoming-openwakeword/script/run --uri 'tcp://127.0.0.1:10400'
WorkingDirectory=/home/pi/wyoming-openwakeword
Restart=always
RestartSec=1
[Install]
WantedBy=default.target
Enable the service
sudo systemctl enable --now wyoming-openwakeword.service
LED Service Setup
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'
The --system-site-packages
argument is used to access the pre-installed gpiozero
and spidev
Python packages. If these are not already installed in your system, run:
sudo apt-get install python3-spidev python3-gpiozero
Test the service with:
.venv/bin/python3 4mic_service.py --help
Create a systemd service for it:
sudo systemctl edit --force --full 4mic_leds.service
[Unit]
Description=4Mic LEDs
[Service]
Type=simple
ExecStart=/home/pi/wyoming-satellite/examples/.venv/bin/python3 4mic_service.py --uri 'tcp://127.0.0.1:10500'
WorkingDirectory=/home/pi/wyoming-satellite/examples
Restart=always
RestartSec=1
[Install]
WantedBy=default.target
Update the satellite service
[Unit]
Description=Wyoming Office Satellite
Wants=network-online.target
After=network-online.target
Requires=wyoming-openwakeword.service
Requires=4mic_leds.service
[Service]
Type=simple
ExecStart=/home/pi/wyoming-satellite/script/run \
--name 'Office satellite' \
--uri 'tcp://0.0.0.0:10700' \
--mic-command 'arecord -D plughw:CARD=seeed4micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t raw' \
--snd-command 'aplay -D plughw:CARD=Headphones,DEV=0 -r 22050 -c 1 -f S16_LE -t raw' \
--wake-uri 'tcp://127.0.0.1:10400' \
--wake-word-name 'hey_jarvis' \
--event-uri 'tcp://127.0.0.1:10500'
WorkingDirectory=/home/pi/wyoming-satellite
Restart=always
RestartSec=1
[Install]
WantedBy=default.target
References