#include <sent/stddefs.h>
#include <sent/htk_defs.h>
#include <ctype.h>
Include dependency graph for mfcc.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | Value |
| mfcc configuration parameter values More... | |
| struct | FBankInfo |
| Workspace for filterbank analysis. More... | |
| struct | DeltaBuf |
| Cycle buffer for delta computation. More... | |
Defines | |
| #define | DEF_SMPPERIOD 625 |
| DEBUG: define if you want to enable debug messages for sin/cos table operation Default sampling period in 100ns (625 = 16kHz). | |
| #define | DEF_FRAMESIZE 400 |
| Default Window size in samples, similar to WINDOWSIZE in HTK (unit is different). | |
| #define | DEF_FFTNUM 512 |
| Number of FFT steps. | |
| #define | DEF_FRAMESHIFT 160 |
| Default frame shift length in samples. | |
| #define | DEF_PREENPH 0.97 |
| Default pre-emphasis coefficient, corresponds to PREEMCOEF in HTK. | |
| #define | DEF_MFCCDIM 12 |
| Default number of MFCC dimension, corresponds to NUMCEPS in HTK. | |
| #define | DEF_CEPLIF 22 |
| Default cepstral Liftering coefficient, corresponds to CEPLIFTER in HTK. | |
| #define | DEF_FBANK 24 |
| Default number of filterbank channels, corresponds to NUMCHANS in HTK. | |
| #define | DEF_DELWIN 2 |
| Default delta window size, corresponds to DELTAWINDOW in HTK. | |
| #define | DEF_ACCWIN 2 |
| Default acceleration window size, corresponds to ACCWINDOW in HTK. | |
| #define | DEF_SILFLOOR 50.0 |
| Default energy silence floor in dBs, corresponds to SILFLOOR in HTK. | |
| #define | DEF_ESCALE 1.0 |
| Default scaling coefficient of log energy, corresponds to ESCALE in HTK. | |
| #define | DEF_SSALPHA 2.0 |
| Default alpha coefficient for spectral subtraction. | |
| #define | DEF_SSFLOOR 0.5 |
| Default flooring coefficient for spectral subtraction. | |
| #define | VALUE_VERSION 1 |
| Integer version number of Value, for embedding. | |
Functions | |
| void | WMP_calc_init (Value para, float **bf, int *bflen) |
| void | WMP_calc (float *mfcc, float *bf, Value para, float *ssbuf) |
| void | WMP_calc_fin (float *bf) |
| void | make_costbl_hamming (int framesize) |
| void | make_fft_table (int n) |
| void | make_costbl_makemfcc (int fbank_num, int mfcc_dim) |
| void | make_sintbl_wcep (int lifter, int mfcc_dim) |
| FBankInfo | InitFBank (Value para) |
| void | FreeFBank (FBankInfo fb) |
| void | Hamming (float *wave, int framesize) |
| void | PreEmphasise (float *wave, Value para) |
| float | Mel (int k, float fres) |
| void | FFT (float *xRe, float *xIm, int p) |
| void | MakeFBank (float *wave, double *fbank, FBankInfo info, Value para, float *ssbuf) |
| void | MakeMFCC (double *fbank, float *mfcc, Value para) |
| float | CalcC0 (double *fbank, Value para) |
| float | CalcLogRawE (float *wave, int framesize) |
| void | ZMeanFrame (float *wave, int framesize) |
| void | WeightCepstrum (float *mfcc, Value para) |
| int | Wav2MFCC (SP16 *wave, float **mfcc, Value para, int nSamples, float *ssbuf, int ssbuflen) |
| void | Delta (float **c, int frame, Value para) |
| void | Accel (float **c, int frame, Value para) |
| void | NormaliseLogE (float **c, int frame_num, Value para) |
| void | CMN (float **mfcc, int frame_num, int dim) |
| void | WMP_init (Value para, float **bf, float *ssbuf, int ssbuflen) |
| DeltaBuf * | WMP_deltabuf_new (int veclen, int windowlen) |
| void | WMP_deltabuf_free (DeltaBuf *db) |
| void | WMP_deltabuf_prepare (DeltaBuf *db) |
| boolean | WMP_deltabuf_proceed (DeltaBuf *db, float *new_mfcc) |
| boolean | WMP_deltabuf_flush (DeltaBuf *db) |
| void | CMN_realtime_init (int dimension, float weight) |
| void | CMN_realtime_prepare () |
| void | CMN_realtime (float *mfcc, int dim) |
| void | CMN_realtime_update () |
| boolean | CMN_load_from_file (char *filename, int dim) |
| boolean | CMN_save_to_file (char *filename) |
| void | energy_max_init () |
| void | energy_max_prepare (Value *para) |
| LOGPROB | energy_max_normalize (LOGPROB f, Value *para) |
| float * | new_SS_load_from_file (char *filename, int *slen) |
| float * | new_SS_calculate (SP16 *wave, int wavelen, Value para, int *slen) |
| void | undef_para (Value *para) |
| void | make_default_para (Value *para) |
| void | make_default_para_htk (Value *para) |
| void | apply_para (Value *dst, Value *src) |
| boolean | htk_config_file_parse (char *HTKconffile, Value *para) |
| void | calc_para_from_header (Value *para, short param_type, short vec_size) |
| void | put_para (Value *para) |
Definition in file mfcc.h.
| void WMP_calc_init | ( | Value | para, | |
| float ** | bf, | |||
| int * | bflen | |||
| ) |
Initialize calculation functions and work areas.
| para | [in] configuration parameters | |
| bf | [out] returns pointer to newly allocated window buffer | |
| bflen | [out] length of bf |
Definition at line 605 of file mfcc-core.c.
Referenced by WMP_init().
| void WMP_calc | ( | float * | mfcc, | |
| float * | bf, | |||
| Value | para, | |||
| float * | ssbuf | |||
| ) |
Calculate MFCC and log energy for one frame. Perform spectral subtraction if ssbuf is specified.
| mfcc | [out] buffer to hold the resulting MFCC vector | |
| bf | [i/o] work area for FFT | |
| para | [in] configuration parameters | |
| ssbuf | [in] noise spectrum, or NULL if not using spectral subtraction |
Definition at line 632 of file mfcc-core.c.
Referenced by RealTimePipeLine(), and Wav2MFCC().
| void WMP_calc_fin | ( | float * | bf | ) |
Free work area for MFCC computation
| bf | [in] window buffer previously allocated by WMP_calc_init() |
Definition at line 674 of file mfcc-core.c.
| void make_costbl_hamming | ( | int | framesize | ) |
Generate table for hamming window.
| framesize | [in] window size |
Definition at line 63 of file mfcc-core.c.
Referenced by new_SS_calculate().
| void make_fft_table | ( | int | n | ) |
Build tables for FFT.
| n | [in] 2^n = FFT point |
Definition at line 94 of file mfcc-core.c.
Referenced by new_SS_calculate().
| void make_costbl_makemfcc | ( | int | fbank_num, | |
| int | mfcc_dim | |||
| ) |
Generate table for DCT operation to make mfcc from fbank.
| fbank_num | [in] number of filer banks | |
| mfcc_dim | [in] number of dimensions in MFCC |
Definition at line 127 of file mfcc-core.c.
| void make_sintbl_wcep | ( | int | lifter, | |
| int | mfcc_dim | |||
| ) |
Generate table for weighing cepstrum.
| lifter | [in] cepstral liftering coefficient | |
| mfcc_dim | [in] number of dimensions in MFCC |
Definition at line 165 of file mfcc-core.c.
Build filterbank information and generate tables for MFCC comptutation.
| para | [in] configuration parameters |
Definition at line 211 of file mfcc-core.c.
Referenced by WMP_calc_init().
| void FreeFBank | ( | FBankInfo | fb | ) |
Free FBankInfo.
| fb | [in] filterbank information |
Definition at line 305 of file mfcc-core.c.
Referenced by WMP_calc_fin().
| void Hamming | ( | float * | wave, | |
| int | framesize | |||
| ) |
Apply hamming window.
| wave | [i/o] waveform data in the current frame | |
| framesize | [in] frame size |
Definition at line 375 of file mfcc-core.c.
Referenced by new_SS_calculate(), and WMP_calc().
| void PreEmphasise | ( | float * | wave, | |
| Value | para | |||
| ) |
Apply pre-emphasis filter.
| wave | [i/o] waveform data in the current frame | |
| para | [in] configuration parameters |
Definition at line 360 of file mfcc-core.c.
Referenced by new_SS_calculate(), and WMP_calc().
| float Mel | ( | int | k, | |
| float | fres | |||
| ) |
Return mel-frequency.
| k | [in] channel number of filter bank | |
| fres | [in] constant value computed by "1.0E7 / (para.smp_period * fb.fftN * 700.0)" |
Definition at line 199 of file mfcc-core.c.
Referenced by InitFBank().
| void FFT | ( | float * | xRe, | |
| float * | xIm, | |||
| int | p | |||
| ) |
Apply FFT
| xRe | [i/o] real part of waveform | |
| xIm | [i/o] imaginal part of waveform | |
| p | [in] 2^p = FFT point |
Definition at line 396 of file mfcc-core.c.
Convert wave -> (spectral subtraction) -> mel-frequency filterbank
| wave | [in] waveform data in the current frame | |
| fbank | [out] the resulting mel-frequency filterbank | |
| fb | [in] filterbank information | |
| para | [in] configuration parameters | |
| ssbuf | [in] noise spectrum, or NULL if not apply subtraction |
Definition at line 450 of file mfcc-core.c.
Referenced by WMP_calc().
| void MakeMFCC | ( | double * | fbank, | |
| float * | mfcc, | |||
| Value | para | |||
| ) |
Apply DCT to filterbank to make MFCC.
| fbank | [in] filterbank | |
| mfcc | [out] output MFCC vector | |
| para | [in] configuration parameters |
Definition at line 528 of file mfcc-core.c.
Referenced by WMP_calc().
| float CalcC0 | ( | double * | fbank, | |
| Value | para | |||
| ) |
Calculate 0'th cepstral coefficient.
| fbank | [in] filterbank | |
| para | [in] configuration parameters |
Definition at line 510 of file mfcc-core.c.
Referenced by WMP_calc().
| float CalcLogRawE | ( | float * | wave, | |
| int | framesize | |||
| ) |
Calculate Log Raw Energy.
| wave | [in] waveform data in the current frame | |
| framesize | [in] frame size |
Definition at line 341 of file mfcc-core.c.
Referenced by WMP_calc().
| void ZMeanFrame | ( | float * | wave, | |
| int | framesize | |||
| ) |
Remove DC offset per frame
| wave | [i/o] waveform data in the current frame | |
| framesize | [in] frame size |
Definition at line 322 of file mfcc-core.c.
Referenced by new_SS_calculate(), and WMP_calc().
| void WeightCepstrum | ( | float * | mfcc, | |
| Value | para | |||
| ) |
Re-scale cepstral coefficients.
| mfcc | [i/o] a MFCC vector | |
| para | [in] configuration parameters |
Definition at line 562 of file mfcc-core.c.
Referenced by WMP_calc().
Convert wave data to MFCC. Also does spectral subtraction if ssbuf specified.
| wave | [in] waveform data | |
| mfcc | [out] buffer to store the resulting MFCC parameter vector [t][0..veclen-1], should be already allocated | |
| para | [in] configuration parameters | |
| nSamples | [in] length of waveform data | |
| ssbuf | [in] buffer that holds noise spectrum to be subtracted from input, or NULL if not use spectral subtraction | |
| ssbuflen | [in] length of above, ignored when ssbuf is NULL |
Definition at line 56 of file wav2mfcc-buffer.c.
Referenced by new_wav2mfcc().
| void Delta | ( | float ** | c, | |
| int | frame, | |||
| Value | para | |||
| ) |
Calculate delta coefficients
| c | [i/o] MFCC vectors, in which the delta coeff. will be appended. | |
| frame | [in] number of frames | |
| para | [in] configuration parameters |
Definition at line 140 of file wav2mfcc-buffer.c.
| void Accel | ( | float ** | c, | |
| int | frame, | |||
| Value | para | |||
| ) |
Calculate acceleration coefficients.
| c | [i/o] MFCC vectors, in which the delta coeff. will be appended. | |
| frame | [in] number of frames | |
| para | [in] configuration parameters |
Definition at line 188 of file wav2mfcc-buffer.c.
| void NormaliseLogE | ( | float ** | mfcc, | |
| int | frame_num, | |||
| Value | para | |||
| ) |
Normalise log energy
| mfcc | [i/o] array of MFCC vectors | |
| frame_num | [in] number of frames | |
| para | [in] configuration parameters |
Definition at line 108 of file wav2mfcc-buffer.c.
| void CMN | ( | float ** | mfcc, | |
| int | frame_num, | |||
| int | dim | |||
| ) |
Cepstrum Mean Normalization (buffered) Cepstral mean will be computed within the given MFCC vectors.
| mfcc | [i/o] array of MFCC vectors | |
| frame_num | [in] number of frames | |
| dim | [in] total dimension of MFCC vectors |
Definition at line 227 of file wav2mfcc-buffer.c.
| void WMP_init | ( | Value | para, | |
| float ** | bf, | |||
| float * | ssbuf, | |||
| int | ssbuflen | |||
| ) |
initialize and setup buffers for a MFCC computataion.
| para | [in] configuration parameters | |
| bf | [out] pointer to the entry point of workspace for FFT | |
| ssbuf | [in] noise spectrum, or NULL if not using spectral subtraction | |
| ssbuflen | [in] length of above, ignoredwhen ssbuf is NULL |
Definition at line 57 of file wav2mfcc-pipe.c.
Referenced by RealTimeInit(), and Wav2MFCC().
| DeltaBuf* WMP_deltabuf_new | ( | int | veclen, | |
| int | windowlen | |||
| ) |
Allocate a new delta cycle buffer.
| veclen | [in] length of a vector | |
| windowlen | [in] window width for computing delta |
Definition at line 83 of file wav2mfcc-pipe.c.
Referenced by RealTimeInit().
| void WMP_deltabuf_free | ( | DeltaBuf * | db | ) |
Destroy the delta cycle buffer.
| db | [i/o] delta cycle buffer |
Definition at line 110 of file wav2mfcc-pipe.c.
| void WMP_deltabuf_prepare | ( | DeltaBuf * | db | ) |
Reset and clear the delta cycle buffer.
| db | [i/o] delta cycle buffer |
Definition at line 128 of file wav2mfcc-pipe.c.
Referenced by RealTimePipeLinePrepare().
Store the given MFCC vector into the delta cycle buffer, and compute the latest delta coefficients.
| db | [i/o] delta cycle buffer | |
| new_mfcc | [in] MFCC vector |
Definition at line 187 of file wav2mfcc-pipe.c.
Referenced by RealTimeParam(), and RealTimePipeLine().
Flush the delta cycle buffer the delta coefficients left in the cycle buffer.
| db | [i/o] delta cycle buffer |
Definition at line 229 of file wav2mfcc-pipe.c.
Referenced by RealTimeParam().
| void CMN_realtime_init | ( | int | dimension, | |
| float | weight | |||
| ) |
Initialize MAP-CMN at startup.
| dimension | [in] vector dimension | |
| weight | [in] initial cepstral mean weight |
Definition at line 290 of file wav2mfcc-pipe.c.
Referenced by RealTimeInit().
| void CMN_realtime_prepare | ( | ) |
Prepare for MAP-CMN at start of each input
Definition at line 317 of file wav2mfcc-pipe.c.
Referenced by RealTimePipeLinePrepare().
| void CMN_realtime | ( | float * | mfcc, | |
| int | dim | |||
| ) |
Perform MAP-CMN for incoming MFCC vectors
| mfcc | [in] MFCC vector | |
| dim | [in] dimension |
Definition at line 332 of file wav2mfcc-pipe.c.
Referenced by RealTimeParam(), and RealTimePipeLine().
| void CMN_realtime_update | ( | ) |
Update initial cepstral mean from previous utterances for next input.
Definition at line 360 of file wav2mfcc-pipe.c.
Referenced by RealTimeCMNUpdate().
| boolean CMN_load_from_file | ( | char * | filename, | |
| int | dim | |||
| ) |
Load CMN parameter from file. If the number of MFCC dimension in the file does not match the specified one, an error will occur.
| filename | [in] file name | |
| dim | [in] required number of MFCC dimensions |
Definition at line 460 of file wav2mfcc-pipe.c.
Referenced by RealTimeInit().
| boolean CMN_save_to_file | ( | char * | filename | ) |
Save the current CMN vector to a file.
| filename | [in] filename to save the data. |
Definition at line 504 of file wav2mfcc-pipe.c.
Referenced by RealTimeCMNUpdate().
| void energy_max_init | ( | ) |
Initialize work area for energy normalization on live input. This should be called once on startup.
Definition at line 543 of file wav2mfcc-pipe.c.
Referenced by RealTimeInit().
| void energy_max_prepare | ( | Value * | para | ) |
Prepare values for energy normalization on live input. This should be called before each input segment.
| para | [in] MFCC computation configuration parameter |
Definition at line 555 of file wav2mfcc-pipe.c.
Referenced by RealTimePipeLinePrepare().
Peform energy normalization using maximum of last input.
| f | [in] raw energy | |
| para | [in] MFCC computation configuration parameter |
Definition at line 571 of file wav2mfcc-pipe.c.
Referenced by RealTimePipeLine().
| float* new_SS_load_from_file | ( | char * | filename, | |
| int * | slen | |||
| ) |
Load a noise spectrum from file.
| filename | [in] path name of noise spectrum file | |
| slen | [out] length of the returned buffer |
Definition at line 65 of file ss.c.
Referenced by new_wav2mfcc(), and RealTimeInit().
Compute average spectrum of audio input. This is used to estimate a noise spectrum from input samples.
| wave | [in] input audio data sequence | |
| wavelen | [in] length of above | |
| para | [in] parameter | |
| slen | [out] length of returned buffer |
Definition at line 109 of file ss.c.
Referenced by new_wav2mfcc().
| void undef_para | ( | Value * | para | ) |
Reset configuration parameters for MFCC computation.
| para | [out] feature extraction parameters |
Definition at line 38 of file para.c.
Referenced by initialize_GMM(), initialize_GSHMM(), and system_bootup().
| void make_default_para | ( | Value * | para | ) |
Set Julius default parameters for MFCC computation.
| para | [out] feature extraction parameters |
Definition at line 79 of file para.c.
Referenced by system_bootup().
| void make_default_para_htk | ( | Value * | para | ) |
Set HTK default configuration parameters for MFCC computation. This will be refered when parameters are given as HTK Config file.
| para | [out] feature extraction parameters |
Definition at line 109 of file para.c.
Referenced by system_bootup().
Merge two configuration parameters for MFCC computation.
| dst | [out] feature extraction parameters to set to | |
| src | [out] feature extraction parameters to set from |
Definition at line 134 of file para.c.
Referenced by final_fusion().
Read and parse an HTK Config file, and set the specified option values.
| HTKconffile | [in] HTK Config file path name | |
| para | [out] MFCC parameter to set |
Definition at line 178 of file para.c.
Referenced by opt_parse().
| void calc_para_from_header | ( | Value * | para, | |
| short | param_type, | |||
| short | vec_size | |||
| ) |
Set acoustic analysis parameters from HTK HMM definition header information.
| para | [out] acoustic analysis parameters | |
| param_type | [in] parameter type specified at HMM header | |
| vec_size | [in] vector size type specified at HMM header |
Definition at line 286 of file para.c.
Referenced by initialize_HMM().
| void put_para | ( | Value * | para | ) |
Output acoustic analysis configuration parameters to stdout.
| para | [in] configuration parameter |
Definition at line 322 of file para.c.
Referenced by print_info().
1.5.0