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

wav2mfcc-pipe.c

音声波形から MFCC 特徴量へ変換する (フレーム単位) [詳細]

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

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

ソースコードを見る。

マクロ定義

#define CPMAX   500
 Maximum number of frames to store ceptral mean for CMN update.
#define CPSTEP   5
 clist allocate step

関数

void WMP_init (Value para, float **bf, float *ssbuf, int ssbuflen)
void WMP_calc (float *mfcc, float *bf, Value para, float *ssbuf)
DeltaBuf * WMP_deltabuf_new (int veclen, int windowlen)
void WMP_deltabuf_free (DeltaBuf *db)
void WMP_deltabuf_prepare (DeltaBuf *db)
static void WMP_deltabuf_calc (DeltaBuf *db, int cur)
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 ()
static boolean myread (void *buf, size_t unitbyte, int unitnum, FILE *fp)
static boolean mywrite (void *buf, size_t unitbyte, int unitnum, int fd)
boolean CMN_load_from_file (char *filename, int dim)
boolean CMN_save_to_file (char *filename)

変数

static double * fbank
 Local buffer to hold filterbank.
static FBankInfo fb
 Local buffer to hold filterbank information.
static CMEAN * clist
 List of MFCC sum for previous inputs.
static int clist_max
 Allocated number of CMEAN in clist.
static int clist_num
 Currentlly filled CMEAN in clist.
static int dim
 Local workarea to store the number of MFCC dimension.
static float cweight
 Weight of initial cepstral mean.
static float * cmean_init
 Initial cepstral mean for each input.
static boolean cmean_init_set
 TRUE if cmean_init was set.
static CMEAN now
 Work area to hold current cepstral mean.


説明

音声波形から MFCC 特徴量へ変換する (フレーム単位)

作者:
Akinobu LEE
日付:
Thu Feb 17 18:12:30 2005
ここでは wav2mfcc.c の関数をフレーム同期に処理するために変換した 関数が納められています.認識処理を音声入力と平行して行う場合,こちらの 関数が用いられます.

Revision
1.5

wav2mfcc-pipe.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

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

参照元 RealTimeInit().

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

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

参照元 RealTimePipeLine().

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
戻り値:
pointer to newly allocated delta cycle buffer structure.

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

参照元 RealTimeInit().

void WMP_deltabuf_free (  DeltaBuf *  db  ) 
 

Destroy the delta cycle buffer.

引数:
db [i/o] delta cycle buffer

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

void WMP_deltabuf_prepare (  DeltaBuf *  db  ) 
 

Reset and clear the delta cycle buffer.

引数:
db [i/o] delta cycle buffer

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

参照元 RealTimePipeLinePrepare().

static void WMP_deltabuf_calc (  DeltaBuf *  db,
int  cur
)  [static]
 

Calculate delta coefficients of the specified point in the cycle buffer.

引数:
db [i/o] delta cycle buffer
cur [in] target point to calculate the delta coefficients

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

参照元 WMP_deltabuf_proceed().

boolean WMP_deltabuf_proceed (  DeltaBuf *  db,
float *  new_mfcc
) 
 

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
戻り値:
TRUE if next delta coeff. computed, in that case it is saved in db->delta[], or FALSE if delta is not yet computed by short of data.

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

参照元 RealTimeParam(), と RealTimePipeLine().

boolean WMP_deltabuf_flush (  DeltaBuf *  db  ) 
 

Flush the delta cycle buffer the delta coefficients left in the cycle buffer.

引数:
db [i/o] delta cycle buffer
戻り値:
TRUE if next delta coeff. computed, in that case it is saved in db->delta[], or FALSE if all delta computation has been flushed and no data is available.

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

参照元 RealTimeParam().

void CMN_realtime_init (  int  dimension,
float  weight
) 
 

Initialize MAP-CMN at startup.

引数:
dimension [in] vector dimension
weight [in] initial cepstral mean weight

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

参照元 RealTimeInit().

void CMN_realtime_prepare (   ) 
 

Prepare for MAP-CMN at start of each input

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

参照元 RealTimePipeLinePrepare().

void CMN_realtime (  float *  mfcc,
int  dim
) 
 

Perform MAP-CMN for incoming MFCC vectors

引数:
mfcc [in] MFCC vector
dim [in] dimension

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

参照元 RealTimeParam(), と RealTimePipeLine().

void CMN_realtime_update (   ) 
 

Update initial cepstral mean from previous utterances for next input.

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

参照元 RealTimeCMNUpdate().

static boolean myread (  void *  buf,
size_t  unitbyte,
int  unitnum,
FILE *  fp
)  [static]
 

Read binary with byte swap (assume file is Big Endian)

引数:
buf [out] data buffer
unitbyte [in] size of unit in bytes
unitnum [in] number of units to be read
fp [in] file pointer
戻り値:
TRUE if required number of units are fully read, FALSE if failed.

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

static boolean mywrite (  void *  buf,
size_t  unitbyte,
int  unitnum,
int  fd
)  [static]
 

Write binary with byte swap (assume data is Big Endian)

引数:
buf [in] data buffer
unitbyte [in] size of unit in bytes
unitnum [in] number of units to write
fd [in] file descriptor
戻り値:
TRUE if required number of units are fully written, FALSE if failed.

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

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
戻り値:
TRUE on success, FALSE on failure.

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

参照元 RealTimeInit().

boolean CMN_save_to_file (  char *  filename  ) 
 

Save the current CMN vector to a file.

引数:
filename [in] filename to save the data.
戻り値:
TRUE on success, FALSE on failure.

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

参照元 RealTimeCMNUpdate().


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