Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can this be practically applied to a 4-microphone array? #1

Open
ChenWeston opened this issue Dec 14, 2021 · 8 comments
Open

Can this be practically applied to a 4-microphone array? #1

ChenWeston opened this issue Dec 14, 2021 · 8 comments

Comments

@ChenWeston
Copy link

Can we actually use the hardware structure applied to the 4-microphone array?

@SouppuoS
Copy link
Owner

Yes.
I tested the code on the audio collected by a 4-mic circular array (ST BlueCoin).

@ChenWeston
Copy link
Author

Master, I don’t know much about it. The program seems to simulate the field pattern I need. There is no actual sound file input code?

@ChenWeston
Copy link
Author

Or write Python program into 4-mic circular array (ST BlueCoin), which is the effect of Beamforming field?

@SouppuoS
Copy link
Owner

There is no actual sound file input code?

Yes.
According to the beamforming, you can get the enhanced signal by formula, where W^*(f) is the conj transpose of cdma.get_weight() and X(f) is the STFT of multi-channel audio.
You can also use code like:
https://github.com/funcwj/setk/blob/392c72966ab9f97088955c0bbe6436d7fd59168c/scripts/sptk/libs/beamformer.py#L232-L233

@ChenWeston
Copy link
Author

Master, thank you very much for your feedback, but I still don't know how to apply your program to the hardware.

@SouppuoS
Copy link
Owner

I collected the audio by micphone array and process it on PC.
And if you want to process the signal on the MCU or DSP, you have to implement the formula by some LIB or BSP in C and use the result of cdma.get_weight() as W. Cardioid or Hyper- CDMA is the fixed beamformer, so you could just paste the W data in your C code.

@ChenWeston
Copy link
Author

Master, I expect that it will be processed on the PC, and the audio collection will be collected by the hardware of the 4 mic array.
Your implementation is to collect 4 channels of sound through a 4 mic array, then enter your program for processing, and get the result of 1 channel?

@SouppuoS
Copy link
Owner

Your implementation is to collect 4 channels of sound through a 4 mic array, then enter your program for processing, and get the result of 1 channel?

Yes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants