I do like the reSpeaker 4-mic HAT on a RasPi 3A, particularly because of the patterns you can make with the LEDs to give feedback. The down sides are that all of the reSpeaker-type boards + RasPi are too expensive to deploy everywhere; and the driver does not make use of all the mics (and probably never will).
The reason I put emphasis on testing the audio in and out is because i also had problems with that Now, can I remember what my problem was and how I resolved it ? …
Looking back on my initial notes … the 4-mic HAT uses a different sound chip, so instructions for your card (ReSpeaker 4-Mic Array for Raspberry Pi | Seeed Studio Wiki).
HinTak was updating the driver for different Raspi OS versions, and I haven’t touched anything on mine since i got it working (uname -r returns 5.10.103-v7+) … so wondering if the reSpeaker driver is a bit behind the latest RasPi OS’s kernel ?
Which RasPi OS are you using ? the 32-bit Lite version ?
I tested using headphones, for which the aplay -L entry was
plughw:CARD=Headphones,DEV=0
bcm2835 Headphones, bcm2835 Headphones
Hardware device with all software conversions
to test with 2 channels (left and right)
$ speaker-test -c2 -Dplughw:CARD=Headphones,DEV=0
To test microphone, arecord -L included
$ arecord -L
plughw:CARD=seeed4micvoicec,DEV=0
seeed-4mic-voicecard, bcm2835-i2s-ac10x-codec0 ac10x-codec0-0
Hardware device with all software conversions
I did note:
The reSpeaker 4-mic HAT appears to only allow recording of all 4 microphones (-channels 4) and -format of “S32_LE” with other options giving errors.
$ arecord -Dac108 -fS32_LE -r16000 -c4 hello.wav
Recording WAVE 'hello.wav' : Signed 32 bit Little Endian, Rate 16000 Hz, Channels 4
^C
Whatever the microphones hear after entering the command and until you press will be saved to file “test.wav”.
Playing the test.wav file to check the recording requires an extra step for the 4-mic HAT because the recording is in S32-LE format but aplay works with S16_LE but not S32_LE I installed and ran sox to convert formats
sudo apt-get install sox
sox -v8 hello.wav -c2 -b16 stereo.wav
aplay -Dhw:1 stereo.wav
Well, that does seem sufficiently different from the 2-mic reSpeaker I hope that this is the hints that you were missing.
Current Rhasspy configuration for this satellite is:
{
"home_assistant": {
"access_token": "eyJ0eXAi ... ma_XmCZf2SenOU",
"url": "http://192.168.1.98:8123/"
},
"intent": {
"system": "hermes"
},
"microphone": {
"arecord": {
"device": "plughw:CARD=seeed4micvoicec,DEV=0",
"udp_audio_port": "12203"
},
"system": "arecord"
},
"mqtt": {
"enabled": "true",
"host": "192.168.1.98",
"password": "password",
"port": "1883",
"site_id": "sat-1",
"username": "rhasspy"
},
"sounds": {
"aplay": {
"device": "plughw:CARD=Headphones,DEV=0",
"volume": "0.8"
},
"system": "aplay"
},
"speech_to_text": {
"system": "hermes"
},
"text_to_speech": {
"system": "hermes"
},
"wake": {
"porcupine": {
"keyword_path": "porcupine_raspberry-pi.ppn",
"sensitivity": "0.3",
"udp_audio": "12203"
},
"system": "porcupine"
}
}