Once you have a Rhasspy HTTP server running, you can use Rhasspy as a satellite on a separate device.
NOTE: Rhasspy satellites do not need to run Python or any Rhasspy software. They can use the websocket API directly, or talk directly to a running pipeline.
On your satellite, clone the repo:
git clone https://github.com/rhasspy/rhasspy3
cd rhasspy3Install the websocket utility:
mkdir -p config/programs/remote/
cp -R programs/remote/websocket config/programs/remote/
config/programs/remote/websocket/script/setupInstall Porcupine:
mkdir -p config/programs/wake/
cp -R programs/wake/porcupine1 config/programs/wake/
config/programs/wake/porcupine1/script/setupCheck available wake word models by running
config/programs/wake/porcupine1/script/list_modelsand choose one. We'll use "porcupine_linux.ppn" as an example, but this will be different on a Raspberry Pi.
Next, create config/configuration.yaml with:
programs:
mic:
arecord:
command: |
arecord -q -r 16000 -c 1 -f S16_LE -t raw -
adapter: |
mic_adapter_raw.py --samples-per-chunk 1024 --rate 16000 --width 2 --channels 1
wake:
porcupine1:
command: |
.venv/bin/python3 bin/porcupine_stream.py --model "${model}"
template_args:
model: "porcupine_linux.ppn"
remote:
websocket:
command: |
script/run "${uri}"
template_args:
uri: "ws://localhost:13331/pipeline/asr-tts"
satellites:
default:
mic:
name: arecord
wake:
name: porcupine1
remote:
name: websocket
snd:
name: aplayReplace the model in porcupine1 with your selection, and adjust the URI in websocket to point to your Rhasspy server.
Now you can run your satellite:
script/run bin/satellite_run.py --debug --loop(say "porcupine", pause, say voice command, wait)
If everything is working, you should hear a response being spoken. Press CTRL+C to quit.