www.pudn.com > ETSI_ES_202_212_software.rar > 16kHzProcExports.h


/*===============================================================================
 *      ETSI ES 202 212   Distributed Speech Recognition
 *      Extended Advanced Front-End Feature Extraction Algorithm & Compression Algorithm
 *      Speech Reconstruction Algorithm.
 *      C-language software implementation                                      
 *      Version 1.1.1   October, 2003                                            
 *===============================================================================*/
/*-------------------------------------------------------------------------------
 *
 * FILE NAME: 16kHzProcExports.h
 * PURPOSE:   For processing of 16 kHz sampled input signal.
 *
 *-------------------------------------------------------------------------------*/
#ifndef _16kHzPROCESSING_H
#define _16kHzPROCESSING_H

/*-------------
 * definitions
 *-------------*/
#define HP16k_MEL_ORDER       5    //
#define HP16k_MEL_USED        3    // must be (HP16k_MEL_ORDER - 2) because both first and last halfbands are not used!
#define USE_INTERP_BAND       0    // use an interpolation band between bands 23 and 24 -> 1=yes, 0=no
#define DO_INTERP             1    // preform interpolation on bands 23 and 24 -> 1=yes, 0=no
#define NB_LP_BANDS_CODING    3    //
#define ENERGY_CORR           1    // correct log energy by using the HP energy
#define PERC_CODED            0.7  //

#define NE16k_FRAMES_THRESH 100    //
#define LAMBDA_NSE16k         0.99 // 

/*------------
 * structures
 *------------*/
typedef struct QMF_FIR QMF_FIR;

/*------------------
 * public functions
 *------------------*/
extern QMF_FIR *        QMF_FIR_Init           ();
extern void             hq_free                (QMF_FIR *fir_ptr);

extern void             Do16kProcDelete        (DataFor16kProc * pData16k);
extern void             Do16kProcInit          (FEParamsX * This);
extern DataFor16kProc * Do16kProcAlloc         ();
extern void             Do16kProcessing        (float *inData,
												DataFor16kProc *pData16k,
												int inDataLength);
extern void             GetBandsForCoding16k   (float *inData,
												float *bandsForCoding16k,
												int inDataSize);
extern void             CodeBands16k           (float *fb16k,
												float *lpBands,
												float *codeForBands16k);
extern void             GetBandsForDecoding16k (float *inData,
												float *bandsForCoding16k,
												int inDataSize);
extern void             DecodeBands16k         (float *fb16k,
												float *lpBands,
												float *codeForBands16k,
												float *codeWeights);
extern void             DoSpecSub16k           (float *inFB16k,
												DataFor16kProc *pData16k,
												long vadCounter16k,
												int inFB16kSize);
extern void             MergeSSandCoded        (float *FloatBuffer,
												float *hp16kBands,
												int numChannelsWI7,
												X_INT16 *hp16kBandsSize_in, 
												DataFor16kProc *pData16k);
extern float            CorrectEnergy          (float LogEnergy,
												int hp16kBandsSize,
												float *FloatBuffer,
												int numChannelsWI7,
												float preem);

/*----------------------
 * public get functions
 *----------------------*/
extern int           Get16k_bufData16kSize          (DataFor16kProc * pData16k);
extern int           Get16k_hpBandsSize             (DataFor16kProc * pData16k);
extern float         Get16k_percCoded               (DataFor16kProc * pData16k);
extern float         Get16k_dataHP                  (DataFor16kProc * pData16k,
													 int i);
extern float        *Get16k_p_hpBands               (DataFor16kProc * pData16k);
extern float        *Get16k_p_bufferCodeForBands16k (DataFor16kProc * pData16k);
extern float        *Get16k_p_CodeForBands16k       (DataFor16kProc * pData16k);
extern float        *Get16k_p_bufferCodeWeights     (DataFor16kProc * pData16k);
extern float        *Get16k_p_codeWeights           (DataFor16kProc * pData16k);
extern float        *Get16k_p_bufferData16k         (DataFor16kProc * pData16k);
extern float        *Get16k_p_BandsForCoding16k     (DataFor16kProc * pData16k);
extern MelFB_Window *Get16k_p_FirstWindow16k        (DataFor16kProc * pData16k);

#endif