Functions | |
EST_Track | pitchmark (EST_Wave &lx, EST_Features &op) |
EST_Track | pitchmark (EST_Wave &lx, int lx_lf, int lx_lo, int lx_hf, int lx_ho, int df_lf, int df_lo, int mo, int debug=0) |
void | neg_zero_cross_pick (EST_Wave &lx, EST_Track &pm) |
void | pm_fill (EST_Track &pm, float new_end, float max, float min, float def) |
void | pm_min_check (EST_Track &pm, float min) |
void | pm_to_f0 (EST_Track &pm, EST_Track &f0) |
void | pm_to_f0 (EST_Track &pm, EST_Track &fz, float shift) |
Pitchmarking involves finding some pre-defined pitch related instant for every pitch period in the speech. At present, only functions for analysing laryngograph waveforms are available - the much harder problem of doing this on actual speech has not been attempted.
EST_Track pitchmark | ( | EST_Wave & | lx, |
EST_Features & | op | ||
) |
Find pitchmarks in Laryngograph (lx) signal.
This high level function places a pitchmark on each positive peak in the voiced portions of the lx signal. Pitchmarks are stored in the time component of a EST_Track object and returned. The function works by high and low pass filtering the signal using forward and backward filtering to remove phase shift. The negative going points in the smoothed differentiated signal, corresponding to peaks in the original are then chosen.
lx | laryngograph waveform |
op | {options, mainly for filter control:
|
Definition at line 105 of file pitchmark.cc.
EST_Track pitchmark | ( | EST_Wave & | lx, |
int | lx_lf, | ||
int | lx_lo, | ||
int | lx_hf, | ||
int | lx_ho, | ||
int | df_lf, | ||
int | df_lo, | ||
int | mo, | ||
int | debug = 0 |
||
) |
Find pitchmarks in Laryngograph (lx) signal. The function is the same as pitchmark but with more explicit control over the parameters.
lx | laryngograph waveform |
lx_lf | low pass cut off for lx filtering : typical value 400 |
lx_fo | order of low pass lx filter : typical value 19 |
lx_hf | high pass cut off for lx filtering : typical value 40 |
lx_ho | : typical value 19 |
mo | order of median smoother used to smoother differentiated lx : typical value 19 |
Definition at line 57 of file pitchmark.cc.
Find times where waveform cross zero axis in negative direction.
sig | waveform |
pm | pitchmark track which stores time positions of negative crossings |
Definition at line 233 of file pitchmark.cc.
void pm_fill | ( | EST_Track & | pm, |
float | new_end, | ||
float | max, | ||
float | min, | ||
float | def | ||
) |
Produce a set of sensible pitchmarks.
Given a set of raw pitchmarks, this function makes sure no pitch period is shorter that min
seconds and no longer than max
seconds. Periods that are too short are eliminated. If a period is too long, extra pitchmarks are inserted whose period is { approximately} def
seconds in duration. The approximation is to ensure that the pitch period in the interval, D, is constant, and so the actual pitch period is given by
Definition at line 154 of file pitchmark.cc.
void pm_min_check | ( | EST_Track & | pm, |
float | min | ||
) |
Remove pitchmarks which are too close together.
This doesn't work in a particularly sophisticated way, in that it removes a sequence of too close pitchmarks left to right, and doesn't attempt to find which ones in the sequence are actually spurious.
Iterate through track and eliminate any frame whose distance to a preceding frames is less than min seconds
Definition at line 138 of file pitchmark.cc.
Definition at line 261 of file pitchmark.cc.
Definition at line 274 of file pitchmark.cc.