rhasspy / wyoming-openwakeword

Wyoming protocol server for openWakeWord wake word detection system
MIT License
105 stars 26 forks source link

wyoming-openwakeword fails at startup #24

Open owingst opened 4 months ago

owingst commented 4 months ago

Running on Raspberry pi 4 (8gb): Debian GNU/Linux 11 (bullseye) 64 bit

Running on Raspberry pi zero 2W: Debian GNU/Linux 11 (bullseye) 32 bit

I am trying to setup wyoming-satellite but get this failure ( ImportError: numpy.core.multiarray failed to import) on both the raspberry pi bullseye 32 bit (Pi0 2W) and 64 bit (Pi4).

I have tried the following:

uninstall existing numpy and install opencv-python uninstall numpy and reinstall numpy wyoming-satelite has no errors…

Not sure what else to do. Here is the error I get from wyoming-openwakeword. Appreciate any help with this. Thanks!

wyoming-openwakeword.service - Wyoming openWakeWord Loaded: loaded (/etc/systemd/system/wyoming-openwakeword.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2024-06-18 12:08:30 CDT; 6min ago Main PID: 519 (python3) Tasks: 5 (limit: 8755) CPU: 12.243s CGroup: /system.slice/wyoming-openwakeword.service |-519 python3 /home/pi/wyoming-openwakeword/script/run --uri tcp://127.0.0.1:10400 `-664 /home/pi/wyoming-openwakeword/.venv/bin/python3 -m wyoming_openwakeword --uri tcp://127.0.0.1:10400

Jun 18 12:15:22 pi4 run[664]: AttributeError: _ARRAY_API not found Jun 18 12:15:22 pi4 run[664]: ERROR:root:Unexpected error in wake word thread (alexa_v0.1) Jun 18 12:15:22 pi4 run[664]: ImportError: numpy.core.multiarray failed to import Jun 18 12:15:22 pi4 run[664]: The above exception was the direct cause of the following exception: Jun 18 12:15:22 pi4 run[664]: Traceback (most recent call last): Jun 18 12:15:22 pi4 run[664]: File "/home/pi/wyoming-openwakeword/wyoming_openwakeword/openwakeword.py", line 248, in ww_proc Jun 18 12:15:22 pi4 run[664]: ww_model = tflite.Interpreter(model_path=str(ww_model_path), num_threads=1) Jun 18 12:15:22 pi4 run[664]: File "/home/pi/wyoming-openwakeword/.venv/lib/python3.9/site-packages/tflite_runtime/interpreter.py", line 464, in init Jun 18 12:15:22 pi4 run[664]: self._interpreter = _interpreter_wrapper.CreateWrapperFromFile( Jun 18 12:15:22 pi4 run[664]: SystemError: <built-in method CreateWrapperFromFile of PyCapsule object at 0x7f9af423c0> returned a result with an error set

rich33584 commented 4 months ago

Same issues for me. Open wake word fails. The satellite will work before installing Open wake Word. Ive built 4 of these without issue a few months ago. Something new is causing the failure.

nanosonde commented 4 months ago

With this change it works again:

diff --git a/requirements.txt b/requirements.txt
index bab6cef..7ac5c00 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1,3 @@
-tflite-runtime-nightly
+tflite-runtime==2.14.0
 wyoming==1.5.3
+numpy==1.23.5

I had to remove the entire .venv dir in wyoming-openwakeword?``dir though and had to restartscripts/setup`.

Chris112 commented 4 months ago

With this change it works again:

diff --git a/requirements.txt b/requirements.txt
index bab6cef..7ac5c00 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1,3 @@
-tflite-runtime-nightly
+tflite-runtime==2.14.0
 wyoming==1.5.3
+numpy==1.23.5

I had to remove the entire .venv dir in wyoming-openwakeword?dir though and had to restart `scripts/setup.

If you disable the service first you won't have to remove the .venv

sudo systemctl disable --now wyoming-openwakeword.service

rich33584 commented 4 months ago

With this change it works again:

diff --git a/requirements.txt b/requirements.txt
index bab6cef..7ac5c00 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1,3 @@
-tflite-runtime-nightly
+tflite-runtime==2.14.0
 wyoming==1.5.3
+numpy==1.23.5

I had to remove the entire .venv dir in wyoming-openwakeword?dir though and had to restart `scripts/setup.

Im sorry, Im not an expert with this stuff. What do I do with this information?

owingst commented 4 months ago

So I take it you diff’ed a working Wyoming-openwakeword against one that is failing and you see the difference in tflite-runtime and numpy? If so, I should just uninstall tflite-runtime and numpy and reinstall them with these versions? Please let me know. Thanks!

Not sure what wyoming is in requirements.txt.

On Thu, Jun 20, 2024 at 10:53 AM rich33584 @.***> wrote:

With this change it works again:

diff --git a/requirements.txt b/requirements.txt index bab6cef..7ac5c00 100644--- a/requirements.txt+++ b/requirements.txt@@ -1,2 +1,3 @@-tflite-runtime-nightly+tflite-runtime==2.14.0 wyoming==1.5.3+numpy==1.23.5

I had to remove the entire .venv dir in wyoming-openwakeword?dir though and had to restart `scripts/setup.

Im sorry, Im not an expert with this stuff. What do I do with this information?

— Reply to this email directly, view it on GitHub https://github.com/rhasspy/wyoming-openwakeword/issues/24#issuecomment-2181033508, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC47NPARHBS6G45MEMAS5JDZIL3I7AVCNFSM6AAAAABJSN4KRSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBRGAZTGNJQHA . You are receiving this because you authored the thread.Message ID: @.***>

-- Tim Owings

@.***

owingst commented 4 months ago

I get the following error trying to install tflite-runtime==2.14.0. What am I missing?

pi@pi4:~/wyoming-openwakeword $ pip install tflite-runtime==2.14.0 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple ERROR: Could not find a version that satisfies the requirement tflite-runtime==2.14.0 ERROR: No matching distribution found for tflite-runtime==2.14.0

owingst commented 4 months ago

Updated these two, rebooted same error as before...so something I am missing...

pi@pi4:~ $ pip list | grep numpy 1.23.5 pi@pi4:~ $ pip list | grep tflite-runtime 2.13.0

I was unable to get tflite-runtime to 2.14.0 as not available in repository. I then followed a stackoverflow post on adding Wheels to get latest version...but no luck. Any ideas?

gerlinl commented 4 months ago

I had the same issue. This is how I got it working:

Stopped all the wyoming services on the satellite.

Renamed my current wyoming-openwakeword directory (can be deleted) mv /home/pi/wyoming-openwakeword /home/pi/old_wyoming-openwakeword

From my user home, I ran the git command from the instructions again: git clone https://github.com/rhasspy/wyoming-openwakeword.git

Changed to the wyoming-openwakeword directory: cd wyoming-openwakeword

Edited the requirements.txt file (use your favorite editor) vi requirements.txt

When done editing, it should look like this:

tflite-runtime==2.14.0
wyoming==1.5.3
numpy==1.23.5

Save the file and follow the documented process for setting up the service files

I hope this helps

owingst commented 4 months ago

Made the changes and ran, but still get same error. I am assuming that this is due to not being able to get to numpy 2.14.0. Any ideas on how to force debian to install numpy 2.14.0?

Here is the error: same as before. pi@pi4:~/wyoming-openwakeword $ script/setup Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: pip in ./.venv/lib/python3.9/site-packages (20.3.4) Collecting pip Downloading https://www.piwheels.org/simple/pip/pip-24.1-py3-none-any.whl (1.8 MB) |################################| 1.8 MB 302 kB/s Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 20.3.4 Uninstalling pip-20.3.4: Successfully uninstalled pip-20.3.4 Successfully installed pip-24.1 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: setuptools in ./.venv/lib/python3.9/site-packages (44.1.1) Collecting setuptools Downloading https://www.piwheels.org/simple/setuptools/setuptools-70.1.0-py3-none-any.whl (882 kB) ---------------------------------------- 882.6/882.6 kB 1.6 MB/s eta 0:00:00 Collecting wheel Using cached https://www.piwheels.org/simple/wheel/wheel-0.43.0-py3-none-any.whl (65 kB) Installing collected packages: wheel, setuptools Attempting uninstall: setuptools Found existing installation: setuptools 44.1.1 Uninstalling setuptools-44.1.1: Successfully uninstalled setuptools-44.1.1 Successfully installed setuptools-70.1.0 wheel-0.43.0 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple ERROR: Could not find a version that satisfies the requirement tflite-runtime==2.14.0 (from versions: 2.7.0, 2.8.0, 2.9.1, 2.10.0, 2.11.0, 2.12.0, 2.13.0) ERROR: No matching distribution found for tflite-runtime==2.14.0 Traceback (most recent call last): File "/home/pi/wyoming-openwakeword/script/setup", line 26, in subprocess.check_call(pip + ["install", "-r", str(_PROGRAM_DIR / "requirements.txt")]) File "/usr/lib/python3.9/subprocess.py", line 373, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/home/pi/wyoming-openwakeword/.venv/bin/python3', '-m', 'pip', 'install', '-r', '/home/pi/wyoming-openwakeword/requirements.txt']' returned non-zero exit status 1.

gerlinl commented 4 months ago

Sorry, I don't know how to resolve that. I started with a new install of Raspberry Pi OS 64-bit on a Pi4.

I followed these instructions: https://github.com/rhasspy/wyoming-satellite/blob/20bbd3cb4f69f26930d8ecb577901472c2df17fd/docs/tutorial_2mic.md

I had to fight with getting wyoming-satellite to use my speaker when running via systemctl, though I got past that.

As far as wyoming-openwakeword, once I updated the requirements.txt and ran setup, I had no errors.

I am assuming you ran these commands from the instructions (near the top) to get the latest packages:

sudo apt-get update
sudo apt-get install --no-install-recommends  \
  git \
  python3-venv
owingst commented 4 months ago

Is that OS 64-bit bookworm or bullseye...regular or lite...?

gerlinl commented 4 months ago
admin@wva1:~/wyoming-openwakeword$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:        12
Codename:       bookworm
admin@wva1:~/wyoming-openwakeword$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

I probably should have used the lite version, though I did not, I used this:

image

gerlinl commented 4 months ago

If the voice assistant works well for me, I plan on building a few. Since I had to fight with some sound configuration, I ended up not having the install procedure documented as well as I would like. A little later today, I will put in a new card (with fresh 64-bit Lite OS image), and go through the process again (and document it for myself). I will post an update if I run into the issue you are seeing or not.

gerlinl commented 4 months ago

It still works for me with the lite version of Rasberry PI OS (64-bit).

Here are the steps and results for the openwakeword install...

Make sure to be in home directory: admin@RPIVA2:~$ cd

Run the gitclone:

admin@RPIVA2:~$ git clone https://github.com/rhasspy/wyoming-openwakeword.git
Cloning into 'wyoming-openwakeword'...
remote: Enumerating objects: 191, done.
remote: Counting objects: 100% (110/110), done.
remote: Compressing objects: 100% (64/64), done.
remote: Total 191 (delta 59), reused 74 (delta 37), pack-reused 81
Receiving objects: 100% (191/191), 5.24 MiB | 4.86 MiB/s, done.
Resolving deltas: 100% (96/96), done.
admin@RPIVA2:~$ 

Change to the openwakeword directory: admin@RPIVA2:~$ cd wyoming-openwakeword

I then edited the requirements.txt file

Contents of file after editing:

admin@RPIVA2:~/wyoming-openwakeword$ cat requirements.txt
tflite-runtime==2.14.0
wyoming==1.5.3
numpy==1.23.5
admin@RPIVA2:~$ 

Run the setup script:

admin@RPIVA2:~/wyoming-openwakeword$ script/setup
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: pip in ./.venv/lib/python3.11/site-packages (23.0.1)
Collecting pip
  Using cached https://www.piwheels.org/simple/pip/pip-24.1-py3-none-any.whl (1.8 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.0.1
    Uninstalling pip-23.0.1:
      Successfully uninstalled pip-23.0.1
Successfully installed pip-24.1
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: setuptools in ./.venv/lib/python3.11/site-packages (66.1.1)
Collecting setuptools
  Using cached https://www.piwheels.org/simple/setuptools/setuptools-70.1.0-py3-none-any.whl (882 kB)
Collecting wheel
  Using cached https://www.piwheels.org/simple/wheel/wheel-0.43.0-py3-none-any.whl (65 kB)
Installing collected packages: wheel, setuptools
  Attempting uninstall: setuptools
    Found existing installation: setuptools 66.1.1
    Uninstalling setuptools-66.1.1:
      Successfully uninstalled setuptools-66.1.1
Successfully installed setuptools-70.1.0 wheel-0.43.0
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting tflite-runtime==2.14.0 (from -r /home/admin/wyoming-openwakeword/requirements.txt (line 1))
  Downloading tflite_runtime-2.14.0-cp311-cp311-manylinux_2_34_aarch64.whl.metadata (1.4 kB)
Collecting wyoming==1.5.3 (from -r /home/admin/wyoming-openwakeword/requirements.txt (line 2))
  Using cached wyoming-1.5.3-py3-none-any.whl.metadata (917 bytes)
Collecting numpy==1.23.5 (from -r /home/admin/wyoming-openwakeword/requirements.txt (line 3))
  Downloading numpy-1.23.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (2.3 kB)
Downloading tflite_runtime-2.14.0-cp311-cp311-manylinux_2_34_aarch64.whl (2.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3/2.3 MB 3.9 MB/s eta 0:00:00
Using cached wyoming-1.5.3-py3-none-any.whl (26 kB)
Downloading numpy-1.23.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.9 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.9/13.9 MB 4.2 MB/s eta 0:00:00
Installing collected packages: wyoming, numpy, tflite-runtime
Successfully installed numpy-1.23.5 tflite-runtime-2.14.0 wyoming-1.5.3
admin@RPIVA2:~$ 

No errors reported (just some junk since my terminal is not configured for the block graphics), the last line shows the versions of the packages installed

startup openwakeword from command prompt to test:

admin@RPIVA2:~/wyoming-openwakeword$ /home/admin/wyoming-openwakeword/script/run --uri 'tcp://127.0.0.1:10400'
INFO:root:Ready

No errors, just sits at "Ready".

So I think all as expected.

owingst commented 4 months ago

I decided to try 64-bit bookworm, but unable to get to github from the rpi...but i am able to do so from my mac...so not sure what that can be.

pi@pi4:~ $ git clone https://github.com/rhasspy/wyoming-satellite.git Cloning into 'wyoming-satellite'... fatal: unable to access 'https://github.com/rhasspy/wyoming-satellite.git/': Failed to connect to github.com port 443 after 3089 ms: Couldn't connect to server

So I am working on that before I can get back to openwakeword...

gerlinl commented 4 months ago

Still working here, I just did a clone into my temp dir to be sure:

admin@RPIVA2:/tmp$ git clone https://github.com/rhasspy/wyoming-satellite.git
Cloning into 'wyoming-satellite'...
remote: Enumerating objects: 659, done.
remote: Counting objects: 100% (246/246), done.
remote: Compressing objects: 100% (74/74), done.
remote: Total 659 (delta 193), reused 186 (delta 170), pack-reused 413
Receiving objects: 100% (659/659), 246.41 KiB | 1.91 MiB/s, done.
Resolving deltas: 100% (381/381), done.
admin@RPIVA2:/tmp$ 
owingst commented 4 months ago

I moved back to rpi zero 2 W with bullseye 64-bit lite and tried it multiple times, but cannot get past this error. I found a post on this issue but the fix did not help. The first time I got wyoming satellite to work with none of these issues. Not sure what else to do to get around this issue...

tflite issue

ERROR: Could not find a version that satisfies the requirement tflite-runtime==2.14.0 ERROR: No matching distribution found for tflite-runtime==2.14.0

tannisroot commented 4 months ago

I moved back to rpi zero 2 W with bullseye 64-bit lite and tried it multiple times, but cannot get past this error. I found a post on this issue but the fix did not help. The first time I got wyoming satellite to work with none of these issues. Not sure what else to do to get around this issue...

tflite issue

ERROR: Could not find a version that satisfies the requirement tflite-runtime==2.14.0 ERROR: No matching distribution found for tflite-runtime==2.14.0

There is no 2.14 version of tflite-runtime wheel for bullseye, last is 2.13

owingst commented 4 months ago

ok, got it to work. Running on Pi 4 (8 gb) Bookworm 64 bit (Desktop, etc). Nice to be able to move on from Bullseye. Thanks everyone for your help!