Skip to content

Latest commit

 

History

History
85 lines (64 loc) · 2.02 KB

satellite.md

File metadata and controls

85 lines (64 loc) · 2.02 KB

Satellite

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 rhasspy3

Install the websocket utility:

mkdir -p config/programs/remote/
cp -R programs/remote/websocket config/programs/remote/
config/programs/remote/websocket/script/setup

Install Porcupine:

mkdir -p config/programs/wake/
cp -R programs/wake/porcupine1 config/programs/wake/
config/programs/wake/porcupine1/script/setup

Check available wake word models by running

config/programs/wake/porcupine1/script/list_models

and 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: aplay

Replace 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.