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.

Assembly voice converting with TMDX5515EZDSP - KIT

I am a student. I have some questions about converting audio signals into different ones. For example i speak something into the microphone. After then my voice will be converted to the voice of Darth Vader. So it sounds like he is speaking my spoken words. 

I am a beginner. Can you describe me the single steps, please.

 

  • it's not really important if it's assembly language or C, because the only problem here is METHOD. Generally, it's easy to convert human voice to something I call "alien voice" (hope You know what I mean) i real-time, because it's simply amplitude modulation - multiplication sample by sample. However, what you want to do is opposite, darth vader voice mean lower frequencies and it can't be done by amplitude modulation. You can do two things (or maybe more, but I don;t have idea right now):

    1) Make speech slower, something like slow-mode. Add extra samples to make it sound longer. But this is not real-time.

    2) Create voice synthesizer. it's based on human speech model, eg. LPC. This can be real-time and it is "professional" solution, but quite difficult, especially if you wish o code it in asm.

     

    regards

    MS

  • Thank you for your answer but i am sorry because of my less skills. How can i do that in C. It doesn't have to be written in Assembler. Can you write a simple method or give me a reference to a site, where i can get some examples about voice converting?

  • Hi Mehmet,

    The C5000 Teaching ROM contains several examples that introduce a student like you to the C5505/15 DSPs.

    I think you will like Chapter 8: Alien Voices

    http://www.ti.com/ww/eu/university/roms.html

    Regards,
    Mark

  • I created a project for the alien voices, but I get the following error which I could not eliminate.

    ------error---------------

     

    'Building target: AlienVoices.out'

    'Invoking: Linker'

    "D:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/c5500/bin/cl55" -g --diag_warning=225 --ptrdiff_size=16 --memory_model=small -z -m"AlienVoices.map" --warn_sections -i"D:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/c5500/lib" -i"D:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/c5500/include" --reread_libs --rom_model -o "AlienVoices.out"  "./usbstk5505_led.obj" "./usbstk5505_i2c.obj" "./usbstk5505_gpio.obj" "./usbstk5505.obj" "./stereo.obj" "./sinewaves.obj" "./main.obj" "./aic3204_init.obj" "./aic3204.obj" "./PLL.obj" "./LEDFlasher.obj" -l"rts55x.lib" "../55xdsph.lib" "../CSLc55x5h.lib" 

    <Linking>

    fatal error: file "D:/Program Files (x86)/Texas

       Instruments/ccsv4/tools/compiler/c5500/lib/rts55x.lib<exit.obj>" has a

       Tag_Memory_Model attribute value of "2" that is different than one

       previously seen ("1"); combining incompatible files

     

    >> Compilation failure

    D:\Program Files (x86)\Texas Instruments\ccsv4\utils\gmake\gmake: *** [AlienVoices.out] Error 1

    D:\Program Files (x86)\Texas Instruments\ccsv4\utils\gmake\gmake: Target `all' not remade because of errors.

    Build complete for project AlienVoices

     

    -------------------------------

    It would be nice if they can help meabout it.

  • Hi Mehmet.

    When starting with the C5000 Teaching ROM, follow the steps in Chapter 1 - "Getting Started". It gives you step-by-step instructions for creating your project from nothing but source files.

    This particular error is caused by memory model mismatch between your project's compiled files and the pre-compiled libraries. The highlighted settings below are incompatible.

    Mehmet Zahid Aydin said:
    "D:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/c5500/bin/cl55" -g --diag_warning=225 --ptrdiff_size=16 --memory_model=small -z -m"AlienVoices.map" --warn_sections -i"D:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/c5500/lib" -i"D:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/c5500/include" --reread_libs --rom_model -o "AlienVoices.out"  "./usbstk5505_led.obj" "./usbstk5505_i2c.obj" "./usbstk5505_gpio.obj" "./usbstk5505.obj" "./stereo.obj" "./sinewaves.obj" "./main.obj" "./aic3204_init.obj" "./aic3204.obj" "./PLL.obj" "./LEDFlasher.obj" -l"rts55x.lib" "../55xdsph.lib" "../CSLc55x5h.lib" 

    These projects are intended to use the "memory_model=huge" with "ptrdiff_size=32" and "rts55h.lib"

    You should try to recreate the project by following the steps in Chapter 1 - "Getting Started".

    Hope this helps,
    Mark

  • I hope you can help. I have been trying "AlienVoices",the Reverb and the loopback tutorials on this C5000 Teaching ROM. I have followed the steps of setting the memory model options you say above. On the basic project settings my silicon_version is "5505". I am targeting the Spectrum Digital EzDsp board. I downloaded and ran the program OK and checked the linker output to see that all the options were set.

    With "AlienVoices" the XF LED flashes once, twice thrice, four times about 20 seconds apart (as expected I think). When the flashes increase every twenty seconds I hear an increase in pitch of, what I assume to be, the modulation tone. Until it goes back down to 1 flash which is passthru. I can't hear my voice though! The microphone is plugged into "Stereo In" and turned on. I tested the microphone with a loopback on my computer OK.

    I'm wondering if the option of "5505" is correct, for others I have used "ubsstck_v1" or C5515. I guess next I should place a wave generator into the "Stereo In" and probe the board to see if the signal appears. Except I'm running out of time with the license. I guess when I use a 16K output binary limited license that it makes no sense to use the huge model? And I don't want to buy an expensive license until I get an example working!

    Much appreciated.

     

  • PS, In addition to the thread above, I can't vouch that my microphone has 600 ohm impedance - it is part of a headset I use with my computer. Is this important?

  • Microphone. Bought a 600 ohm impedance microphone and it now works.

  • Hi Robert, 

    Nice catch - the C5505 eZdsp does not provide MIC bias, so you cannot use any standard PC microphone as you now know. Dynamic mics still work.

    With the C5535 eZdsp, the MIC bias signal is routed from the AIC3204 to the microphone, so you can use a standard PC mic with the C5535 eZdsp.

    Regards,
    Mark