1 /*---------------------------------------------------------------------------* 2 * all_defs.h * 3 * * 4 * Copyright 2007, 2008 Nuance Communciations, Inc. * 5 * * 6 * Licensed under the Apache License, Version 2.0 (the 'License'); * 7 * you may not use this file except in compliance with the License. * 8 * * 9 * You may obtain a copy of the License at * 10 * http://www.apache.org/licenses/LICENSE-2.0 * 11 * * 12 * Unless required by applicable law or agreed to in writing, software * 13 * distributed under the License is distributed on an 'AS IS' BASIS, * 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 15 * See the License for the specific language governing permissions and * 16 * limitations under the License. * 17 * * 18 *---------------------------------------------------------------------------*/ 19 20 21 #ifndef _h_all_defs_ 22 #define _h_all_defs_ 23 24 #include "ptypes.h" 25 #include "setting.h" 26 27 #define USE_CONFIDENCE_SCORER 1 28 29 /* constants */ 30 /* Model constants */ 31 #define MAX_LABEL 40 /* Maximum permitted label length */ 32 #define MAX_STRING 1024 /* Maximum permitted string length */ 33 #define MAX_FILE_NAME 256 /* Maximum permitted filename length */ 34 #define ALLOC_BLOCK 100 35 #define MAX_STREAM 32 /* max no. of streams in prog, not file */ 36 #define MAX_DIMEN 64 37 #define MAX_PELS 128 38 39 /* Likelihood calculations */ 40 #define ADD_LOG_LIMIT 8 41 #define SCORE_ADJUST 4 42 #define SIGMA_BIAS 4 43 #define MUL_SCALE 6.4F 44 #define WT_SCALE 6.4F /* log weights */ 45 #define WT_ADJUST 2 /* in bits, for exp table lookup */ 46 #define WEIGHT_SHIFT 10 47 #define WEIGHT_SCALE (0x01 << WEIGHT_SHIFT) /* absolute weights */ 48 #define MAX_WTS 400 /* Needs to be tuned, dependent on some scales */ 49 #define IMELDA_SCALE 14 /* Applicable only for grand variance */ 50 #define EIGEN 1 /* for full covariance probability calc. */ 51 #define EUCLID_SHIFT 14 /* Scaling for FIXED_POINT in shifts */ 52 53 /* MLLR and Baum-Welch */ 54 /*dahan20070525 55 #define MEAN_SCALE 20 // MLLR coefficients 56 #define MEAN_OFFSET 128 // MLLR coefficients 57 #define MAX_MLLR_TRANSFORMS 50 58 #define EPSILON 0.001F 59 #define MAX_OCCUPANCY 1000 60 #define ITEM_WEIGHT 1 // item weighting for covariance calc. 61 // otherwise gamma weighted 62 #define GAMMA_SIGNI 0.0001 // minimum occupancy accumulates 63 */ 64 65 /* state duration constants */ 66 #define DUR_BIAS 0 /* duration penalty bias, changed elsewhere */ 67 #define NEWTON_FACTOR 10.0F /* for converting duration to penalties */ 68 #define DEFAULT_UNIT_PER_FRAME 1 69 #define FRAME_RATE_IN_MS 10 70 #define UTB_MEAN 127.5F /* mean of parameters in utb file */ 71 72 /* utterence constants */ 73 #define NORM_IN_IMELDA 0 /* Do channel normalization in IMELDA space */ 74 #define MAX_CEP_DIM 12 75 #define MAX_CHAN_DIM 36 76 #define MAX_FILTER_NUM 32 /* spectrum filter read as frontend pars (centre freq, spread)*/ 77 #define NEW_UTB 1 /* support for latest (version 5) UTB files */ 78 /* with this set to zero supports version 3 files */ 79 80 81 /* phonemes and contexts */ 82 #define MAX_PHONEMES 128 83 #define MAX_PHONE_STATES 6 84 85 #define True ESR_TRUE /* Boolean constants */ 86 #define False ESR_FALSE 87 88 #define LITTLE 0 /* endian types */ 89 #define BIG 1 90 /* Configuration options 91 useful arithmetic functions and constants */ 92 #ifndef MAX 93 #define MAX(X,Y) ((X) > (Y) ? (X) : (Y)) 94 #endif 95 #ifndef MIN 96 #define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) 97 #endif 98 #ifndef RANGE 99 #define RANGE(X,Y,Z) ((X) < (Y) ? (Y) : (X) > (Z) ? (Z) : (X)) 100 #endif 101 #define SQR(X) ((X) * (X)) 102 #define MAKEBYTE(X) ((X) > 255 ? 255: ((X) < 0 ? 0 : (X))) 103 #define ROUNDOFF(X) ((int)((X) >= 0 ? ((X) + 0.5) : ((X) - 0.5))) 104 105 #ifndef M_PI 106 #define M_PI 3.14159265358979323846 107 #endif /* M_PI */ 108 109 #define MAX_LOG 1000000 /* Check this value against types */ 110 #define FIXED_MAX 32767 111 112 113 #define D_SHORT 1L /* Frame data types */ 114 #define D_LONG 2L 115 #define D_FLOAT 3L 116 #define D_PTR 4L 117 #define D_CHAR 5L 118 #define D_UCHAR 6L 119 #define D_USHORT 7L 120 #define D_INT 8L 121 #define D_UINT 9L 122 #define D_ULONG 10L 123 #define D_DOUBLE 11L 124 125 #define USE_SYSTEM_MEMMOVE 1 /* memmove redefinitions, do not change */ 126 127 #endif 128