Include dependency graph for strip_mfcc.c:
Go to the source code of this file.
|#define||IS_INVALID_FRAME_MFCC(A) ((A) < -30.0 || (A) > 30.0)|
|Invalid log value range to detect zero sample frame. |
|static int||guess_abs_e_location (HTK_Param *param)|
|boolean||param_strip_zero (HTK_Param *param)|
The detection is done by setting valid range of log energy.
However, since HTK parameter file has no information for framesize or frequency, defining precise upper bound of power is impossible.
Guess the power that is in log scale as described below,
framesize : 1 100 400 1000 10000(can't be!) upper bound: 20.794 25.400 26.786 27.702 30.005
Thus it can be said that the range of [0..30] will work.
When energy normalization was on, the parameters are normalized to:
1.0 - (Emax - value) * ESCALE
So the range becomes [1.0-Emax*ESCALE..1.0]. But the engine cannot know whether the ENORMALIZE was on for given parameters.
As a conclusion, the safe bit is to set the range of log energy to [-30..30] hoping that escale is less than 1.0 (the HTK's default is 0.1).
But remember, there are no guarantee that valid segments is not misdetected. When the misdetection frequently occurs on your MFCC file, please try "-nostrip" option to turn off the stripping.
Definition in file strip_mfcc.c.
Guess where the absolute energy coefficient is.
Referenced by param_strip_zero().
Strip zero frames from MFCC data.
Referenced by main_recognition_loop().