On the Importance Of Formants In Pitch Shifting

Posted by neuronaut on February 06, 2000
Tutorials

cubeThis page is dedicated exclusively to the topic of formant movement occuring when pitch shifting sampled sounds. It will detail the effects involved and show pictures of the effects that cause unnatural sounding pitch shifts.

1.1 Introduction – What are formants?
The following graphics shows a short time fourier spectrum of a sampled sound of a female voice singing the vowel ‘ah’. One can clearly see the fundamental frequency as a prominent peak to the left side of the display. The individual harmonics can be seen as small peaks of varying amplitude forming a regular pattern with equal distances to the fundamental frequency. To the right of the fundamental frequency one could see the harmonics forming some small peaks connected with a dotted line beneath a larger section marked with a solid line and the letter F. The small peaks and the large peak are all formants, we have marked the widest formant with F for utmost clarity and visibility.

Click the picture to view more details.

1.2 Audio Example:
Choir Sound Example (Original) (WAVE, 132k)

1.3 Why formants change with transposition.
In the process of changing the pitch of a signal to sharp, for example, either with or without keeping the original file length, the sample rate of the audio signal is altered thus expanding the fundamental frequency along with all harmonics and the spectral envelope to the right, i.e. to higher frequencies. One can also see the distances between the harmonics determined by N times the fundamental frequency (with N being an integer > 1) becoming larger as is typical for a higher pitch. As the spectral envelope (and thus the marked position F) is also stretched, the position of the formants is altered. This has the same effect as altering the proportions of the vocal tract of the singer, shrinking or stretching him or her in size from a dwarf to a monster. Clearly, this is not happening when the singer sings at a higher pitch, therefore resulting in an artificial sound bearing little resemblance to the original.

1.4 Audio Example:
Choir Sound Example (pitch shifted, formants move) (WAVE, 132k)

1.5 Why singer formants do not change.
When keeping the spectral envelope, i.e. the position of the formants either by pitch transposing with Timbre Correction or by having the singer sing at a higher pitch, one yields a natural sounding transpose. As shown below, the position of the formants (and the marked region F) is not altered during the process of singing at different pitches although the relative distances between the harmonics are now different. When singing at a higher pitch, the formants are not changed since the vocal tract responsible for resonances and cancellations forming the formants also remains unchanged.

1.6 Audio Example:
Choir Sound Example (pitch shifted,formants do not move) (WAVE, 132k)

Empty horizontal bar

10 Comments to On the Importance Of Formants In Pitch Shifting

  • Dear Sirs,

    I would like to change pitch of sound file. Could you help me VB6.0 source code? and explaination.

    Sincerely Yours,
    Tien (Mr.)

  • Dear Sirs,

    Unfortunately, that I know only VB6.0 and I do not know how to convert to VB6.0 from C. I am an amateur programmer. Could you please convert for me and send to my email: hhtien2004 [at] yahoo [dot] ca

    It will be very gratefull for that.

    Sincerely Yours,
    Tien

  • Sorry but we cannot do custom development and porting free of charge.

    It shouldn’t be too hard to do though, so maybe you want to give it a try and see how it goes. If you hit any major roadblocks you can get back in touch with us or the people from our forum – maybe there is someone with VB experience there who can help you out.

  • I’ve been testing to read and show Fourier transforms of your 3 wav files with Matlab. I use wavread, fft (size of 2048), fftshift, plot. I founds that fft of 3 sounds are exactely the same in magnitude and formant positions !!! Could you explain to me why ?

  • No – the only explanation I have is that you must be doing something wrong, or something must be going very wrong in your script. The files clearly are different (you can verify that by listening to them). Are you sure you’re using the correct files? Also, I’m not sure if ML can decode IMA compressed WAV files, so you should double check that the files are read successfully before assuming anything about the data you’re analyzing.

    HTH
    –smb

  • Hello!!
    I would like to ask One baisc Question:
    If Pitch is the fundamental frequency then are the formant integral multiples of Pitch i.e the harmonics?? I mean are they on 2f,3f,4f…so on???

  • Taimoor, I think I can answer your question. Formant frequencies aren’t dependent on the fundamental frequency (pitch) of the note, they depend on the vocal tract of the singer. So lets say you move the formants without changing the pitch. You can make the singer sound like a little girl or a Russian swimmer, but it’s still the same note on a scale. That’s why you don’t want to move the formants when you pitch shift, because it’s the note that’s changing, not the vocal tract of the singer.

  • Thank you for your great article about pitch shifting and the easy-to-understand explanation of formants. Could you point me to the good approaches to keep/move the formants during the pitch shifting? As I understand this is the important part of changing the voice gender

  • I would like to see a electronics project thad implement a real time pitch shift…for example with dsPIC.

    Thanks you and very compliments for this website!!