ReSpeaker 2-mic HAT not detected by Rhasspy new install

Not to be confused with my previous " ReSpeaker 4-mic HAT not detected by Rhasspy new install" haha, this is different.

I have previously setup a HA OS + Rhasspy add-on as a base station, and a RasPi 3B with reSpeaker 4-mic HAT, RasPi OS Lite, HinTak driver and Rhasspy as a satellite … and it works.

So i thought I would setup another satellite now (before chips get too hard to find and/or costly), this time with a RasPi Zero W and Adafruit Voice Bonnet (similar to reSpeaker 2-mic HAT, also using HinTak drivers).

I installed Raspberry Pi OS LITE, then followed Adafruit’s Overview | Adafruit Voice Bonnet | Adafruit Learning System instructions, installing HinTak’s v5.9 driver and testing with alsamixer, speaker-test and arecord/aplay without any problem. Finally installed from rhasspy_2.5.10_armel.deb, and run. Web interface works, so I went through the whole configuration the same as the other working satellite … but when I tested it doesn’t seem to hear or speak … and when I look at the console and logs there seem to be quite a few errors and python tracebacks. I switched MQTT from internal to Mosquito on the base machine which removed some errors.

Decided to take a fresh MicroSD and go through the whole procedure again carefully. Arecord/aplay tests out well and rhasspy installs smoothly. I selected External MQTT on the base 192.168.1.98. This time however the lists of audio devices in the “Audio Recording > arecord” and “Audio Playing > aplay” sections will not populate when the [Refresh] button is pressed. This is the console messages:

[DEBUG:2021-08-29 21:04:24,880] rhasspyserver_hermes: Restarting Rhasspy
2021-08-29 21:04:24,888 WARN received SIGHUP indicating restart request
2021-08-29 21:04:24,904 INFO waiting for microphone to die
Shutting down core
2021-08-29 21:04:24,933 INFO stopped: microphone (terminated by SIGTERM)
2021-08-29 21:04:25,039 INFO supervisord started with pid 1004
[DEBUG:2021-08-29 21:04:25,281] rhasspyprofile.profile: Loading /usr/lib/rhasspy/rhasspy-profile/rhasspyprofile/profiles/en/profile.json
[DEBUG:2021-08-29 21:04:25,304] rhasspyprofile.profile: Loading /home/pi/.config/rhasspy/profiles/en/profile.json
[DEBUG:2021-08-29 21:04:25,313] rhasspyprofile.profile: Loading default profile settings from /usr/lib/rhasspy/rhasspy-profile/rhasspyprofile/profiles/defaults.json
[DEBUG:2021-08-29 21:04:25,356] rhasspyserver_hermes: Starting core
[DEBUG:2021-08-29 21:04:25,360] rhasspyserver_hermes: Connecting to 192.168.1.98:1883 (retries: 0/10)
[DEBUG:2021-08-29 21:04:25,378] rhasspyserver_hermes: Connected to MQTT broker
[DEBUG:2021-08-29 21:04:25,386] rhasspyserver_hermes: Subscribed to hermes/hotword/+/detected
[DEBUG:2021-08-29 21:04:25,393] rhasspyserver_hermes: Subscribed to hermes/asr/textCaptured
[DEBUG:2021-08-29 21:04:25,399] rhasspyserver_hermes: Subscribed to hermes/intent/#
[DEBUG:2021-08-29 21:04:25,407] rhasspyserver_hermes: Subscribed to hermes/nlu/intentNotRecognized
[DEBUG:2021-08-29 21:04:25,413] rhasspyserver_hermes: Subscribed to rhasspy/asr/default/default/audioCaptured
[DEBUG:2021-08-29 21:04:25,419] rhasspyserver_hermes: Subscribed to hermes/audioServer/default/audioSummary
[DEBUG:2021-08-29 21:04:25,428] rhasspyserver_hermes: Subscribed to hermes/intent/#
[DEBUG:2021-08-29 21:04:25,435] rhasspyserver_hermes: Subscribed to hermes/audioServer/default/audioSummary
[DEBUG:2021-08-29 21:04:25,441] rhasspyserver_hermes: Subscribed to hermes/asr/textCaptured
[DEBUG:2021-08-29 21:04:25,449] rhasspyserver_hermes: Subscribed to hermes/hotword/+/detected
[DEBUG:2021-08-29 21:04:25,455] rhasspyserver_hermes: Subscribed to hermes/nlu/intentNotRecognized
[DEBUG:2021-08-29 21:04:25,462] rhasspyserver_hermes: Subscribed to rhasspy/asr/default/default/audioCaptured
[INFO:2021-08-29 21:04:25,471] rhasspyserver_hermes: Started
[DEBUG:2021-08-29 21:04:25,962] rhasspyprofile.download: speech_to_text.system pocketsphinx dummy = False
[DEBUG:2021-08-29 21:04:25,966] rhasspyprofile.download: speech_to_text.system kaldi dummy = False
[DEBUG:2021-08-29 21:04:25,971] rhasspyprofile.download: speech_to_text.system deepspeech dummy = False
[DEBUG:2021-08-29 21:04:25,982] rhasspyprofile.download: speech_to_text.pocketsphinx.open_transcription True False = False
[DEBUG:2021-08-29 21:04:25,990] rhasspyprofile.download: speech_to_text.kaldi.open_transcription True False = False
[DEBUG:2021-08-29 21:04:25,998] rhasspyprofile.download: speech_to_text.deepspeech.open_transcription True False = False
[DEBUG:2021-08-29 21:04:26,008] rhasspyprofile.download: speech_to_text.pocketsphinx.mix_weight >0 0 = False
[DEBUG:2021-08-29 21:04:26,015] rhasspyprofile.download: speech_to_text.kaldi.mix_weight >0 0 = False
[DEBUG:2021-08-29 21:04:26,022] rhasspyprofile.download: speech_to_text.deepspeech.mix_weight >0 0 = False
[DEBUG:2021-08-29 21:04:26,032] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx harvard) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,037] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_aew) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,042] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_ahw) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,055] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_aup) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,069] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_bdl) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,075] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_clb) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,082] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_eey) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,091] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_fem) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,110] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_jmk) ['dummy', 'harvard'] = False
2021-08-29 21:04:26,094 INFO spawned: 'microphone' with pid 1066
[DEBUG:2021-08-29 21:04:26,117] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_ksp) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,131] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_ljm) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,142] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_lnh) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,146] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_rms) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,168] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_rxr) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,173] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_slp) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,179] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx cmu_slt) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,186] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx blizzard_fls) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,205] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx ek) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,210] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx ljspeech) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,216] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.default_voice) (larynx kathleen) ['dummy', 'harvard'] = False
[DEBUG:2021-08-29 21:04:26,226] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.vocoder) (larynx universal_large) ['dummy', 'universal_large'] = False
[DEBUG:2021-08-29 21:04:26,237] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.vocoder) (larynx vctk_medium) ['dummy', 'universal_large'] = False
[DEBUG:2021-08-29 21:04:26,248] rhasspyprofile.download: (and text_to_speech.system text_to_speech.larynx.vocoder) (larynx vctk_small) ['dummy', 'universal_large'] = False
2021-08-29 21:04:27,129 INFO success: microphone entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
[DEBUG:2021-08-29 21:04:37,162] rhasspymicrophone_cli_hermes: Namespace(channels=1, debug=True, host='192.168.1.98', list_command='arecord -L', log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', output_site_id=None, password=None, port=1883, record_command='arecord -q -r 16000 -f S16_LE -c 1 -t raw', sample_rate=16000, sample_width=2, site_id=['default'], test_command='arecord -q -D {} -r 16000 -f S16_LE -c 1 -t raw', tls=False, tls_ca_certs=None, tls_cert_reqs='CERT_REQUIRED', tls_certfile=None, tls_ciphers=None, tls_keyfile=None, tls_version=None, udp_audio_host='127.0.0.1', udp_audio_port=None, username=None)
[DEBUG:2021-08-29 21:04:37,183] asyncio: Using selector: EpollSelector
[DEBUG:2021-08-29 21:04:37,200] rhasspymicrophone_cli_hermes: ['arecord', '-q', '-r', '16000', '-f', 'S16_LE', '-c', '1', '-t', 'raw']
[DEBUG:2021-08-29 21:04:37,202] rhasspymicrophone_cli_hermes: Connecting to 192.168.1.98:1883
[DEBUG:2021-08-29 21:04:37,276] rhasspymicrophone_cli_hermes: Recording audio
[DEBUG:2021-08-29 21:04:37,405] asyncio: Using selector: EpollSelector
[DEBUG:2021-08-29 21:04:37,412] rhasspymicrophone_cli_hermes: Connected to MQTT broker
[DEBUG:2021-08-29 21:04:37,427] rhasspymicrophone_cli_hermes: Subscribed to hermes/audioServer/toggleSummaryOn
[DEBUG:2021-08-29 21:04:37,436] rhasspymicrophone_cli_hermes: Subscribed to rhasspy/audioServer/getDevices
[DEBUG:2021-08-29 21:04:37,443] rhasspymicrophone_cli_hermes: Subscribed to hermes/audioServer/toggleSummaryOff
[DEBUG:2021-08-29 21:05:50,910] rhasspyserver_hermes: Subscribed to rhasspy/audioServer/devices
[DEBUG:2021-08-29 21:05:50,942] rhasspyserver_hermes: -> AudioGetDevices(modes=[<AudioDeviceMode.INPUT: 'input'>], site_id='default', id='cb5d2721-0778-494f-9a29-819d502cbce1', test=False)
[DEBUG:2021-08-29 21:05:50,962] rhasspyserver_hermes: Publishing 102 bytes(s) to rhasspy/audioServer/getDevices
[ERROR:2021-08-29 21:06:21,007] rhasspyserver_hermes: 
Traceback (most recent call last):
  File "/usr/lib/rhasspy/usr/local/lib/python3.7/site-packages/quart/app.py", line 1821, in full_dispatch_request
    result = await self.dispatch_request(request_context)
  File "/usr/lib/rhasspy/usr/local/lib/python3.7/site-packages/quart/app.py", line 1869, in dispatch_request
    return await handler(**request_.view_args)
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__main__.py", line 789, in api_microphones
    microphones = await core.get_microphones()
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 848, in get_microphones
    handle_finished(), messages, message_types
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 994, in publish_wait
    result_awaitable, timeout=timeout_seconds
  File "/usr/lib/rhasspy/usr/local/lib/python3.7/asyncio/tasks.py", line 449, in wait_for
    raise futures.TimeoutError()
concurrent.futures._base.TimeoutError
[DEBUG:2021-08-29 21:09:25,963] rhasspymicrophone_cli_hermes: Connected to MQTT broker
[DEBUG:2021-08-29 21:09:25,972] rhasspymicrophone_cli_hermes: Subscribed to hermes/audioServer/toggleSummaryOn
[DEBUG:2021-08-29 21:09:25,979] rhasspymicrophone_cli_hermes: Subscribed to rhasspy/audioServer/getDevices
[DEBUG:2021-08-29 21:09:25,987] rhasspymicrophone_cli_hermes: Subscribed to hermes/audioServer/toggleSummaryOff

Any suggestions ?

Strangely, my other working satellite stopped working. It is also giving a timeout, per the Rhasspy Log

[ERROR:2021-08-30 09:49:30,424] rhasspyserver_hermes: 
Traceback (most recent call last):
  File "/usr/lib/rhasspy/usr/local/lib/python3.7/site-packages/quart/app.py", line 1821, in full_dispatch_request
    result = await self.dispatch_request(request_context)
  File "/usr/lib/rhasspy/usr/local/lib/python3.7/site-packages/quart/app.py", line 1869, in dispatch_request
    return await handler(**request_.view_args)
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__main__.py", line 936, in api_listen_for_command
    async for response in core.publish_wait(handle_intent(), [], message_types):
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 994, in publish_wait
    result_awaitable, timeout=timeout_seconds
  File "/usr/lib/rhasspy/usr/local/lib/python3.7/asyncio/tasks.py", line 449, in wait_for
    raise futures.TimeoutError()
concurrent.futures._base.TimeoutError
[DEBUG:2021-08-30 09:49:00,390] rhasspyserver_hermes: Subscribed to hermes/error/nlu
[DEBUG:2021-08-30 09:49:00,388] rhasspyserver_hermes: Waiting for intent (session_id=None)
[DEBUG:2021-08-30 09:49:00,386] rhasspyserver_hermes: Publishing 196 bytes(s) to hermes/hotword/default/detected
[DEBUG:2021-08-30 09:49:00,385] rhasspyserver_hermes: -> HotwordDetected(model_id='default', model_version='', model_type='personal', current_sensitivity=1.0, site_id='rem1', session_id=None, send_audio_captured=None, lang=None, custom_entities=None)

What is different ? I changed from Internal MQTT to external on the base machine. Setting the base machine and remote1 back to Internal MQTT resulted in Remote1 again able to turn lights on and off, as before.

Curiously doing that last test “Porcupine, turn the study light off” resulted in Remote2 (the new RasPi Zero) also playing the beep after the wake word, before timing out.

Well, what about your lights or the software that controls them? If they rely on mqtt they need to change the server as well.

For your main problem: I had to fiddle around until everything worked as well. I don’t even know what I did. I think sometimes after changing settings Rhasspy, especially on slower hardware like piZero, needs some time to think.

No, literally the only change was from the “Internal MQTT” to “External MQTT” in Rhasspy on the base and satellite machines. Having it all work again when I swapped back to internal MQTT kind of proved this. The solution was that External MQTT requires username and password to be given, whereas Internal MQTT does not.

I also have found that changes sometimes don’t seem to become effective until after I have done some other fiddles :frowning: I no longer trust the “restart” to restart everything and do a full reboot before the more significant tests.

I think working mqtt is key. The not populating list problem in options stems from bad mqtt connection because the list content comes in via mqtt as well.

I also have found that changes sometimes don’t seem to become effective until after I have done some other fiddles :frowning: I no longer trust the “restart” to restart everything and do a full reboot before the more significant tests.

That was my impression as well when I first set everything up. Now that I think of it, I think it all started working when my external mqtt server was setup (real extern, not connected to other rhasspy internal).

1 Like