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!

DHDWiki: DspGwPort (last edited 2008-01-17 03:23:03 by DavidHugginsDaines)