how to add my own code on the VocalFusion Speaker evaluation kit

Voice related projects and technical discussions. XVF 3800 etc.
Fabrizio
Member
Posts: 15
Joined: Fri Mar 02, 2018 6:05 pm

how to add my own code on the VocalFusion Speaker evaluation kit

Post by Fabrizio »

Hi,
I am interested to test the VocalFusion Speaker evaluation kit with linear array.
I would like to use your beam forming algorithm, but also integrate my code into your xCORE processor, if this is possible.

1) I am new on xCORE processor, so could you suggest me the evaluation kit to buy to start with xCORE?
Is the VocalFusion Speaker kit the right one?

2) Taking into account the algorithm already implemented into the XVF3100 for the beamforming, echo cancellation ... could you tell me how much computational power is available on the XVF3100 to implement other algorithms?

3) Are your built-in algorithms (AEC, BF...) available as source code or binary libs in order to be integrated into a project where there is also my code?

Thanks in advance
Fabrizio
User avatar
infiniteimprobability
Verified
XCore Legend
Posts: 1149
Joined: Thu May 27, 2010 10:08 am

Post by infiniteimprobability »

I would like to use your beam forming algorithm, but also integrate my code into your xCORE processor, if this is possible.
YEs you can - but it all depends how much code and what device..
1) I am new on xCORE processor, so could you suggest me the evaluation kit to buy to start with xCORE?
Is the VocalFusion Speaker kit the right one?
YEs, if you want to use our beamformer, AEC, Noise suppression blocks (branded vocalfusion) then this is fine. It depends whether you want linear mic array (for edge of room) or circular (for middle of room) which kit. Speaker is for middle of room.
2) Taking into account the algorithm already implemented into the XVF3100 for the beamforming, echo cancellation ... could you tell me how much computational power is available on the XVF3100 to implement other algorithms?
It depends on which config you want. If you use I2S connection to host you have a lot more space for your own stuff.
Worst case is about 72MIPS but you could have up to 300MIPS free if you use I2S and don't need keyword (hotword)
You could go up to the XVF3500 and have 1000+ MIPS free if needed.
3) Are your built-in algorithms (AEC, BF...) available as source code or binary libs in order to be integrated into a project where there is also my code?
No - they are provided as linkable libraries. Everything else (audio framework, pdm->pcm decimators, interfaces, control) is supplied as source.
Engineer at XMOS
Fabrizio
Member
Posts: 15
Joined: Fri Mar 02, 2018 6:05 pm

Post by Fabrizio »

Thank you for the reply.
I am interested on linear mic array, mounted on top of a TV.
We will use I2S connection to the host and I2C for the device control, no keyword.
So with this setup we could have 300 MIPS free ... good
How many are the total MIPS available on the XVF3100 and XVF3500 devices?

Another question.
From the xMOS documentation I read that the pdm mic are downsampled to 16 kHz.
In our videocommunication systems the audio sampling frequency if 48 kHz, to have an excellent sound quality.
A 48 kHz full-band implementation is thinkable?
Does the XVF3100 device have enough computing power to do this?
Are the AEC and BF libraries also available at 48 kHz sampling rate?

Many thanks
Fabrizio
User avatar
infiniteimprobability
Verified
XCore Legend
Posts: 1149
Joined: Thu May 27, 2010 10:08 am

Post by infiniteimprobability »

So with this setup we could have 300 MIPS free ... good
Yes - note that the processing would be available in 2 blocks of 120MIPS and 1 block of 60MIPS or 5 blocks of 60MIPS. About 75kB total is available..
How many are the total MIPS available on the XVF3100 and XVF3500 devices?
XVF3000/3100 have 1200MIPS and XVF3500 has 2000MIPS. If I was in marketing I would double those figures because we can dual issue instructions.
Another question.
A 48 kHz full-band implementation is thinkable?
Does the XVF3100 device have enough computing power to do this?
Are the AEC and BF libraries also available at 48 kHz sampling rate?
It would more or less mean a tripling of the MIPS needed and some modification of the constants. However in reality you'd also need to heavily rearchitect to fit into the available threads. I'd categorise that as "non trivial". There's no plan to do this in the short term - most users require a stream for ASR apps hence the focus on wideband (8kHz nyquist)

I wonder if it is feasible to mix a delayed portion of the spectrum above 8kHz to give the perception of higher quality???... It would be possible to have a 48kHz intermediate stage for the raw mic signals without a crazy amount of work.
Engineer at XMOS
Fabrizio
Member
Posts: 15
Joined: Fri Mar 02, 2018 6:05 pm

Post by Fabrizio »

Hi,
I have a XVF3100-LIN33 evaluation board.
I built app_vf_spk_base_1i2o2_lin33_usbctl and the host control application vfctrl_usb for Win32.
I followed "xCORE VocalFusion Control Users Guide" to install the Windows USB driver (Win10).
But when I call vfctrl_usb.exe I have this error:

libusb_control_transfer returned libusb0-dll:err [control_msg] sending control message failed, win error: A device attached to the system is not functioning.

Error: Control query version failed

What am I doing wrong?

Thanks,
Fabrizio