Could the mics be positioned differently?


let me first thank you for creating this wonderful project! i am really excited, just backed the new matrix voice on indegogo and am looking forward to playing with it!

I was looking to several “smart mic arrays” and it seems that the size of them is pretty common (around 7cm radius). I am wondering if microphones need to be spaced at this exact distance ? or would it be possible to put microphones closer/ further apart and matrix voice would still function ? what if i would to take one mic away ? would that completely break the algorithms ?

would a board with 5 mics and 5cm radius still be possible to function in similar manner with the same software ?

thanks again, looking forward to your reply.

1 Like

Hi @ppisljar,

It seems hard to desolder and re-position the mics on the board. If you manage to do that you can still use the software (as long as you use the same mics) . The software will definitely need some changes.

Do you have a specific need for a different position of the mics ?


thanks! no i am not intending to reposition the mics … i am just wondering if it would still work, how big of a role mic positions play, the number of mics etc … if you could refer me to any paper that goes more in depth (but not too much) on this that would be great!

You know what would be really cool? Is that if we placed a few of the mics not all on the same plane!

Currently, from what I can tell from the looks of the new matrix voice, because all the microphones share a symmetry along the same x-y plane of one side of the PCB, we have no way of disambiguating the polarity of direction for a sound source along the axis orthonormal to the that plane (let’s call this the z axis). This means that we can only resolve sound sources along a halfsphere, so whether the sound came from a θ<90 or θ>90 degrees in a spherical coordinate frame, we have no way to tell.

See that the euclidian distance to all points on the x-y plane is the same for a pair of points on the yellow/blue half spheres sharing the same x-y values.

If some of the mics had some elevation differences along the z axis, then we could potentially resolve the sound source direction in full 3D. Perhaps by simply mounting every even/odd microphone top/bottom of the PCB surface (or maybe just the center mic on the obsit side of the rest) might be enough of a time delta? I’m not sure though, as the propagation of sound through the dense PCB material would be faster than air, and so the delay due to the minute distance of the PCB thickness may be irresolvable by a slow 16Khz sample rate. Perhaps extra mic pads top and bottom (or a consolidated through hole breakout) could be added, to make it easier to space out the array externally? Please chime in if anyone has a better idea.


A simple use case for full 3D:

  • You have the matrix voice sitting flat on a table, and you’d like to tell the matrix to suppress any sounds below a relative height (or polar θ), such that pets or talkative toddlers on the floor can’t trigger wake words, without inhibiting speakers tall enough to speak above its height.
  • You have the matrix voice sitting flat on top of a robot, but the motor controllers and servers bellow are a bit loud, and you’d like to be able to converse with the robot while its moving without drowning out the users voice in signal to noise. So with no symmetry bounds, you could suppress the frequencies south of the board, without applying the same EQ to voice sources tracked in other directions.
  • You have your matrx voice upright in its stand up enclosure so the camera can point horizontally across the room, yet you’d still like to track the absolute direction of a voice source continuously as the user walk around and behind the device.

Really interesting @ruffsl,

As you noticed the mics distribution in the MATRIX Creator/ MATRIX Voice boards allows to compute the DOA (Direction Of Arrival) from any angle in just one halfsphere. I think most applications that require DOA would be ok with this approach.
On the other hand been able to get the direction in full 3D is a really interesting case and for sure sometimes required. An idea could be to attach extra microphones to the GPIO using these from ST with the same MEM mics:
This would require some tweaks in the FPGA code and in the HAL library but definitely it could be done.

Let us know your ideas about this !


1 Like