Wyoming-satellite on Ubuntu Wall Panel

Greetings,

I’m working through a checklist to get our wall panel going, and hitting a wall with wyoming-satellite.

I’ve tried by using the python3 -m installer method, and I’ve tried with script/setup, and problem other ways too.

The issue I ran into is this:

If I run installer as a sudo user then it won’t be able to capture audio because the non-sudo “tablet” user has the mic and speakers locked. ChatGPT suggested using pulse as the audio devices. That doesn’t help with the sudo install.

If I install as “tablet” I can configure, and pulse works during the setup/test. Since the installer wants to move .service files to /etc/systemd/system/ it requires sudo and I can’t do that, so I tried to just copy the services that were generated to my ~/.config/systemd/user/ folder, but then I have these errors when I try to run the command that the installer put into wyoming-wakeword.service.

/home/tablet/wyoming-satellite/local/wyoming-openwakeword/.venv/bin/python3: No module named wyoming_openwakeword
Traceback (most recent call last):
  File "/home/tablet/wyoming-satellite/local/wyoming-openwakeword/script/run", line 12, in <module>
    subprocess.check_call([context.env_exe, "-m", "wyoming_openwakeword"] + sys.argv[1:])
  File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/tablet/wyoming-satellite/local/wyoming-openwakeword/.venv/bin/python3', '-m', 'wyoming_openwakeword', '--uri', 'tcp://127.0.0.1:10400', '--threshold', '0.5', '--trigger-level', '1', '--custom-model-dir', '/home/tablet/wyoming-satellite/local/custom-wake-words/openWakeWord']' returned non-zero exit status 1.

The command within wyoming-satellite.service seems to run ok except that it’s waiting for wyoming-wakeword.service which isn’t starting.

wyoming-satellite.service
[Unit]
Description=Wyoming Satellite
Wants=network-online.target
After=network-online.target
Requires=wyoming-wakeword.service

[Service]
Type=simple
Environment=XDG_RUNTIME_DIR=/run/user/1001
ExecStart=/home/tablet/wyoming-satellite/script/run --name 'Wyoming Satellite' --uri tcp://0.0.0.0:10700 --mic-command 'arecord -D pulse -q -r 16000 -c 1 -f S16_LE -t raw' --snd-command 'aplay -D pulse -q -r 22050 -c 1 -f S16_LE -t raw' --awake-wav /home/tablet/wyoming-satellite/sounds/awake.wav --done-wav /home/tablet/wyoming-satellite/sounds/done.wav --wake-uri tcp://127.0.0.1:10400 --wake-word-name ok_wire_tap
WorkingDirectory=/home/tablet/wyoming-satellite
Restart=always
RestartSec=1

[Install]
WantedBy=default.target
wyoming-wakeword.service
[Unit]
Description=openWakeWord

[Service]
Type=simple
ExecStart=/home/tablet/wyoming-satellite/local/wyoming-openwakeword/script/run --uri tcp://127.0.0.1:10400 --threshold 0.5 --trigger-level 1 --custom-model-dir /home/tablet/wyoming-satellite/local/custom-wake-words/openWakeWord
WorkingDirectory=/home/tablet/wyoming-satellite/local/wyoming-openwakeword
Restart=always
RestartSec=1

[Install]
WantedBy=default.target

Any suggestions on where to go from here?