14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------*
24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  all_defs.h  *
34a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
44a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  Copyright 2007, 2008 Nuance Communciations, Inc.                               *
54a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
64a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the 'License');          *
74a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  you may not use this file except in compliance with the License.         *
84a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
94a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  You may obtain a copy of the License at                                  *
104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0                           *
114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software      *
134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  distributed under the License is distributed on an 'AS IS' BASIS,        *
144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  See the License for the specific language governing permissions and      *
164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  limitations under the License.                                           *
174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *---------------------------------------------------------------------------*/
194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef _h_all_defs_
224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define _h_all_defs_
234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ptypes.h"
254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "setting.h"
264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define USE_CONFIDENCE_SCORER 1
284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* constants */
304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* Model constants */
314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_LABEL       40      /* Maximum permitted label length */
324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_STRING      1024    /* Maximum permitted string length */
334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_FILE_NAME 256     /* Maximum permitted filename length */
344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define ALLOC_BLOCK     100
354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_STREAM      32      /* max no. of streams in prog, not file */
364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_DIMEN 64
374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_PELS        128
384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* Likelihood calculations */
404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define ADD_LOG_LIMIT    8
414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define SCORE_ADJUST     4
424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define SIGMA_BIAS       4
434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MUL_SCALE        6.4F
444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define WT_SCALE         6.4F /* log weights */
454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define WT_ADJUST  2 /* in bits, for exp table lookup */
464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define WEIGHT_SHIFT  10
474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define WEIGHT_SCALE  (0x01 << WEIGHT_SHIFT) /* absolute weights */
484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_WTS   400 /* Needs to be tuned, dependent on some scales */
494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define IMELDA_SCALE     14 /* Applicable only for grand variance */
504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define EIGEN            1      /* for full covariance probability calc. */
514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define EUCLID_SHIFT     14 /* Scaling for FIXED_POINT in shifts */
524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* MLLR and Baum-Welch */
544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*dahan20070525
554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MEAN_SCALE 20 // MLLR coefficients
564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MEAN_OFFSET 128 // MLLR coefficients
574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_MLLR_TRANSFORMS 50
584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define EPSILON         0.001F
594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_OCCUPANCY   1000
604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define ITEM_WEIGHT     1       // item weighting for covariance calc.
614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project// otherwise gamma weighted
624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define GAMMA_SIGNI     0.0001  // minimum occupancy accumulates
634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project*/
644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* state duration constants */
664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define DUR_BIAS        0       /* duration penalty bias, changed elsewhere */
674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define NEWTON_FACTOR   10.0F   /* for converting duration to penalties */
684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define DEFAULT_UNIT_PER_FRAME 1
694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define FRAME_RATE_IN_MS 10
704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define UTB_MEAN        127.5F  /* mean of parameters in utb file */
714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* utterence constants */
734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define NORM_IN_IMELDA     0 /* Do channel normalization in IMELDA space */
744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_CEP_DIM     12
754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_CHAN_DIM     36
764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_FILTER_NUM     32 /* spectrum filter read as frontend pars  (centre freq, spread)*/
774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define NEW_UTB      1 /* support for latest (version 5) UTB files */
784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* with this set to zero supports version 3 files */
794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* phonemes and contexts */
824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_PHONEMES     128
834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_PHONE_STATES 6
844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define True  ESR_TRUE /*  Boolean constants */
864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define False  ESR_FALSE
874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define LITTLE          0       /* endian types */
894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define BIG             1
904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*  Configuration options
914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    useful arithmetic functions and constants */
924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef MAX
934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX(X,Y)        ((X) > (Y) ? (X) : (Y))
944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif
954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef MIN
964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MIN(X,Y)        ((X) < (Y) ? (X) : (Y))
974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif
984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef RANGE
994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define RANGE(X,Y,Z)        ((X) < (Y) ? (Y) : (X) > (Z) ? (Z) : (X))
1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif
1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define SQR(X)          ((X) * (X))
1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAKEBYTE(X)     ((X) > 255 ? 255: ((X) < 0 ? 0 : (X)))
1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define ROUNDOFF(X) ((int)((X) >= 0 ? ((X) + 0.5) : ((X) - 0.5)))
1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef M_PI
1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define M_PI            3.14159265358979323846
1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* M_PI */
1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define MAX_LOG  1000000                 /* Check this value against types */
1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define FIXED_MAX 32767
1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_SHORT         1L            /* Frame data types */
1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_LONG          2L
1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_FLOAT         3L
1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_PTR           4L
1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_CHAR          5L
1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_UCHAR         6L
1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_USHORT        7L
1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_INT           8L
1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_UINT          9L
1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_ULONG        10L
1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define D_DOUBLE       11L
1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define USE_SYSTEM_MEMMOVE  1  /* memmove redefinitions, do not change */
1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif
128