Pitchmark the speech

The signal processing used for waveform concatenation is pitch-syncronous, so that requires the speech database to have the individual pitch periods marked.

make_pm_wave generates pitch marks from your waveforms:

bash$ make_pm_wave -[mf] pm wav/*.wav 
bash$ make_pm_fix pm/*.pm

Note that -[mf] means that you should specify either -m or -f, for male or female.

make_pm_fix adjusts the pitch marks so they each align with a peak in the waveform.

Optional: view the pitch marks

To view pitch marks (so that you can check they are accurate) you need to convert them into label files. These can then be viewed in wavesurfer along with the corresponding waveform.

bash$ mkdir pm_lab
bash$ make_pmlab_pm pm/*.pm

Optional: adjust the pitch marker settings

You might need to adjust some of the parameters of the pitch marker to make it work well on your voice. If you need to make changes, copy the script $MBDIR/bin/make_pm_wave to your ss directory and make changes to your own copy. Then run the script as ./make_pm_wave so that your version is run rather than the default version.

Look for the DEFAULT_PM_ARGS lines in the script. The min and max values are minimum and maximum times between pitch marks (i.e., the pitch period, which is 1/F0). The lx_lf and lx_hf values are frequency values in Hertz and control a filter which is used to remove both high and low frequencies before the actual pitchmarking is performed.

If you decide to change the default values, you need to find out what the range of F0 is for your voice. You can use Praat’s edit command to examine a few waveforms along with pitch contours, and make a note of the maximum and minimum values you find (excluding any obvious errors made by Praat). Set the high and low frequency filters to just above and just below (maybe 40Hz either direction) this pitch range, as well as setting the appropriate min and max values for your pitch range. Re-run the pitch marker and check the output again. You will need to convert the pitchmarks to label files in order to view them.

It is helpful to remove the -fill option when tuning the pitchmarker settings, and to re-instate it just before pitchmarking all your data at the end. For more tips try this short guide.

Related forums