I’m currently working on a speech processing task on the XMOS platform and would like to extract 22 Bark Frequency Cepstral Coefficients (BFCCs) as input features for a downstream model.
I’ve reviewed the lib_xcore_math library and understand that it provides DCT support for fixed sizes (e.g., 24-point DCT). However, in my case, I specifically need to obtain 22 BFCC coefficients from the log-energy outputs of a 22-channel Bark filter bank.
Is it valid to zero-pad the 22-point log-energy vector to 24 points and then perform a 24-point DCT using dct_forward_f32?
I plan to keep only the first 22 DCT coefficients after the transform.
Will this approximation significantly impact the accuracy compared to a true 22-point DCT?
Thank you very much for your support!
How to Extract and Verify 22-Point BFCC Using lib_xcore_math on XMOS
-
- Newbie
- Posts: 1
- Joined: Mon Jun 23, 2025 8:33 am
-
Verified
- Member++
- Posts: 31
- Joined: Wed May 22, 2024 3:30 pm
I believe if you are already obtaining a 22-point Bark bank you can just append 2 zeros at the end and use the DCT, should be just fine.
Also as a side note, you've mentioned dct_forward_f32, however, I don't recall lib_xcore_math supporting floating-point DCT. The APIs are called something like dct24_forward and only work with fixed-point numbers.
Hope it helps,
Also as a side note, you've mentioned dct_forward_f32, however, I don't recall lib_xcore_math supporting floating-point DCT. The APIs are called something like dct24_forward and only work with fixed-point numbers.
Hope it helps,
Pavel
xmos software engineer
xmos software engineer