dscripka / openWakeWord

An open-source audio wake word (or phrase) detection framework with a focus on performance and simplicity.
Apache License 2.0
773 stars 79 forks source link

ModuleNotFoundError: No module named 'speexdsp_ns' #106

Open dzianisv opened 10 months ago

dzianisv commented 10 months ago

Module fails on macOS because ModuleNotFoundError: No module named 'speexdsp_ns'

Traceback (most recent call last):
  File "/Users/engineer/workspace/AssistantPlato/./src/wakeword.py", line 31, in <module>
    wait_for_wakeup_word()
  File "/Users/engineer/workspace/AssistantPlato/./src/wakeword.py", line 17, in wait_for_wakeup_word
    oww_model = Model(enable_speex_noise_suppression=True)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/engineer/workspace/AssistantPlato/.venv/lib/python3.11/site-packages/openwakeword/utils.py", line 539, in wrapped
    return func(*args, **new_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/engineer/workspace/AssistantPlato/.venv/lib/python3.11/site-packages/openwakeword/model.py", line 202, in __init__
    from speexdsp_ns import NoiseSuppression
ModuleNotFoundError: No module named 'speexdsp_ns'
dzianisv commented 10 months ago

ok, it seems that this module depends on speexdsp-lib that is not available for macOS

dscripka commented 10 months ago

That's correct, that library would need to be compiled for OSX. But the functionality provided by that library is optional, so I can adjust setup.py so that you won't get that error when install on Mac systems.

JIeJaitt commented 6 months ago

That's correct, that library would need to be compiled for OSX. But the functionality provided by that library is optional, so I can adjust setup.py so that you won't get that error when install on Mac systems.

@dzianisv @dscripka hi~Can arm's Apple chip mac run this project?

dscripka commented 6 months ago

@JIeJaitt yes, the project itself can run on Apple M series chips, yes, but some functionality might not be supported, and performance may not be optimized.