segDecoder.h

Go to the documentation of this file.
00001 /**********************************************************************//***********************************************************************/
00010 #ifndef SEGSEG_SYNTAX_H_INCLUDED
00011 #define SEGSEG_SYNTAX_H_INCLUDED
00012 #include "segSyntax.h"
00013 #endif
00014 
00015 /*#define LABFILEDIR "/usr/local/timit8"*/
00016 
00017 /*------------------------------------------------------------*/
00018 /* These are used to store paths and durations for trace-back */ 
00019 /*------------------------------------------------------------*/
00020 #define VOID  -1  
00021 #ifdef DEBUG
00022 #define ALIVE  1  
00023 #define DEAD   0  
00024 #endif
00025 
00027 typedef struct segDpItem {
00028   long   dpPtr;       
00029   short  dpEntryTime; 
00030   char   dpStat;      
00031 #ifdef DEBUG
00032   char   dpStatus;    
00033   double dpScore;     
00034   double dpStartProb; 
00035 #endif
00036 } SEG_DP_ITEM;
00037 
00038 /*-------------------------------------*/
00039 /* These are used to deal with pruning */ 
00040 /*-------------------------------------*/
00041 /* For switching prunning methods */
00042 #define NO_PRUN     0  
00043 #define THRESH_PRUN 1  
00044 #define N_BEST_PRUN 2  
00047 typedef struct segPruningParameter {
00048   int            method;    
00049   double         threshold; 
00050   unsigned short nBestN;    
00051 } SEG_PRUN_PARAM;
00052 
00053 /*----------------------------------------------------------------*/
00054 /* The structure below contains a full set of decoding parameters */
00055 /*----------------------------------------------------------------*/
00057 typedef struct segDecoderParameter {
00058   double         durScale;        
00059   double         durThreshold;    
00060   double         logDurThreshold; 
00061   SEG_PRUN_PARAM startNodePrun;   
00062   SEG_PRUN_PARAM endNodePrun;     
00063   int            flagPCPart;      
00064 } SEG_DEC_PARAM;
00065 
00066 #if 0
00067 /*--------------------------------------------------------------------*/
00069 /*--------------------------------------------------------------------*/
00070 typedef struct segAnnData {
00071   short  start;  
00072   short  end;    
00073   char  *label;  
00074 } SEG_ANN_DATA;
00075 #endif
00076 
00077 /*-----------------------*/
00078 /* Prototype definitions */
00079 /*-----------------------*/
00080 double        segViterbiDecoder(SEG_DP_ITEM***, SEG_SYNTAX*, double**, int*, int, int, int, SEG_DEC_PARAM*);
00081 int          *segRecoverStateSeq(int*, SEG_DP_ITEM**, SEG_SYNTAX*, int); 
00082 /*int           segRecoverSegSeq(int**, int**, SEG_DP_ITEM**, SEG_SYNTAX*, int);*/
00083 SEG_ANN_DATA *segRecoverRecogSeq(SEG_DP_ITEM**, SEG_SYNTAX*, int, int); 
00084 SEG_STATE   **segRecoverStateIds(int*, SEG_SYNTAX*, int); 
00085 int           segGetDurationLimits(int*, int*, SEG_MODEL_SET*, SEG_SYNTAX*, int);
00086 int           segFreeDecoder(SEG_DP_ITEM**, int);
00087 void          segFreeStateSeq(int*);
00088 #if 0
00089 int           segWriteMLFData(SEG_ANN_DATA*, int, int, FILE*, char*); 
00090 double        segOutputProb(SEG_STATE*, double**, int, int, double**, int, int);
00091 void          segSetDecoderParams(double, int, double, int, int, double, int, int, double, int);
00092 void          segFreeDPHist(SEG_DP_ITEM**, int);
00093 int           segFreeDPMat(SEG_DP_ITEM**, int);
00094 #endif
00095 
00096 /*------------------------------------------------------------------*/
00097 /* Prototype definitions for functions compatible with SEGVit ver.3 */
00098 /*------------------------------------------------------------------*/
00099 #if 0
00100 void          segSetDecoderParams(SEG_DEC_PARAM);
00101 double        ViterbiDecoder(double**, int, int, SEG_SYNTAX, SEG_MODEL_SET, int, SEG_DP_ITEM***, double*, int*);
00102 void          FreeDPHist(SEG_DP_ITEM**, int);
00103 int           FreeDPMat(SEG_DP_ITEM**, int);
00104 int          *RecoverStateSeq(SEG_SYNTAX, SEG_DP_ITEM**, int, int*); 
00105 int           RecoverSegSeq(SEG_SYNTAX, SEG_DP_ITEM**, int, int**, int**);
00106 SEG_ANN_DATA *RecoverRecogSeq(SEG_SYNTAX, SEG_DP_ITEM**, int, int); 
00107 STATE_INFO  **RecoverStateIds(SEG_SYNTAX, int*, int); 
00108 int           WriteMLFData(SEG_ANN_DATA*, int, int, FILE*, char*); 
00109 int           GetDurationLimits(SEG_MODEL_SET, SEG_SYNTAX, int, int*, int*);
00110 #endif
00111 

Generated on Sun Aug 5 02:40:36 2007 for SEGRec Version 1.0 by  doxygen 1.5.1