rhasspy / wyoming-openwakeword

Wyoming protocol server for openWakeWord wake word detection system
MIT License
82 stars 23 forks source link

Cannot install tflite-runtime-nightly #21

Open formatBCE opened 1 month ago

formatBCE commented 1 month ago

Here's what i'm getting when trying to install tflite-runtime-nightly on Python 3.9.2:

pip install tflite-runtime-nightly
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
ERROR: Could not find a version that satisfies the requirement tflite-runtime-nightly (from versions: none)
ERROR: No matching distribution found for tflite-runtime-nightly

I guess, changing that dependency to tflite-runtime would work. But as of now, installer from https://github.com/rhasspy/wyoming-satellite/blob/master/docs/tutorial_installer.md doesn't work, because it's pulling repo and installs as-is. So it fails to install wake word.

jeremyfa55 commented 1 month ago

Hello,

I have also the same issue :

With the setup script :

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
ERROR: Could not find a version that satisfies the requirement tflite-runtime-nightly (from versions: none)
ERROR: No matching distribution found for tflite-runtime-nightly
Traceback (most recent call last):
  File "/home/jeremy/wyoming-openwakeword/script/setup", line 26, in <module>
    subprocess.check_call(pip + ["install", "-r", str(_PROGRAM_DIR / "requirements.txt")])
  File "/usr/lib/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/jeremy/wyoming-openwakeword/.venv/bin/python3', '-m', 'pip', 'install', '-r', '/home/jeremy/wyoming-openwakeword/requirements.txt']' returned non-zero exit status 1.

When i tried to install tflite-runtime-nightly separately :

jeremy@alfred:~/wyoming-openwakeword $ /home/jeremy/wyoming-openwakeword/.venv/bin/pip install "tflite-runtime-nightly==2.13.0.dev20230214" Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple ERROR: Could not find a version that satisfies the requirement tflite-runtime-nightly==2.13.0.dev20230214 (from versions: none) ERROR: No matching distribution found for tflite-runtime-nightly==2.13.0.dev20230214

I also tried to remove "Nightly" from the requirement.txt, but i still got the error

I'm on a raspberry pi zero w with python 3.11.2

j5bart commented 1 month ago

I have submitted #20 to get this fixed but still waiting to be merged.

jeremyfa55 commented 1 month ago

I have submitted #20 to get this fixed but still waiting to be merged.

I'm not sure this will work as modifying the file directly does not change anything and still gives an error :

jeremy@alfred:~/wyoming-openwakeword $ cat requirements.txt
tflite_runtime
wyoming==1.5.3
jeremy@alfred:~/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 (24.0)
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: setuptools in ./.venv/lib/python3.11/site-packages (69.5.1)
Requirement already satisfied: wheel in ./.venv/lib/python3.11/site-packages (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 (from versions: none)
ERROR: No matching distribution found for tflite_runtime
Traceback (most recent call last):
  File "/home/jeremy/wyoming-openwakeword/script/setup", line 26, in <module>
    subprocess.check_call(pip + ["install", "-r", str(_PROGRAM_DIR / "requirements.txt")])
  File "/usr/lib/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/jeremy/wyoming-openwakeword/.venv/bin/python3', '-m', 'pip', 'install', '-r', '/home/jeremy/wyoming-openwakeword/requirements.txt']' returned non-zero exit status 1.
formatBCE commented 1 month ago

@jeremyfa55 IDK for me it fixed installation.

jeremyfa55 commented 1 month ago

ok, that's strange, i opened a ticket directly on piwheels github and they told me that they skip this package as there is no source available to build from :

https://github.com/piwheels/packages/issues/450

Seems to be the case for tflite-runtime as well

formatBCE commented 1 month ago

But openwakeword requires tflite. And tflite has releases available. Try installing it with pip, it works.

jeremyfa55 commented 1 month ago

i tried with pip and i have the same error ;

jeremy@alfred:~ $ /home/jeremy/wyoming-openwakeword/.venv/bin/pip install tflite_runtime
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
ERROR: Could not find a version that satisfies the requirement tflite_runtime (from versions: none)
ERROR: No matching distribution found for tflite_runtime

If you look on piwheels tflite-runtime has also been skipped :

https://www.piwheels.org/project/tflite-runtime/

I'm trying to install it since 2 days, i'm clueless...

j5bart commented 1 month ago

@jeremyfa55 make sure tflite-runtime in your requirements.txt and not tflite_runtime?

jeremyfa55 commented 1 month ago

yes, i checked it as well :

jeremy@alfred:~/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 (24.0)
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: setuptools in ./.venv/lib/python3.11/site-packages (69.5.1)
Requirement already satisfied: wheel in ./.venv/lib/python3.11/site-packages (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 (from versions: none)
ERROR: No matching distribution found for tflite-runtime
Traceback (most recent call last):
  File "/home/jeremy/wyoming-openwakeword/script/setup", line 26, in <module>
    subprocess.check_call(pip + ["install", "-r", str(_PROGRAM_DIR / "requirements.txt")])
  File "/usr/lib/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/jeremy/wyoming-openwakeword/.venv/bin/python3', '-m', 'pip', 'install', '-r', '/home/jeremy/wyoming-openwakeword/requirements.txt']' returned non-zero exit status 1.
synesthesiam commented 1 month ago

Is your Python version too new or too old?

jeremyfa55 commented 1 month ago

Is your Python version too new or too old?

I'm on python Python 3.11.2, should i upgrade or downgrade ?

jeremyfa55 commented 1 month ago

I am running it on a rapberry 0 w (First gen) which is an ARMv6 architecture where the zero 2 w is an Armv7, i suspect this is my issue... i will try on a PI 3B+ to verify this

synesthesiam commented 1 month ago

This is likely the issue. They don't provide a wheel for armv6.

jeremyfa55 commented 1 month ago

yes i just did the install on a RPI 3B+ and it worked like a charm, sorry for the waste of time.. And Thanks for the amazing work you do

formatBCE commented 1 month ago

I have Pi Zero 2w. It worked before (I have one satellite for several months), and now it doesn't. So problem exists anyway.

EwoudDG commented 1 month ago

I removed the -nightly in requirements.txt and it worked for me.

tannisroot commented 1 month ago

I have Pi Zero 2w. It worked before (I have one satellite for several months), and now it doesn't. So problem exists anyway.

If you are using Legacy Raspberry Pi OS (Bullseye), it appears that tflite-runtime dropped support for it, so try installing non-legacy Raspberry Pi OS and using that. See https://github.com/rhasspy/wyoming-satellite/issues/151#issuecomment-2105318405 if you need to install ReSpeaker drivers.

formatBCE commented 1 month ago

I have Pi Zero 2w. It worked before (I have one satellite for several months), and now it doesn't. So problem exists anyway.

If you are using Legacy Raspberry Pi OS (Bullseye), it appears that tflite-runtime dropped support for it, so try installing non-legacy Raspberry Pi OS and using that. See https://github.com/rhasspy/wyoming-satellite/issues/151#issuecomment-2105318405 if you need to install ReSpeaker drivers.

Thanks. Will definitely work for manual installation. It's pretty extensive though for rookies. I myself find installation script the best way to get satellite. It's really cool. But changes needed. :)

formatBCE commented 1 month ago

This one: https://github.com/rhasspy/wyoming-satellite/blob/master/docs/tutorial_installer.md

tannisroot commented 1 month ago

This one: https://github.com/rhasspy/wyoming-satellite/blob/master/docs/tutorial_installer.md

Could you try using the instructions for the installer under non-Legacy (bookworm) version of Raspberry Pi OS Lite, but instead of

git clone https://github.com/rhasspy/wyoming-satellite.git

use this command?

git clone -b driver_installer_fix https://github.com/tannisroot/wyoming-satellite.git
formatBCE commented 1 month ago

Could you try using the instructions for the installer under non-Legacy (bookworm) version of Raspberry Pi OS Lite, but instead of

I will, thanks! Basically, I have my assistant working, but will try going from scratch to verify its work for others. :)

Nokius commented 1 month ago

This one: https://github.com/rhasspy/wyoming-satellite/blob/master/docs/tutorial_installer.md

Could you try using the instructions for the installer under non-Legacy (bookworm) version of Raspberry Pi OS Lite, but instead of

git clone https://github.com/rhasspy/wyoming-satellite.git

use this command?

git clone -b driver_installer_fix https://github.com/tannisroot/wyoming-satellite.git

EDIT: did a rerun to make sure I didn't do a mistake. Looks like I missed after the 'apt upgrade' a reboot this are the results now

the install is possible with no issue but the ReSpeaker 4Mic HAT is not recognized

voiceassistant@voiceassistant:~ $ uname -a
Linux voiceassistant 6.6.28+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.28-1+rpt1 (2024-04-22) aarch64 GNU/Linux
voiceassistant@voiceassistant:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:    12
Codename:   bookworm
voiceassistant@voiceassistant:~ $ pinout
Description        : Raspberry Pi 4B rev 1.1
Revision           : a03111
SoC                : BCM2711
RAM                : 1GB
Storage            : MicroSD
USB ports          : 4 (of which 2 USB3)
Ethernet ports     : 1 (1000Mbps max. speed)
Wi-fi              : True
Bluetooth          : True
Camera ports (CSI) : 1
Display ports (DSI): 1

,--------------------------------.
| oooooooooooooooooooo J8   +======
| 1ooooooooooooooooooo  J14 |   Net
|  Wi                    12 +======
|  Fi  Pi Model 4B  V1.1 oo      |
| |D     ,---. +---+          +====
| |S     |SoC| |RAM|          |USB3
| |I     `---' +---+          +====
| |0                C|           |
| oo1 J2            S|        +====
|                   I| |A|    |USB2
| pwr   |hd|   |hd| 0| |u|    +====
`-| |---|m0|---|m1|----|x|-------'

J8:
   3V3  (1) (2)  5V
 GPIO2  (3) (4)  5V
 GPIO3  (5) (6)  GND
 GPIO4  (7) (8)  GPIO14
   GND  (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND
GPIO22 (15) (16) GPIO23
   3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND
 GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8
   GND (25) (26) GPIO7
 GPIO0 (27) (28) GPIO1
 GPIO5 (29) (30) GND
 GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
   GND (39) (40) GPIO21

J2:
GLOBAL ENABLE (1)
          GND (2)
          RUN (3)

J14:
TR01 TAP (1) (2) TR00 TAP
TR03 TAP (3) (4) TR02 TAP

For further information, please refer to https://pinout.xyz/
voiceassistant@voiceassistant:~ $ arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
lavrate
    Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
    Rate Converter Plugin Using Samplerate Library
speexrate
    Rate Converter Plugin Using Speex Resampler
jack
    JACK Audio Connection Kit
oss
    Open Sound System
pulse
    PulseAudio Sound Server
speex
    Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
default
playback
ac108
usbstream:CARD=Headphones
    bcm2835 Headphones
    USB Stream Output
usbstream:CARD=vc4hdmi0
    vc4-hdmi-0
    USB Stream Output
usbstream:CARD=vc4hdmi1
    vc4-hdmi-1
    USB Stream Output

dmesg

.....
[    4.871271] snd_soc_seeed_voicecard: loading out-of-tree module taints kernel.
.....

lsmod | grep seeed
snd_soc_seeed_voicecard    16384  1 snd_soc_ac108
snd_soc_simple_card_utils    32768  1 snd_soc_seeed_voicecard
snd_soc_core          307200  5 snd_soc_seeed_voicecard,vc4,snd_soc_hdmi_codec,snd_soc_ac108,snd_soc_simple_card_utils

If running the arecord with default option I get following error

arecord -D default -r 16000 -c 1 -f S16_LE -t wav -d 5 test.wav
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for seeed4micvoicec
arecord: main:831: audio open error: No such device
Nokius commented 1 month ago

whie trying to understand where the issue may comes from I spotted following in the logs of the seeed-voicecard.service

May 19 13:13:36 voiceassistant seeed-voicecard[2874]: + alsactl restore
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: alsa-lib main.c:1541:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: No state is present for card Headphones
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: alsa-lib main.c:1541:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: /usr/share/alsa/init/bcm2835:20: control element not found
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: No state is present for card Headphones
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: alsa-lib main.c:1541:(snd_use_case_mgr_open) error: failed to import hw:1 use case configuration -2
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: No state is present for card vc4hdmi0
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: alsa-lib main.c:1541:(snd_use_case_mgr_open) error: failed to import hw:1 use case configuration -2
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: Found hardware: "vc4-hdmi" "" "" "" ""
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: Hardware is initialized using a generic method
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: No state is present for card vc4hdmi0
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: alsa-lib main.c:1541:(snd_use_case_mgr_open) error: failed to import hw:2 use case configuration -2
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: No state is present for card vc4hdmi1
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: alsa-lib main.c:1541:(snd_use_case_mgr_open) error: failed to import hw:2 use case configuration -2
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: Found hardware: "vc4-hdmi" "" "" "" ""
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: Hardware is initialized using a generic method
May 19 13:13:36 voiceassistant seeed-voicecard[2946]: No state is present for card vc4hdmi1
tannisroot commented 1 month ago

This one: https://github.com/rhasspy/wyoming-satellite/blob/master/docs/tutorial_installer.md

Could you try using the instructions for the installer under non-Legacy (bookworm) version of Raspberry Pi OS Lite, but instead of

git clone https://github.com/rhasspy/wyoming-satellite.git

use this command?

git clone -b driver_installer_fix https://github.com/tannisroot/wyoming-satellite.git

EDIT: did a rerun to make sure I didn't do a mistake. Looks like I missed after the 'apt upgrade' a reboot this are the results now

the install is possible with no issue but the ReSpeaker 4Mic HAT is not recognized

voiceassistant@voiceassistant:~ $ uname -a
Linux voiceassistant 6.6.28+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.28-1+rpt1 (2024-04-22) aarch64 GNU/Linux
voiceassistant@voiceassistant:~ $ lsb_release -a
No LSB modules are available.
Distributor ID:   Debian
Description:  Debian GNU/Linux 12 (bookworm)
Release:  12
Codename: bookworm
voiceassistant@voiceassistant:~ $ pinout
Description        : Raspberry Pi 4B rev 1.1
Revision           : a03111
SoC                : BCM2711
RAM                : 1GB
Storage            : MicroSD
USB ports          : 4 (of which 2 USB3)
Ethernet ports     : 1 (1000Mbps max. speed)
Wi-fi              : True
Bluetooth          : True
Camera ports (CSI) : 1
Display ports (DSI): 1

,--------------------------------.
| oooooooooooooooooooo J8   +======
| 1ooooooooooooooooooo  J14 |   Net
|  Wi                    12 +======
|  Fi  Pi Model 4B  V1.1 oo      |
| |D     ,---. +---+          +====
| |S     |SoC| |RAM|          |USB3
| |I     `---' +---+          +====
| |0                C|           |
| oo1 J2            S|        +====
|                   I| |A|    |USB2
| pwr   |hd|   |hd| 0| |u|    +====
`-| |---|m0|---|m1|----|x|-------'

J8:
   3V3  (1) (2)  5V
 GPIO2  (3) (4)  5V
 GPIO3  (5) (6)  GND
 GPIO4  (7) (8)  GPIO14
   GND  (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND
GPIO22 (15) (16) GPIO23
   3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND
 GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8
   GND (25) (26) GPIO7
 GPIO0 (27) (28) GPIO1
 GPIO5 (29) (30) GND
 GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
   GND (39) (40) GPIO21

J2:
GLOBAL ENABLE (1)
          GND (2)
          RUN (3)

J14:
TR01 TAP (1) (2) TR00 TAP
TR03 TAP (3) (4) TR02 TAP

For further information, please refer to https://pinout.xyz/
voiceassistant@voiceassistant:~ $ arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
lavrate
    Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
    Rate Converter Plugin Using Samplerate Library
speexrate
    Rate Converter Plugin Using Speex Resampler
jack
    JACK Audio Connection Kit
oss
    Open Sound System
pulse
    PulseAudio Sound Server
speex
    Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
default
playback
ac108
usbstream:CARD=Headphones
    bcm2835 Headphones
    USB Stream Output
usbstream:CARD=vc4hdmi0
    vc4-hdmi-0
    USB Stream Output
usbstream:CARD=vc4hdmi1
    vc4-hdmi-1
    USB Stream Output

dmesg

.....
[    4.871271] snd_soc_seeed_voicecard: loading out-of-tree module taints kernel.
.....

lsmod | grep seeed
snd_soc_seeed_voicecard    16384  1 snd_soc_ac108
snd_soc_simple_card_utils    32768  1 snd_soc_seeed_voicecard
snd_soc_core          307200  5 snd_soc_seeed_voicecard,vc4,snd_soc_hdmi_codec,snd_soc_ac108,snd_soc_simple_card_utils

If running the arecord with default option I get following error

arecord -D default -r 16000 -c 1 -f S16_LE -t wav -d 5 test.wav
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for seeed4micvoicec
arecord: main:831: audio open error: No such device

Did the 4mic card work correctly with 6.1 kernel (Legacy Raspi os?)

tannisroot commented 1 month ago

Also, could you please show me the picture of the exact HAT board you are using this with? Do I understand correctly it's the variation that plugs into GPIO pins?

Nokius commented 1 month ago

This one: https://github.com/rhasspy/wyoming-satellite/blob/master/docs/tutorial_installer.md

Could you try using the instructions for the installer under non-Legacy (bookworm) version of Raspberry Pi OS Lite, but instead of

git clone https://github.com/rhasspy/wyoming-satellite.git

use this command?

git clone -b driver_installer_fix https://github.com/tannisroot/wyoming-satellite.git

EDIT: did a rerun to make sure I didn't do a mistake. Looks like I missed after the 'apt upgrade' a reboot this are the results now the install is possible with no issue but the ReSpeaker 4Mic HAT is not recognized

voiceassistant@voiceassistant:~ $ uname -a
Linux voiceassistant 6.6.28+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.28-1+rpt1 (2024-04-22) aarch64 GNU/Linux
voiceassistant@voiceassistant:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:    12
Codename:   bookworm
voiceassistant@voiceassistant:~ $ pinout
Description        : Raspberry Pi 4B rev 1.1
Revision           : a03111
SoC                : BCM2711
RAM                : 1GB
Storage            : MicroSD
USB ports          : 4 (of which 2 USB3)
Ethernet ports     : 1 (1000Mbps max. speed)
Wi-fi              : True
Bluetooth          : True
Camera ports (CSI) : 1
Display ports (DSI): 1

,--------------------------------.
| oooooooooooooooooooo J8   +======
| 1ooooooooooooooooooo  J14 |   Net
|  Wi                    12 +======
|  Fi  Pi Model 4B  V1.1 oo      |
| |D     ,---. +---+          +====
| |S     |SoC| |RAM|          |USB3
| |I     `---' +---+          +====
| |0                C|           |
| oo1 J2            S|        +====
|                   I| |A|    |USB2
| pwr   |hd|   |hd| 0| |u|    +====
`-| |---|m0|---|m1|----|x|-------'

J8:
   3V3  (1) (2)  5V
 GPIO2  (3) (4)  5V
 GPIO3  (5) (6)  GND
 GPIO4  (7) (8)  GPIO14
   GND  (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND
GPIO22 (15) (16) GPIO23
   3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND
 GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8
   GND (25) (26) GPIO7
 GPIO0 (27) (28) GPIO1
 GPIO5 (29) (30) GND
 GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
   GND (39) (40) GPIO21

J2:
GLOBAL ENABLE (1)
          GND (2)
          RUN (3)

J14:
TR01 TAP (1) (2) TR00 TAP
TR03 TAP (3) (4) TR02 TAP

For further information, please refer to https://pinout.xyz/
voiceassistant@voiceassistant:~ $ arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
lavrate
    Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
    Rate Converter Plugin Using Samplerate Library
speexrate
    Rate Converter Plugin Using Speex Resampler
jack
    JACK Audio Connection Kit
oss
    Open Sound System
pulse
    PulseAudio Sound Server
speex
    Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
default
playback
ac108
usbstream:CARD=Headphones
    bcm2835 Headphones
    USB Stream Output
usbstream:CARD=vc4hdmi0
    vc4-hdmi-0
    USB Stream Output
usbstream:CARD=vc4hdmi1
    vc4-hdmi-1
    USB Stream Output

dmesg

.....
[    4.871271] snd_soc_seeed_voicecard: loading out-of-tree module taints kernel.
.....

lsmod | grep seeed
snd_soc_seeed_voicecard    16384  1 snd_soc_ac108
snd_soc_simple_card_utils    32768  1 snd_soc_seeed_voicecard
snd_soc_core          307200  5 snd_soc_seeed_voicecard,vc4,snd_soc_hdmi_codec,snd_soc_ac108,snd_soc_simple_card_utils

If running the arecord with default option I get following error

arecord -D default -r 16000 -c 1 -f S16_LE -t wav -d 5 test.wav
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for seeed4micvoicec
arecord: main:831: audio open error: No such device

Did the 4mic card work correctly with 6.1 kernel (Legacy Raspi os?)

yes it works perfectly fine on :

voiceassistant@voiceassistant:~/wyoming-satellite/examples $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye
voiceassistant@voiceassistant:~/wyoming-satellite/examples $ uname -a
Linux voiceassistant 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux

Also verifed both 2mic and 4mic are not working under 6.6 kernel

Nokius commented 1 month ago

Also, could you please show me the picture of the exact HAT board you are using this with? Do I understand correctly it's the variation that plugs into GPIO pins?

It's v1.0 - 08/08/2017

4micReSpeaker

tannisroot commented 1 month ago

This one: https://github.com/rhasspy/wyoming-satellite/blob/master/docs/tutorial_installer.md

Could you try using the instructions for the installer under non-Legacy (bookworm) version of Raspberry Pi OS Lite, but instead of

git clone https://github.com/rhasspy/wyoming-satellite.git

use this command?

git clone -b driver_installer_fix https://github.com/tannisroot/wyoming-satellite.git

EDIT: did a rerun to make sure I didn't do a mistake. Looks like I missed after the 'apt upgrade' a reboot this are the results now the install is possible with no issue but the ReSpeaker 4Mic HAT is not recognized

voiceassistant@voiceassistant:~ $ uname -a
Linux voiceassistant 6.6.28+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.28-1+rpt1 (2024-04-22) aarch64 GNU/Linux
voiceassistant@voiceassistant:~ $ lsb_release -a
No LSB modules are available.
Distributor ID:   Debian
Description:  Debian GNU/Linux 12 (bookworm)
Release:  12
Codename: bookworm
voiceassistant@voiceassistant:~ $ pinout
Description        : Raspberry Pi 4B rev 1.1
Revision           : a03111
SoC                : BCM2711
RAM                : 1GB
Storage            : MicroSD
USB ports          : 4 (of which 2 USB3)
Ethernet ports     : 1 (1000Mbps max. speed)
Wi-fi              : True
Bluetooth          : True
Camera ports (CSI) : 1
Display ports (DSI): 1

,--------------------------------.
| oooooooooooooooooooo J8   +======
| 1ooooooooooooooooooo  J14 |   Net
|  Wi                    12 +======
|  Fi  Pi Model 4B  V1.1 oo      |
| |D     ,---. +---+          +====
| |S     |SoC| |RAM|          |USB3
| |I     `---' +---+          +====
| |0                C|           |
| oo1 J2            S|        +====
|                   I| |A|    |USB2
| pwr   |hd|   |hd| 0| |u|    +====
`-| |---|m0|---|m1|----|x|-------'

J8:
   3V3  (1) (2)  5V
 GPIO2  (3) (4)  5V
 GPIO3  (5) (6)  GND
 GPIO4  (7) (8)  GPIO14
   GND  (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND
GPIO22 (15) (16) GPIO23
   3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND
 GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8
   GND (25) (26) GPIO7
 GPIO0 (27) (28) GPIO1
 GPIO5 (29) (30) GND
 GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
   GND (39) (40) GPIO21

J2:
GLOBAL ENABLE (1)
          GND (2)
          RUN (3)

J14:
TR01 TAP (1) (2) TR00 TAP
TR03 TAP (3) (4) TR02 TAP

For further information, please refer to https://pinout.xyz/
voiceassistant@voiceassistant:~ $ arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
lavrate
    Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
    Rate Converter Plugin Using Samplerate Library
speexrate
    Rate Converter Plugin Using Speex Resampler
jack
    JACK Audio Connection Kit
oss
    Open Sound System
pulse
    PulseAudio Sound Server
speex
    Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
default
playback
ac108
usbstream:CARD=Headphones
    bcm2835 Headphones
    USB Stream Output
usbstream:CARD=vc4hdmi0
    vc4-hdmi-0
    USB Stream Output
usbstream:CARD=vc4hdmi1
    vc4-hdmi-1
    USB Stream Output

dmesg

.....
[    4.871271] snd_soc_seeed_voicecard: loading out-of-tree module taints kernel.
.....

lsmod | grep seeed
snd_soc_seeed_voicecard    16384  1 snd_soc_ac108
snd_soc_simple_card_utils    32768  1 snd_soc_seeed_voicecard
snd_soc_core          307200  5 snd_soc_seeed_voicecard,vc4,snd_soc_hdmi_codec,snd_soc_ac108,snd_soc_simple_card_utils

If running the arecord with default option I get following error

arecord -D default -r 16000 -c 1 -f S16_LE -t wav -d 5 test.wav
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for seeed4micvoicec
arecord: main:831: audio open error: No such device

Did the 4mic card work correctly with 6.1 kernel (Legacy Raspi os?)

yes it works perfectly fine on :

voiceassistant@voiceassistant:~/wyoming-satellite/examples $ lsb_release -a
No LSB modules are available.
Distributor ID:   Debian
Description:  Debian GNU/Linux 11 (bullseye)
Release:  11
Codename: bullseye
voiceassistant@voiceassistant:~/wyoming-satellite/examples $ uname -a
Linux voiceassistant 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux

Also verifed both 2mic and 4mic are not working under 6.6 kernel

That's weird, I can't vouch for 4mic myself but on my Pi3 board, Respeaker 2mic worked fine under the 6.6 kernel.

Nokius commented 1 month ago

Tested both 4mic and 2mic on the shared RPi4 board and both are not working with 6.6 kernel. The issue should be moved over to the correct repo as it's just part of this project. (imho)

For now I use the modification in requirements.txt tflite-runtime-nightly to tflite-runtime which works for me on bullseye and 6.1

tannisroot commented 1 month ago

Tested both 4mic and 2mic on the shared RPi4 board and both are not working with 6.6 kernel. The issue should be moved over to the correct repo as it's just part of this project. (imho)

For now I use the modification in requirements.txt tflite-runtime-nightly to tflite-runtime which works for me on bullseye and 6.1

I've found that on bullseye, the 2.13 version of tflite-runtime gets installed, which for me has a tendency to crash, at least on zero2w.

donburch888 commented 1 month ago

Interesting long conversation... reinstalling on my RasPi 4 running bullseye version of Raspbian editing ~/wyoming-openwakeword/requirements.txt changing tflite-runtime-nightly to tflite-runtime then running script/setup ... worked for me.

Thanks

tensor5g commented 3 weeks ago

I am running Ubuntu 24.04 on my Pi and it seems like the included Python 3.12 version is too new. I suppose there is nothing we can do but wait for Google to update tflite-runtime? Or downgrade my OS.

tannisroot commented 3 weeks ago

I am running Ubuntu 24.04 on my Pi and it seems like the included Python 3.12 version is too new. I suppose there is nothing we can do but wait for Google to update tflite-runtime? Or downgrade my OS.

You can install python311 from somewhere (I imagine there are PPAs) and create a venv with that python version.

ramin40 commented 2 weeks ago

Interesting long conversation... reinstalling on my RasPi 4 running bullseye version of Raspbian editing ~/wyoming-openwakeword/requirements.txt changing tflite-runtime-nightly to tflite-runtime then running script/setup ... worked for me.

Thanks

Thank you. Did the changing of tflite-runtime-nightly to tflite-runtime cause any error or malfunction of the Wak word detector system?

tannisroot commented 2 weeks ago

Interesting long conversation... reinstalling on my RasPi 4 running bullseye version of Raspbian editing ~/wyoming-openwakeword/requirements.txt changing tflite-runtime-nightly to tflite-runtime then running script/setup ... worked for me. Thanks

Thank you. Did the changing of tflite-runtime-nightly to tflite-runtime cause any error or malfunction of the Wak word detector system?

It did for me personally before I abandoned bullseye, the service would at some point crash and not restart.

chrisbennight commented 2 weeks ago

for fellow python 3.12 users here is the tensorflow issue tracking publishing a compatible release: https://github.com/tensorflow/tensorflow/issues/62003