Rebranded the Matrix Voice to esp32-rhasspy-satellite

I just got my audio kit and I managed to install this and get it working. I do have a few questions thought:

  1. What does each button do? I did not manage to find an explanation for that yet
  2. Is there a way to disable led D1, D2 and D3, or reduce the brightness? I use the device in the same room I sleep and it is waaay to bright
  3. I there a (at least somewhat) easy way to record audio with this to train my hotword model on? Right now it is a bit hit and miss. I know this has not much to do with this project for ESP32 but I thought others might have ran into this issue before.

I do not own an Audio Kit and did not create that device.
The best thing you can do is create an issue on github and tag de developer :slight_smile:

With regards to point 3, that is indeed beyond the scope of this project there might be other projects which record audio with the Audio Kit.

Hi all,

I am new to this forum but extremely enthusiastic about this project. I have three Matrixvoice devices and used Snips in the past. As Snips is no longer available to the public, I wanted to test Rhasspy. I cloned romkabouter’s repo and were able to setup Rhasspy (as docker container) and uploaded the project to two of the (Matrixvoice) satellites (aim is to use them without a raspberry). I have two questions:

  1. I want to use little speakers and print a case for every satellite. Is it possible to output audio from the satellites by using the speaker output? I have seen there is a variable in “ESP32-Rhasspy-Satellite/tree/master/PlatformIO/src/device.h” file and I published the setting via MQTT to the satellite: {“amp_output”:“0”}. Unfortunaltely, I only hear strange noise when hotword is detected (either by amp or jack). What could I do to have a nice sound output?

  2. Did anyone use Matrixvoice satellites with speakers and has a case (3D) printed?

Thanks in advance. All the best,
Flo

1: Yes, there is a setting for speaker/headphone. Use speaker. You can set it in the webUI as well. What is the samplerate of your audio?
2: I do not :wink:

Hi @romkabouter,

  1. I have found this setting and I hear an output. Unfortunately it is “only” noise. Where do I find the samplerate? I do not output any own messages, just the “hotword detection” is recognized. I have Rhasspy as docker container and Matrix Voice satellites (without raspberries). What do I have to choose as “Text to speech”? Is there any other setting to be made?

  2. I’ll build an own case and share it with you.

Regards,
Flo

You can find the files under “Sounds”, but the project should resample to the format the Matrix Voice supports.
You can set any text to speech, but Audio Playing should be HermesMQTT

Also, each satId (different per device) should be set on all the “Satellite siteIds” boxes.
Server should be a different siteID (base/server/whatever)
But when you hear the hotword detection you probably already have set that correctly

Yes, please share your case!

Hi,
after setting up my M5 I get this Errors:

Blockquote
Guru Meditation Error: Core 0 panic’ed (LoadProhibited). Exception was unhandled.
Core 0 register dump:
PC : 0x400efaa1 PS : 0x00060f30 A0 : 0x800d2338 A1 : 0x3ffeb340
A2 : 0x00000000 A3 : 0x3ffeb3b0 A4 : 0x00000200 A5 : 0x3ffeb37c
A6 : 0x00000064 A7 : 0x00000000 A8 : 0x00000001 A9 : 0x0000000b
A10 : 0x3ffb4940 A11 : 0x3ffeb35f A12 : 0x00000000 A13 : 0x00000008
A14 : 0x00060f23 A15 : 0x00000000 SAR : 0x00000000 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000014 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
ELF file SHA256: 0000000000000000
Backtrace: 0x400efaa1:0x3ffeb340 0x400d2335:0x3ffeb370 0x400d3658:0x3ffeb3a0 0x40089f82:0x3ffeb820
#0 0x400efaa1:0x3ffeb340 in i2s_read at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/driver/i2s.c:1352
#1 0x400d2335:0x3ffeb370 in M5AtomEcho::readAudio(unsigned char*, unsigned int) at src/StateMachine.hpp:19
#2 0x400d3658:0x3ffeb3a0 in I2Stask(void*) at src/StateMachine.hpp:19
#3 0x40089f82:0x3ffeb820 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)
Rebooting…

Any Ideas?

That is a strange error, are you using the latest release?

Yes its the last Version: 7.4

Because the ESP32 runs wireless networking on Core0 it usually wise to have little code running there as if networking + custom code is too much you garner the above errors.

Would seem like you have too much on core0 at a certain point.

What software are you using because in the code there is:

M5AtomEcho::readAudio(uint8_t *data, size_t size) {

Is see esp32-arduino-lib-builder, what is that?

I don’t think this is the issue. The asyncMQTT is running on core1 so only the stream task is extra on core0. It has a priority of 3, this should not cause this issue.

Is very much the error you get as said.

The core dump error is a general core dump, is absolutely says nothing about the cause.
Actually, the LoadProhibited is a message saying a memory address error

You can get those kinds of errors when you assign a small stack size to a task for instance, or just a wrong/null pointer

Also, this same code is running fine for a large amount of time on my M5 and I would probably have bumped across it when running the I2STask on core 0.
And the previous versions were all running on core0 without any issues.

So yes, in theory too much work on one core can cause an issue but I do not think this is the issue in this case.

Really simple question, how do you access the M5 web server?

Navigate to the IP in the browser

hi everyone, so I can use one these ESP32-Aduio-Kit WiFi+ bluetooth Module ESP32 Serial to WiFi Audio Development Board with ESP32-A1S Sale - Banggood UK as satellite while all operations are made by a separate raspberry? and could it be a pi 3 b+? thank you

If you set the device_type to 2 (AUDIOKIT), then most likely yes

What is “it” referring to in this case?

I mean if a pi3 b+ is powerful enough. I also have a pi zero but maybe Is too slow. Thank you

Powerful enough for Rhasspy or for some other software? It will do fine for Rhasspy