DSP Gateway port of Sphinx front-end
This page describes the ongoing port of the acoustic front-end processing from SphinxBase to the DSP co-processor in the TI OMAP CPU found in many cellphones as well as the Nokia Internet Tablets.
Currently this is in proof-of-concept phase. It works but hasn't been integrated with the main SphinxBase sources. It is also pretty slow (though it doesn't use the main CPU so this isn't actually a big problem). The acoustic parameters are also hard coded to match the ones used by the default acoustic models in PocketSphinx. This is a reasonable thing to do since the audio input is also fixed on these devices.
Currently the performance numbers are:
~ $ ./test_mfcc ARM: Processed 2810 frames in 3.07 seconds CPU, 3.09 seconds clock (0.109857 xRT) DSP: Processed 2810 frames in 0.02 seconds CPU, 9.67 seconds clock (0.343991 xRT)
One problem I'm still having is that I sometimes get EBUSY when opening the dsptask device. I can't seem to find anything in the dspgw documentation that explains why this wouls happen.
You can check the code out of my Subversion repository at http://lima.lti.cs.cmu.edu/svn/mfcc
To compile it you will need to first install the DSP tools for Linux and the DSPGW tools, as detailed at http://maemo.org/community/wiki/dspprogramming/
See http://dspgateway.sourceforge.net/pub/index.php for more information on the DSP Gateway project.
Thanks to Nokia for providing an N800 to do all this fun stuff with!