メインページ | モジュール | データ構造 | Directories | ファイル一覧 | データフィールド | グローバル | 関連ページ

wav2mfcc-buffer.c

音声波形から MFCC 特徴量へ変換する(発話単位) [詳細]

#include <sent/stddefs.h>
#include <sent/mfcc.h>

wav2mfcc-buffer.cのインクルード依存関係図

ソースコードを見る。

関数

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)
int Wav2MFCC (SP16 *wave, float **mfcc, Value para, int nSamples, float *ssbuf, int ssbuflen)
float CalcLogRawE (float *wave, int framesize)
void ZMeanFrame (float *wave, int framesize)
void Hamming (float *wave, int framesize)
void PreEmphasise (float *wave, Value para)
void WeightCepstrum (float *mfcc, Value para)
float Mel (int k, float fres)
FBankInfo InitFBank (Value para)
void FreeFBank (FBankInfo fb)
void MakeFBank (float *wave, double *fbank, FBankInfo fb, Value para, float *ssbuf)
void MakeMFCC (double *fbank, float *mfcc, Value para)
float CalcC0 (double *fbank, Value para)
void NormaliseLogE (float **mfcc, int frame_num, Value para)
void Delta (float **c, int frame, Value para)
void Accel (float **c, int frame, Value para)
void FFT (float *xRe, float *xIm, int p)
void CMN (float **mfcc, int frame_num, int dim)

変数

static double * costbl_hamming
 Cos table for hamming window.
static int costbl_hamming_len = 0
 Length of above.
static double * costbl_fft
 Cos table for FFT.
static double * sintbl_fft
 Sin table for FFT.
static int tbllen = 0
 Length of above.
static double * costbl_makemfcc
 Cos table for DCT.
static int costbl_makemfcc_len = 0
 Length of above.
static double * sintbl_wcep
 Sin table for cepstrum weighting.
static int sintbl_wcep_len = 0
 Length of above.
static float sqrt2var
 Work area that holds value of sqrt(2.0) / fbank_num.


説明

音声波形から MFCC 特徴量へ変換する(発話単位)

作者:
Akinobu LEE
日付:
Thu Feb 17 17:43:35 2005
ここでは音声波形全体を単位として MFCC ベクトル系列へ変換する関数が定義 されています.フレーム単位で抽出を行う関数は wav2mfcc-pipe.c に 記述されています

ここで抽出できるのは MFCC[_0][_E][_D][_A][_Z] の形式です.

Revision
1.2

wav2mfcc-buffer.c で定義されています。


関数

void make_costbl_hamming (  int  framesize  ) 
 

Generate table for hamming window.

引数:
framesize [in] window size

wav2mfcc-buffer.c の 74 行で定義されています。

参照元 InitFBank(), と new_SS_calculate().

void make_fft_table (  int  n  ) 
 

Build tables for FFT.

引数:
n [in] 2^n = FFT point

wav2mfcc-buffer.c の 105 行で定義されています。

参照元 InitFBank(), と 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

wav2mfcc-buffer.c の 138 行で定義されています。

参照元 InitFBank().

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

wav2mfcc-buffer.c の 176 行で定義されています。

参照元 InitFBank().

int Wav2MFCC (  SP16 *  wave,
float **  mfcc,
Value  para,
int  nSamples,
float *  ssbuf,
int  ssbuflen
) 
 

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
戻り値:
the number of processed frames.

wav2mfcc-buffer.c の 217 行で定義されています。

参照元 new_wav2mfcc().

float CalcLogRawE (  float *  wave,
int  framesize
) 
 

Calculate Log Raw Energy.

引数:
wave [in] waveform data in the current frame
framesize [in] frame size
戻り値:
the calculated log raw energy.

wav2mfcc-buffer.c の 316 行で定義されています。

参照元 Wav2MFCC(), と 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

wav2mfcc-buffer.c の 337 行で定義されています。

参照元 Wav2MFCC(), と WMP_calc().

void Hamming (  float *  wave,
int  framesize
) 
 

Apply hamming window.

引数:
wave [i/o] waveform data in the current frame
framesize [in] frame size

wav2mfcc-buffer.c の 354 行で定義されています。

参照元 new_SS_calculate(), Wav2MFCC(), と 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

wav2mfcc-buffer.c の 374 行で定義されています。

参照元 new_SS_calculate(), Wav2MFCC(), と WMP_calc().

void WeightCepstrum (  float *  mfcc,
Value  para
) 
 

Re-scale cepstral coefficients.

引数:
mfcc [i/o] a MFCC vector
para [in] configuration parameters

wav2mfcc-buffer.c の 389 行で定義されています。

参照元 Wav2MFCC(), と 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)"
戻り値:
the mel frequency.

wav2mfcc-buffer.c の 423 行で定義されています。

参照元 InitFBank().

FBankInfo InitFBank (  Value  para  ) 
 

Build filterbank information and generate tables for MFCC comptutation.

引数:
para [in] configuration parameters
戻り値:
the generated filterbank information.

wav2mfcc-buffer.c の 435 行で定義されています。

参照元 Wav2MFCC(), と WMP_init().

void FreeFBank (  FBankInfo  fb  ) 
 

Free FBankInfo.

引数:
fb [in] filterbank information

wav2mfcc-buffer.c の 529 行で定義されています。

参照元 Wav2MFCC().

void MakeFBank (  float *  wave,
double *  fbank,
FBankInfo  fb,
Value  para,
float *  ssbuf
) 
 

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

wav2mfcc-buffer.c の 547 行で定義されています。

参照元 Wav2MFCC(), と 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

wav2mfcc-buffer.c の 607 行で定義されています。

参照元 Wav2MFCC(), と WMP_calc().

float CalcC0 (  double *  fbank,
Value  para
) 
 

Calculate 0'th cepstral coefficient.

引数:
fbank [in] filterbank
para [in] configuration parameters
戻り値:

wav2mfcc-buffer.c の 644 行で定義されています。

参照元 Wav2MFCC(), と WMP_calc().

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

wav2mfcc-buffer.c の 663 行で定義されています。

参照元 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

wav2mfcc-buffer.c の 695 行で定義されています。

参照元 Wav2MFCC().

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

wav2mfcc-buffer.c の 744 行で定義されています。

参照元 Wav2MFCC().

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

wav2mfcc-buffer.c の 782 行で定義されています。

参照元 MakeFBank(), と new_SS_calculate().

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

wav2mfcc-buffer.c の 835 行で定義されています。

参照元 Wav2MFCC().


Juliusに対してTue Mar 28 16:22:53 2006に生成されました。  doxygen 1.4.2