PCM3070: Voice Changer

Part Number: PCM3070

Dear Team

Good day!

Our customer want to use our miniDSP in their application ,like  voice input through the microphone, male voice can be converted to female voice and output from line out .

As my understanding , the AD collect the signal and do the FFT operation , change the signal to the frequency domain .then add the zero at the low end of the data. so the frequency will be raised .then do the FFT inverse transform to the timing domain .then you will get the voice which is raised tone . you can sample from the time domain .

Does my understanding correct ?

I did not find any useful reference design or information which describe our MiniDSP can support this application . Could you help me to confirm it ?

Is there any recommend devices? or software sample ?



  • Leon.liu,

    You are asking about a pitch shifting algorithm. There are two main approaches for pitch shifting: in time domain and frequency domain. In the time domain, overlap-add is a common approach with lower processing requirements than the frequency domain approach. This approach extracts overlapping frames of the input signal and adding them together based on shifting these frames. In the frequency domain approach, an windowed FFT of the input is used for a filterbank approach where each group of the filterbank is then shifted, then the inverse FFT and added together. Another more common method is to use the short time Fourier transform (STFT) as the filterbank implementation. 

    The processing requirements for this pitch shifting implementation tend to exceed the memory and MIPS available in our miniDSPs. Typically, external Digital Signal Processors (DSP) are used for implementing these types of algorithms to minimize smearing the input signal and creating audible artifacts like a chorus effect. The chorus effect results from several pitch shifted sinusoids that are very close in frequency, but do not happen to use the same frequency. The smearing can occur on fast moving signals that are much shorter than the windows used in the overlap-add.

    You can search on the web for pitch shifting, time scale modification (TSM), waveform similarity overlap and add (WSOLA),  and phase vocoder for examples of these algorithms. MatLab also has a TSM toolbox.

    Best regards,