i am still yet to hear a good way to change pitch in realtime.
if you use one of these delayline pitch shifters (like in the .doc) , it's going to end up sounding like a stick being run across a wire fence.
and if you use some sort of pitch vocoder (fourier transformation), it sounds a lot more soft and human, but still has that 'wrapped in thick plastic' effect