Raspiaudio Mic+ support?

Hi, I have been trying to get Rhasspy working with my Pi zero and the Raspiaudio Mic+ ( Mic+ – RASPIAUDIO). I have been able to verify the soundcard works fine (both input and output) outside of Rhasspy. Inside of Rhasspy the output works fine, but the input (mic) does not. I am really new to Rhasspy and was hoping someone could help me troubleshoot this (I am willing to add to the code to add support for this hat). Someone here who can put me on the right track?

What do you see when you go into the Audio recording tab and click “Refresh”? Do you see any audio devices in the devices dropdown with “Working” written next to them? Eg:

image

thanks for replying! No, unfortunately I do not.
When running the container on interactive mode (-it instead of -d) I see the following kinds of errors when trying to get the audio input to work.

ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
[DEBUG:2021-05-18 17:00:31,443] rhasspymicrophone_pyaudio_hermes: Connected to MQTT broker
[DEBUG:2021-05-18 17:00:31,462] asyncio: Using selector: EpollSelector
[DEBUG:2021-05-18 17:00:31,482] rhasspymicrophone_pyaudio_hermes: Subscribed to hermes/audioServer/toggleSummaryOn
[DEBUG:2021-05-18 17:00:31,496] rhasspymicrophone_pyaudio_hermes: Subscribed to rhasspy/audioServer/getDevices
[DEBUG:2021-05-18 17:00:31,499] rhasspymicrophone_pyaudio_hermes: Subscribed to hermes/audioServer/toggleSummaryOff
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pcm_a52.c:823:(_snd_pcm_a52_open) a52 is only for playback
ALSA lib conf.c:5014:(snd_config_expand) Unknown parameters {AES0 0x6 AES1 0x82 AES2 0x0 AES3 0x2  CARD 0}
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM iec958:{AES0 0x6 AES1 0x82 AES2 0x0 AES3 0x2  CARD 0}
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Expression 'paInvalidSampleRate' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2048
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2719
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2843
[ERROR:2021-05-18 17:00:38,892] rhasspymicrophone_pyaudio_hermes: record
Traceback (most recent call last):
  File "/usr/lib/rhasspy/rhasspy-microphone-pyaudio-hermes/rhasspymicrophone_pyaudio_hermes/__init__.py", line 119, in record
    stream_callback=callback,
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pyaudio.py", line 750, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pyaudio.py", line 441, in __init__
    self._stream = pa.open(**arguments)
OSError: [Errno -9997] Invalid sample rate
[DEBUG:2021-05-18 17:00:39,028] rhasspymicrophone_pyaudio_hermes: -> AudioRecordError(error='[Errno -9997] Invalid sample rate', site_id='default', context='Device index: 0', session_id=None)

I am seeing this:

and when I click ‘Test’ I see the following (repeated multiple times):

[DEBUG:2021-05-18 17:25:47,967] rhasspyspeakers_cli_hermes: <- AudioGetDevices(modes=[<AudioDeviceMode.INPUT: 'input'>], site_id='default', id='642e8981-898b-4e5b-a599-92d246cb8196', test=True)
[DEBUG:2021-05-18 17:25:47,986] rhasspymicrophone_pyaudio_hermes: <- AudioGetDevices(modes=[<AudioDeviceMode.INPUT: 'input'>], site_id='default', id='642e8981-898b-4e5b-a599-92d246cb8196', test=True)
Expression 'paInvalidSampleRate' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2048
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2719
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2843
[ERROR:2021-05-18 17:25:48,016] rhasspymicrophone_pyaudio_hermes: get_microphone_working ({device_name})
Traceback (most recent call last):
  File "/usr/lib/rhasspy/rhasspy-microphone-pyaudio-hermes/rhasspymicrophone_pyaudio_hermes/__init__.py", line 280, in get_microphone_working
    input=True,
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pyaudio.py", line 750, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pyaudio.py", line 441, in __init__
    self._stream = pa.open(**arguments)
OSError: [Errno -9997] Invalid sample rate
python3: pcm_local.h:593: snd_pcm_channel_area_addr: Assertion `bitofs % 8 == 0' failed.
1621355148: Socket error on client 0703b2c0-dfe8-4b60-a424-2921d24e4500, disconnecting.
/usr/lib/rhasspy/rhasspy-microphone-pyaudio-hermes/bin/rhasspy-microphone-pyaudio-hermes: line 15:   197 Aborted                 (core dumped) python3 -m rhasspymicrophone_pyaudio_hermes "$@"
2021-05-18 17:25:48,965 INFO exited: microphone (exit status 134; not expected)
2021-05-18 17:25:51,835 INFO spawned: 'microphone' with pid 267
2021-05-18 17:25:52,863 INFO success: microphone entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
[DEBUG:2021-05-18 17:26:02,447] rhasspymicrophone_pyaudio_hermes: Namespace(channels=1, debug=True, device_index=0, frames_per_buffer=1024, host='localhost', list_devices=False, log_format='[%(levelname)s:%(asctime)s] %(name)s: %(message)s', output_site_id=None, password=None, port=12183, sample_rate=16000, sample_width=2, site_id=['default'], 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-05-18 17:26:02,469] asyncio: Using selector: EpollSelector
[DEBUG:2021-05-18 17:26:02,490] rhasspymicrophone_pyaudio_hermes: Connecting to localhost:12183
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
1621355163: New connection from 127.0.0.1 on port 12183.
1621355163: New client connected from 127.0.0.1 as d5355052-e3d8-4d12-b856-83ab3efbd8db (c1, k60).
[DEBUG:2021-05-18 17:26:03,234] asyncio: Using selector: EpollSelector
[DEBUG:2021-05-18 17:26:03,253] rhasspymicrophone_pyaudio_hermes: Connected to MQTT broker
[DEBUG:2021-05-18 17:26:03,265] rhasspymicrophone_pyaudio_hermes: Subscribed to rhasspy/audioServer/getDevices
[DEBUG:2021-05-18 17:26:03,268] rhasspymicrophone_pyaudio_hermes: Subscribed to hermes/audioServer/toggleSummaryOn
[DEBUG:2021-05-18 17:26:03,293] rhasspymicrophone_pyaudio_hermes: Subscribed to hermes/audioServer/toggleSummaryOff
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pcm_a52.c:823:(_snd_pcm_a52_open) a52 is only for playback
ALSA lib conf.c:5014:(snd_config_expand) Unknown parameters {AES0 0x6 AES1 0x82 AES2 0x0 AES3 0x2  CARD 0}
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM iec958:{AES0 0x6 AES1 0x82 AES2 0x0 AES3 0x2  CARD 0}
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Expression 'paInvalidSampleRate' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2048
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2719
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2843
[ERROR:2021-05-18 17:26:04,137] rhasspymicrophone_pyaudio_hermes: record
Traceback (most recent call last):
  File "/usr/lib/rhasspy/rhasspy-microphone-pyaudio-hermes/rhasspymicrophone_pyaudio_hermes/__init__.py", line 119, in record
    stream_callback=callback,
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pyaudio.py", line 750, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/pyaudio.py", line 441, in __init__
    self._stream = pa.open(**arguments)
OSError: [Errno -9997] Invalid sample rate
[DEBUG:2021-05-18 17:26:04,212] rhasspymicrophone_pyaudio_hermes: -> AudioRecordError(error='[Errno -9997] Invalid sample rate', site_id='default', context='Device index: 0', session_id=None)
[DEBUG:2021-05-18 17:26:04,224] rhasspymicrophone_pyaudio_hermes: Publishing 116 bytes(s) to hermes/error/audioServer/record
1621355164: Socket error on client d5355052-e3d8-4d12-b856-83ab3efbd8db, disconnecting.
/usr/lib/rhasspy/rhasspy-microphone-pyaudio-hermes/bin/rhasspy-microphone-pyaudio-hermes: line 15:   271 Segmentation fault      (core dumped) python3 -m rhasspymicrophone_pyaudio_hermes "$@"
2021-05-18 17:26:05,016 INFO exited: microphone (exit status 139; not expected)