/*---------------------------------------------------------------------------* * all_defs.h * * * * Copyright 2007, 2008 Nuance Communciations, Inc. * * * * Licensed under the Apache License, Version 2.0 (the 'License'); * * you may not use this file except in compliance with the License. * * * * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an 'AS IS' BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. * * * *---------------------------------------------------------------------------*/ #ifndef _h_all_defs_ #define _h_all_defs_ #include "ptypes.h" #include "setting.h" #define USE_CONFIDENCE_SCORER 1 /* constants */ /* Model constants */ #define MAX_LABEL 40 /* Maximum permitted label length */ #define MAX_STRING 1024 /* Maximum permitted string length */ #define MAX_FILE_NAME 256 /* Maximum permitted filename length */ #define ALLOC_BLOCK 100 #define MAX_STREAM 32 /* max no. of streams in prog, not file */ #define MAX_DIMEN 64 #define MAX_PELS 128 /* Likelihood calculations */ #define ADD_LOG_LIMIT 8 #define SCORE_ADJUST 4 #define SIGMA_BIAS 4 #define MUL_SCALE 6.4F #define WT_SCALE 6.4F /* log weights */ #define WT_ADJUST 2 /* in bits, for exp table lookup */ #define WEIGHT_SHIFT 10 #define WEIGHT_SCALE (0x01 << WEIGHT_SHIFT) /* absolute weights */ #define MAX_WTS 400 /* Needs to be tuned, dependent on some scales */ #define IMELDA_SCALE 14 /* Applicable only for grand variance */ #define EIGEN 1 /* for full covariance probability calc. */ #define EUCLID_SHIFT 14 /* Scaling for FIXED_POINT in shifts */ /* MLLR and Baum-Welch */ /*dahan20070525 #define MEAN_SCALE 20 // MLLR coefficients #define MEAN_OFFSET 128 // MLLR coefficients #define MAX_MLLR_TRANSFORMS 50 #define EPSILON 0.001F #define MAX_OCCUPANCY 1000 #define ITEM_WEIGHT 1 // item weighting for covariance calc. // otherwise gamma weighted #define GAMMA_SIGNI 0.0001 // minimum occupancy accumulates */ /* state duration constants */ #define DUR_BIAS 0 /* duration penalty bias, changed elsewhere */ #define NEWTON_FACTOR 10.0F /* for converting duration to penalties */ #define DEFAULT_UNIT_PER_FRAME 1 #define FRAME_RATE_IN_MS 10 #define UTB_MEAN 127.5F /* mean of parameters in utb file */ /* utterence constants */ #define NORM_IN_IMELDA 0 /* Do channel normalization in IMELDA space */ #define MAX_CEP_DIM 12 #define MAX_CHAN_DIM 36 #define MAX_FILTER_NUM 32 /* spectrum filter read as frontend pars (centre freq, spread)*/ #define NEW_UTB 1 /* support for latest (version 5) UTB files */ /* with this set to zero supports version 3 files */ /* phonemes and contexts */ #define MAX_PHONEMES 128 #define MAX_PHONE_STATES 6 #define True ESR_TRUE /* Boolean constants */ #define False ESR_FALSE #define LITTLE 0 /* endian types */ #define BIG 1 /* Configuration options useful arithmetic functions and constants */ #ifndef MAX #define MAX(X,Y) ((X) > (Y) ? (X) : (Y)) #endif #ifndef MIN #define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) #endif #ifndef RANGE #define RANGE(X,Y,Z) ((X) < (Y) ? (Y) : (X) > (Z) ? (Z) : (X)) #endif #define SQR(X) ((X) * (X)) #define MAKEBYTE(X) ((X) > 255 ? 255: ((X) < 0 ? 0 : (X))) #define ROUNDOFF(X) ((int)((X) >= 0 ? ((X) + 0.5) : ((X) - 0.5))) #ifndef M_PI #define M_PI 3.14159265358979323846 #endif /* M_PI */ #define MAX_LOG 1000000 /* Check this value against types */ #define FIXED_MAX 32767 #define D_SHORT 1L /* Frame data types */ #define D_LONG 2L #define D_FLOAT 3L #define D_PTR 4L #define D_CHAR 5L #define D_UCHAR 6L #define D_USHORT 7L #define D_INT 8L #define D_UINT 9L #define D_ULONG 10L #define D_DOUBLE 11L #define USE_SYSTEM_MEMMOVE 1 /* memmove redefinitions, do not change */ #endif