Edinburgh Speech Tools  2.1-release
Pitchmarking Functions
Collaboration diagram for Pitchmarking Functions:

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)
 

Detailed Description

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.

Function Documentation

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.

Parameters
lxlaryngograph waveform
op{options, mainly for filter control:
  • lx_low_frequency low pass cut off for lx filtering : typical value 400
  • lx_low_order order of low pass lx filter: typical value 19
  • lx_high_frequency high pass cut off for lx filtering: typical value 40
  • lx_high_order order of high pass lx filter: typical value 19
  • median_order order of high pass lx filter: typical value 19 }

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.

Parameters
lxlaryngograph waveform
lx_lflow pass cut off for lx filtering : typical value 400
lx_foorder of low pass lx filter : typical value 19
lx_hfhigh pass cut off for lx filtering : typical value 40
lx_ho: typical value 19
moorder of median smoother used to smoother differentiated lx : typical value 19

Definition at line 57 of file pitchmark.cc.

void neg_zero_cross_pick ( EST_Wave lx,
EST_Track pm 
)

Find times where waveform cross zero axis in negative direction.

Parameters
sigwaveform
pmpitchmark 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

\[T = D / floor(D/def)\]

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.

void pm_to_f0 ( EST_Track pm,
EST_Track f0 
)

Definition at line 261 of file pitchmark.cc.

void pm_to_f0 ( EST_Track pm,
EST_Track fz,
float  shift 
)

Definition at line 274 of file pitchmark.cc.