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