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?

@longunmin : Have you been able to get it working with version 2.5? I’ve been running 2.4.x until yesterday with working microphone (Matrix voice). I upgraded because I couldn’t get the MQTT connection working on 2.4.
I see Audio input not picking up Matrix Voice is about the same issue, isn’t it?

I’m running these matrix software versions:

pi@raspberrypi11:~ $ dpkg --list|grep matrix
ii libmatrixio-creator-hal:armhf 0.3.8 armhf Hardware Abstraction Layer for MATRIX.
ii libmatrixio-creator-hal-dev 0.3.8 armhf Hardware Abstraction Layer for MATRIX (headers)
ii libmatrixio-malos:armhf 0.1.4 armhf Libraries of MATRIX abstraction layer for MOS
ii libmatrixio-protos:armhf 0.1.6 armhf Protocolbuffers for MATRIX abstraction layer
ii matrixio-creator-init 0.4.17 armhf Install scripts that can program the MATRIX Creator FPGA and SAM3 IMU.
ii matrixio-kernel-modules 0.2.4 all Source DKMS for MATRIXIO kernel modules.
ii matrixio-malos 0.3.6 armhf Allows queries to MATRIX Creator hardware via ZMQ.
ii matrixio-openocd 1.0.1.002 armhf Open on-chip JTAG debug solution for ARM and MIPS systems
ii matrixio-protobuf 3.8.0 armhf Protocol Buffers - Google’s data interchange format. (From GRPC 3.8.0)
ii matrixio-xc3sprog 1.1.1.003 armhf Spartan3, XCF and CPLD JTAG programmer and other utilities.
pi@raspberrypi11:~ $

I’ll try this as well, I have got a Matrix Voice

I was able to.get it working. The issue was I was running the desktop version of Buster, which comes with pulseaudio and was messing up the Matrix Voice. I flashed the lite version of Buster and now I’m running 2.5.5 with the Matrix Voice as a satellite

2 Likes