Beam Forming

Voice related projects and technical discussions
Post Reply
silas.alves
New User
Posts: 2
Joined: Mon Apr 16, 2018 7:42 pm

Beam Forming

Post by silas.alves »

Hi, everyone!

We recently purchased the VocalFusion Speaker Circular Array and I am running some experiments with it. Right now, I have some questions regarding the Beam Forming (BF) algorithm.

According to the manual, the circular array does not provide control over the beam's angle and width, and since the libraries are provided as linkable binaries (according to: https://www.xcore.com/viewtopic.php?f=48&t=6466) I don't think it is possible to change this (i.e. change the code so that the user can change the beam parameters as well).

On the other hand, it seems possible to have the BF to follow the angle from which the sensor detected the keyword/hotword (according to: https://www.xcore.com/viewtopic.php?f=4 ... eam#p31571). However, I couldn't compile the 1i2o2_circ43_keyword_mute_usbctl firmware, probably because I don't have the keyword model to include in the project. I searched for this file on XMOS website but I couldn't find as well, so for now I am inquiring Sensory about a custom keyword model I could use, but this is a different story.

That being said, I would like to know:
  1. Is it really impossible to enable control of the BF angle and width on the circular array?
  2. Does the BF algorithm always locks on the direction it detected the keyword, or I have to set some flag in the code?
  3. In case XMOS can't provide the default keyword model (for "Hello Blue Genie"), is it possible to use the ones provided by Sensory repository (https://github.com/Sensory/alexa-rpi/tree/master/models), or those are in a different format?
Thanks so much for your help!


User avatar
infiniteimprobability
XCore Legend
Posts: 1126
Joined: Thu May 27, 2010 10:08 am
Contact:

Post by infiniteimprobability »

Is it really impossible to enable control of the BF angle and width on the circular array?
Yes this is the case. It is not a generalised sidelobe canceller and so doesn't beamform like a lighthouse - it will have a complex looking polar plot which will actually take reflections as part of the wanted signal. The polar plot will also look different at different frequencies, further complicating the picture. It will always adapt to maximise wanted signal and doesn't have a concept of direction, only a set of filter coefficients which produce the best results.
Does the BF algorithm always locks on the direction it detected the keyword, or I have to set some flag in the code?
No - the keyword recognition does not lock the beam-former. VAD will stop adaption of AEC but the keyword detection itself does not affect the logic of the voice processing.
In case XMOS can't provide the default keyword model (for "Hello Blue Genie"), is it possible to use the ones provided by Sensory repository (https://github.com/Sensory/alexa-rpi/tree/master/models), or those are in a different format?
I think you'll need to contact Sensory to get an answer that.
Post Reply