Moving all the formants up and down isn't particularly difficult...if you've already got a frequency-domain processing algorithm stack going. Getting the round trip FFT/IFFT processing needed to into and out of the frequency domain, however, can be difficult, if you've never done it before. For example, you really don't want to use fixed-point FFT and IFFT, so you'll need to use one of the floating-point extensions to the Teensy Audio library. Both of mine include a formant-shifting example.

From my (and Bob Larkin's) OpenAudio library, you can use the formant shifter:

https://github.com/chipaudette/OpenA...tShifter_FD_OA
Or, from my Tympan library (which can work with any Teensy 3.5/3.6 based hardware, not just the Teensy 3.6-based Tympan), you can use it's formant shifting algorithm:

https://github.com/Tympan/Tympan_Lib...mantShifter_FD
Chip