Support for raspberry pi 5

Hi there,

I am trying to get Rhasspy work on a Raspberry pi 5. For the most part, everything seems to work fine except that I am not able to use Porcupine to detect the wake word. Picovoice’s website seems to suggest that Porcupine is supported on Raspberry pi 5.

Has anyone successful used Rhasspy on a Raspberry pi 5? Thank you for sharing

2 Likes

I am running into the same problem. Sound output, sound input, MQTT, interaction with Home Assistant works fine. But not wake word.

This is the relevant log output:

2024-03-17 17:29:33,305 INFO spawned: 'wake_word' with pid 293
WARNING: Please be advised that this device (CPU part = 0xd0b) is not officially supported by Picovoice. Falling back to the armv6-based library. This is not tested nor optimal.
Traceback (most recent call last):
  File "/usr/lib/python3.7/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.7/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/lib/python3.7/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/usr/lib/rhasspy/rhasspy-wake-porcupine-hermes/rhasspywake_porcupine_hermes/__init__.py", line 14, in <module>
    import pvporcupine
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pvporcupine/__init__.py", line 15, in <module>
    LIBRARY_PATH = pv_library_path('')
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pvporcupine/util.py", line 94, in pv_library_path
    raise NotImplementedError('Unsupported platform.')
NotImplementedError: Unsupported platform.
2024-03-17 17:29:33,475 INFO exited: wake_word (exit status 1; not expected)
2024-03-17 17:29:35,480 INFO spawned: 'wake_word' with pid 301
WARNING: Please be advised that this device (CPU part = 0xd0b) is not officially supported by Picovoice. Falling back to the armv6-based library. This is not tested nor optimal.
Traceback (most recent call last):
  File "/usr/lib/python3.7/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.7/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/lib/python3.7/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/usr/lib/rhasspy/rhasspy-wake-porcupine-hermes/rhasspywake_porcupine_hermes/__init__.py", line 14, in <module>
    import pvporcupine

  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pvporcupine/__init__.py", line 15, in <module>
    LIBRARY_PATH = pv_library_path('')
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pvporcupine/util.py", line 94, in pv_library_path
    raise NotImplementedError('Unsupported platform.')
NotImplementedError: Unsupported platform.
2024-03-17 17:29:35,642 INFO exited: wake_word (exit status 1; not expected)
2024-03-17 17:29:38,648 INFO spawned: 'wake_word' with pid 309
WARNING: Please be advised that this device (CPU part = 0xd0b) is not officially supported by Picovoice. Falling back to the armv6-based library. This is not tested nor optimal.
Traceback (most recent call last):
  File "/usr/lib/python3.7/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.7/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/lib/python3.7/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/usr/lib/rhasspy/rhasspy-wake-porcupine-hermes/rhasspywake_porcupine_hermes/__init__.py", line 14, in <module>
    import pvporcupine
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pvporcupine/__init__.py", line 15, in <module>
    LIBRARY_PATH = pv_library_path('')
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pvporcupine/util.py", line 94, in pv_library_path
    raise NotImplementedError('Unsupported platform.')
NotImplementedError: Unsupported platform.
2024-03-17 17:29:38,813 INFO exited: wake_word (exit status 1; not expected)
2024-03-17 17:29:39,815 INFO gave up: wake_word entered FATAL state, too many start retries too quickly

And trying to switch to Snowboy results in this error:

[DEBUG:2024-03-17 17:37:27,232] rhasspyremote_http_hermes: Receiving audio
2024-03-17 17:37:28,235 INFO spawned: 'wake_word' with pid 424
Traceback (most recent call last):
  File "/usr/lib/python3.7/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.7/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/lib/python3.7/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/usr/lib/rhasspy/rhasspy-wake-snowboy-hermes/rhasspywake_snowboy_hermes/__init__.py", line 26, in <module>
    from snowboy import snowboydecoder, snowboydetect
ModuleNotFoundError: No module named 'snowboy'

I created my account here just to say +1
lost my last hair on trying to get a functionnal rhasspy on a pi 5