Matrix Voice on 2.5.1?

Is there a trick to getting Matrix Voice to work on 2.5.1? I upgraded from 2.4.19 and now my microphone no longer works.

Have you searched on the forum? There are a couple of posts about the Matrix Voice, and at least @romkabouter is running this setup successfully. .

Thanks, yeah I did search the forum, but I couldn’t find anyone with my issue on 2.5 or above. It seems that the hardware isn’t being recognized as it was on 2.4

What is your issue? Works fine on my side :slight_smile:

What was your upgrade path and what are your settings now? Specifically the audio input and de siteid.
The software was not written for a specific version, it just publishes a sh*tload of audiowavs to hermes/audioServer//audioFrame

The mic doesn’t respond to wake word or to the actual wake button itself. The audio input is hw:CARD=MATRIXIOSOUND, DEV=0: Direct hardware device without any conversions and the siteid is default

O wait, I assumed you were using the audiostreamer.
You have attached the Matrix Voice to a Pi, is that correct?

Does the device record correctly with arecord? I am not using an attached mic, but it is probably a setting within 2.5.1
Can you post output from arecord -L?

Yep, give me a couple hours, I rolled back to 2.4.20, but I will upgrade again and post the output sometime this evening. Thanks for helping me!

So with the same device 2.4.20 works and 2.5.1 not?

Definitely some settings issue then.

Yep works on 2.4.20, not n 2.5.1. I upgraded again and didn’t change any setting. Used the Test button under the Audio Recording Header and got the following log:

rhasspy | [DEBUG:2020-07-22 20:25:16,221] rhasspyserver_hermes: -> AudioGetDevices(modes=[<AudioDeviceMode.INPUT: ‘input’>], site_id=‘default’, id=‘476fa24d-5ec3-43a8-a2b4-985489643c2e’, test=True)
rhasspy | [DEBUG:2020-07-22 20:25:16,222] rhasspyserver_hermes: Publishing 101 bytes(s) to rhasspy/audioServer/getDevices
rhasspy | [DEBUG:2020-07-22 20:25:16,236] rhasspymicrophone_cli_hermes: <- AudioGetDevices(modes=[<AudioDeviceMode.INPUT: ‘input’>], site_id=‘default’, id=‘476fa24d-5ec3-43a8-a2b4-985489643c2e’, test=True)
rhasspy | [DEBUG:2020-07-22 20:25:16,236] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-L’]
rhasspy | [DEBUG:2020-07-22 20:25:16,329] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘null’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | [DEBUG:2020-07-22 20:25:16,348] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘jack’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | Cannot connect to server socket err = No such file or directory
rhasspy | Cannot connect to server request channel
rhasspy | jack server is not running or cannot be started
rhasspy | JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
rhasspy | JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
rhasspy | arecord: main:828: audio open error: No such file or directory
rhasspy | [DEBUG:2020-07-22 20:25:16,382] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘pulse’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
rhasspy |
rhasspy | arecord: main:828: audio open error: Connection refused
rhasspy | [DEBUG:2020-07-22 20:25:16,422] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘usbstream:CARD=ALSA’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | ALSA lib pcm_usb_stream.c:508:(_snd_pcm_usb_stream_open) Unknown field hint
rhasspy | arecord: main:828: audio open error: Invalid argument
rhasspy | [DEBUG:2020-07-22 20:25:16,443] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘default:CARD=Dummy’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | [DEBUG:2020-07-22 20:25:16,594] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘sysdefault:CARD=Dummy’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | [DEBUG:2020-07-22 20:25:16,743] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘dmix:CARD=Dummy,DEV=0’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | ALSA lib pcm_dmix.c:1043:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
rhasspy | arecord: main:828: audio open error: Invalid argument
rhasspy | [DEBUG:2020-07-22 20:25:16,772] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘dsnoop:CARD=Dummy,DEV=0’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | arecord: set_params:1345: Channels count non available
rhasspy | [DEBUG:2020-07-22 20:25:16,804] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘hw:CARD=Dummy,DEV=0’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | [DEBUG:2020-07-22 20:25:16,948] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘plughw:CARD=Dummy,DEV=0’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | [DEBUG:2020-07-22 20:25:17,096] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘usbstream:CARD=Dummy’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | ALSA lib pcm_usb_stream.c:508:(_snd_pcm_usb_stream_open) Unknown field hint
rhasspy | arecord: main:828: audio open error: Invalid argument
rhasspy | [DEBUG:2020-07-22 20:25:17,135] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘default:CARD=MATRIXIOSOUND’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | arecord: main:828: audio open error: Device or resource busy
rhasspy | [DEBUG:2020-07-22 20:25:17,182] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘sysdefault:CARD=MATRIXIOSOUND’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | arecord: main:828: audio open error: Device or resource busy
rhasspy | [DEBUG:2020-07-22 20:25:17,222] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘dmix:CARD=MATRIXIOSOUND,DEV=0’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | ALSA lib pcm_dmix.c:1043:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
rhasspy | arecord: main:828: audio open error: Invalid argument
rhasspy | [DEBUG:2020-07-22 20:25:17,246] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘dsnoop:CARD=MATRIXIOSOUND,DEV=0’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | ALSA lib pcm_dsnoop.c:638:(snd_pcm_dsnoop_open) unable to open slave
rhasspy | arecord: main:828: audio open error: Device or resource busy
rhasspy | [DEBUG:2020-07-22 20:25:17,272] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘hw:CARD=MATRIXIOSOUND,DEV=0’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | arecord: main:828: audio open error: Device or resource busy
rhasspy | [DEBUG:2020-07-22 20:25:17,292] rhasspymicrophone_cli_hermes: [‘arecord’, ‘-q’, ‘-D’, ‘plughw:CARD=MATRIXIOSOUND,DEV=0’, ‘-r’, ‘16000’, ‘-f’, ‘S16_LE’, ‘-c’, ‘1’, ‘-t’, ‘raw’]
rhasspy | arecord: main:828: audio open error: Device or resource busy
rhasspy | [DEBUG:2020-07-22 20:25:17,329] rhasspymicrophone_cli_hermes: -> AudioDevices(devices=[AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘null’, name=‘null’, description=‘Discard all samples (playback) or generate zero samples (capture)*’, working=True), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘jack’, name=‘jack’, description=‘JACK Audio Connection Kit’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘pulse’, name=‘pulse’, description=‘PulseAudio Sound Server’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘usbstream:CARD=ALSA’, name=‘usbstream:CARD=ALSA’, description=‘USB Stream Output’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘default:CARD=Dummy’, name=‘default:CARD=Dummy’, description=‘Default Audio Device’, working=True), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘sysdefault:CARD=Dummy’, name=‘sysdefault:CARD=Dummy’, description=‘Default Audio Device’, working=True), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘dmix:CARD=Dummy,DEV=0’, name=‘dmix:CARD=Dummy,DEV=0’, description=‘Direct sample mixing device’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘dsnoop:CARD=Dummy,DEV=0’, name=‘dsnoop:CARD=Dummy,DEV=0’, description=‘Direct sample snooping device’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘hw:CARD=Dummy,DEV=0’, name=‘hw:CARD=Dummy,DEV=0’, description=‘Direct hardware device without any conversions’, working=True), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘plughw:CARD=Dummy,DEV=0’, name=‘plughw:CARD=Dummy,DEV=0’, description=‘Hardware device with all software conversions’, working=True), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘usbstream:CARD=Dummy’, name=‘usbstream:CARD=Dummy’, description=‘USB Stream Output’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘default:CARD=MATRIXIOSOUND’, name=‘default:CARD=MATRIXIOSOUND’, description=‘Default Audio Device’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘sysdefault:CARD=MATRIXIOSOUND’, name=‘sysdefault:CARD=MATRIXIOSOUND’, description=‘Default Audio Device’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘dmix:CARD=MATRIXIOSOUND,DEV=0’, name=‘dmix:CARD=MATRIXIOSOUND,DEV=0’, description=‘Direct sample mixing device’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘dsnoop:CARD=MATRIXIOSOUND,DEV=0’, name=‘dsnoop:CARD=MATRIXIOSOUND,DEV=0’, description=‘Direct sample snooping device’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘hw:CARD=MATRIXIOSOUND,DEV=0’, name=‘hw:CARD=MATRIXIOSOUND,DEV=0’, description=‘Direct hardware device without any conversions’, working=False), AudioDevice(mode=<AudioDeviceMode.INPUT: ‘input’>, id=‘plughw:CARD=MATRIXIOSOUND,DEV=0’, name=‘plughw:CARD=MATRIXIOSOUND,DEV=0’, description=‘Hardware device with all software conversions’, working=False)], site_id=‘default’, id=‘476fa24d-5ec3-43a8-a2b4-985489643c2e’)
rhasspy | [DEBUG:2020-07-22 20:25:17,330] rhasspymicrophone_cli_hermes: Publishing 2623 bytes(s) to rhasspy/audioServer/devices
rhasspy | [DEBUG:2020-07-22 20:25:17,385] rhasspyserver_hermes: Handling AudioDevices (topic=rhasspy/audioServer/devices, id=3fa281ef-d25d-41dc-be76-8e975e1e64a5)

Sorry, if that was too much from the log!

By the looks of this:

the device is busy. Do you have maybe 2.4.20 also running?
Or some other software capturing the audio and therefore locking the device?

i don’t believe so, I docker rm the 2.4 container. and i’m only using rhasspy for this. I can try and reinstall everything and see what happen

Nope, nothing else is running and i still get that error. I have it plugged into an external speaker, could that be causing the problem?

Did you check if the docker run command is missing something in 2.5 that was there in 2.4, maybe the sound device isn’t routed through to the container. Just compare the running 2.4 command parameters with what you are using to start 2.5.

Nope, I have everything the same and my docker-compose is matching the installation docs.

@romkabouter so I went back and reinstalled everything. Started with Buster and couldn’t get matrix-kernels to install. So wiped it again, and went to Stretch. Installed kernels fine, but it still doesn’t work. I tried one of the everloop demos and that worked, and I tried all the troubleshooting methods on the matrix forums. No luck. Any ideas?

I’ll try and see if I can reproduce it. I do not think it is the device really.
Now let’s see where I have hidden that spare Pi… :thinking:

So I got the engines back to neutral. Had to re-flash the pi a few more times, but I somehow got the right combinations of kernel installs. So I have the Matrix Voice working with Rhasspy 2.4.20 now. Haven’t tried 2.5 yet. Strangely, I can’t get the everloop to work. Tried to make the HAL Examples, but it fails each time I try and make the demos.

Edit: Got the everloop working. So I’ll back up the SD before I try and upgrade to 2.5, so I don’t bork the system again

Edit #2: So something is definitely going on in the upgrade to 2.5 which stops the Matrix Voice hardware from working. Even a roll back to 2.4 doesn’t fix whatever setting gets applied when upgrading. Does 2.5 install pulseaudio or something, instead of just using ALSA?