This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Programming Speaker Recognition on C5510 DSK (Spectrum Digital)

Other Parts Discussed in Thread: SPRC133, SPRC100

Hello TI community,

For a senior design project I have to program a DSK to perform speaker recognition duties. I've already gotten past the huge hurdles of troubleshooting the connection between the DSK and my PC via the onboard USB debugger. I've pretty much figured out how to link files to my project on CCS 4.2. I already have the algorithm for feature selection and can easily program a pattern matching algorithm. However, the problem begins before that. Here's what I need help programming, as I have absolutely NO clue how to begin or where to start:

1) I need to record microphone input using the DSK. What function do I use? How is the microphone input stored (data type, etc)? Is there a function I can use to trim the silences off the beginning and end of the input or do I need to program that myself (not that big an issue)? 

*I've already looking through parts of the manual. A few things confuse me about the functions. 

I didn't know "vectors" can be used in C. Do they serve the same purpose as in Java? What is a ushort data type?

2) Using the Chip Support Library I found on TI's web site I will then apply a FFT to the voice sample. I'm pretty sure I use the forward 32-bit real FFT for a sample such as this (someone please confirm this). I need the output to be a list of 8192 floats similar to this file: 

http://code.google.com/p/libmfcc/source/browse/libmfcc_example/sample.dat?r=a99d34a62ba4fa24595d5542f3871a22eb6ce096&spec=svna99d34a62ba4fa24595d5542f3871a22eb6ce096

That is because I'll be using the MFCC algorithm from the same source as the sample.dat file to obtain the MFCCs of the voice sample. 

3) Obtain the MFCCs. (easy once the previous steps are complete)

I have already obtained the libraries sprc100 and sprc133 (chip support and board support libraries) from TI for my board. 

The board is a Spectrum Digital TMS320VC5510 DSP StarterKit http://www.ti.com/tool/tmdsdsk5510

Any help would be greatly appreciated as I would love to pass this class XP

Thank you in advance,

Jordan

  • Jordan,

    To start working with the McBSP and DMA to get data in and out to the AIC23 on the DSK, please check out the examples in the CCStudio folder: ...\CCStudio_v3.1\examples\evm5510\csl. I would recommend starting with the non-BIOS projects.

    Also download the Board support package for the 5510 DSK: http://c5000.spectrumdigital.com/dsk5510/ . This will have some code that you can start from and customize to get audio data in from the AIC codec to the DSP.

    I see you have already downloaded the DSP Library (sprc100) which has the FFT source code. Please check the DSP LIB Programmer's Guide spru422j.pdf section 3.1 for explanation of data types used in the functions.

    Regarding floating/fixed point data, please remember that the C5000 DSP family are all fixed-point 16-bit DSPs. While it is possible to treat data as block-floating point values, the DSP code will have to be for any mathematical operation will have to be architected that way. Data from the AIC audio codec can be 16-, 24- or 32-bit. In probability 16-bit data length should suffice but that is dependent also on your algorithms. Details on the C compiler and data types can be got from the C Compiler's guide: http://processors.wiki.ti.com/index.php/55x_Training. You may need to scale and convert floating point MFCC data to fixed point to work with the data formats of the rest of the code. Please check out the example codes for FFT operation in DSPLIB. The C5000 Teaching ROM has some training material on this: http://www.ti.com/ww/eu/university/cd-rom/c5000.zip. If at first the link does not work, please try again.

    Check out the open-source speech recognition package for the C55x: http://processors.wiki.ti.com/index.php/C5000_Software_Algorithms#Voice. This has been written in 16-bit fixed-point with some 32-bit processing involved.

    A good weblink is: http://processors.wiki.ti.com/index.php/Category:C5000 which has links to all or most resources.

    Regards,

    Sunil D. Kamath