Alejandro Rivas
Alejandro Rivas

Reputation: 11

Is Pitch Shifting accurate in Praat?

I am trying to shift the pitch of a file in 20Hz, but when I do this in praat and get the mean pitch I never get the 20 Hz, just something similar.

For example I have a .85s file with "108.07459844192924 Hz (mean pitch in SELECTION)"; if I go to manipulation, get the pitch tier and shift it 20 Hz the result is a file 126.12524578822578 Hz (mean pitch in SELECTION)

I have already tried changing the time-step, minimum and maximum pitch when creating the manipulation object. That doesn't seem to be the problem

This is my script (I have tested doing it manually and have the same result):

Note: The array dur_files[] has 10 files with different lengths

for i from 0 to 10
    for j from 0 to 10
        selectObject: dur_files[i]
        durat_mod = Get end time
        manip = To Manipulation: 0.005, 10, 1000
        selectObject: manip
        pitch_tier = Extract pitch tier
        selectObject: pitch_tier
        Shift frequencies: 0, durat_mod, 3*(j-5), "Hertz"
        plusObject: manip
        Replace pitch tier
        removeObject: pitch_tier
        selectObject: manip
        resynth = Get resynthesis (overlap-add)
        removeObject: manip
        selectObject: resynth
        Rename: selected$ ("Sound") + "_pitch-" + string$(j-5))
        lib_files[i,j] = selected()
        lib_files_name$[i,j] = selected$() 
    endfor
endfor

Upvotes: 1

Views: 365

Answers (1)

Alejandro Rivas
Alejandro Rivas

Reputation: 11

Ok after almost a year I can answer my own question:

  • finding the pitch (F0) of a spech recording is not an straight forward thing, the pitch ony has sense in the voiced parts of the recording (vowels)

  • Praat in fact, makes the shift in pitch as intended, the measurement is the thing that can have an error

Upvotes: 0

Related Questions