14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------*
24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  pre_desc.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
224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef _h_pre_desc_
234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define _h_pre_desc_
244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifdef SET_RCSID
264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectstatic const char pre_desc_h[] = "$Id: pre_desc.h,v 1.3.6.10 2008/03/07 19:41:39 dahan Exp $";
274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif
284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "all_defs.h"
314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "hmm_type.h"
324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "specnorm.h"
334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef _RTT
344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "duk_io.h"
354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif
364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define DO_SUBTRACTED_SEGMENTATION  0
384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef NONE
404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define NONE   0
414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif
424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define SCALE   1 /* Scaling the channels */
434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define LIN_TRAN  2 /* Linear Transformation */
444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define VFR   4 /* Variable frame rate */
454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define USE_MULTAB      8 /* Set up multable distance calculations */
464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @todo document
494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct
514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{  /* mul-table data types */
524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  unsigned short sigma;
534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int   num;
544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  short *pdf;
554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectmul_table;
574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @todo document
604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct
624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  unsigned short num_dev8_index;
644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  unsigned char  *dev8_index;
654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  unsigned short *wt_index;
664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  short    *gauss_dist_table;
674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  short    **dist_ptr;
684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata    multable_factor; /* euclidean to multable */
694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata    multable_factor_gaussian; /* euclidean to multable */
704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata    grand_mod_cov; /* grand covariance modulus */
714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata    grand_mod_cov_gaussian; /* grand covariance modulus */
724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectmul_table_info;
744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @todo document
774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct
794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  const prdata *table;
814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata add_log_limit;
824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata scale;   /* X - scale to log function */
834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata inv_scale;
844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  float logscale;  /* Y - scale to log function */
854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectlogadd_table_info;
874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @todo document
904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct
924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  unsigned long num;
944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  accdata **between;
954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  accdata *bmean;
964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  accdata **within;
974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  accdata *wmean;
984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttransform_info;
1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @todo document
1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct
1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{   /* Segmentation parameters */
1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  rel_low;
1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  rel_high;
1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  gap_period;
1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  click_period;
1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  breath_period;
1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  extend_annotation;
1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  param;
1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int         min_initial_quiet_frames;    /* num silence frames needed before input */
1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int         min_annotation_frames;          /* minimum overall length */
1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int         max_annotation_frames;          /* maximum overall length */
1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int         delete_leading_segments;        /* num segments to delete. 0=no action */
1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int         leading_segment_accept_if_not_found; /* Do not reject segmentation if not found */
1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int         leading_segment_min_frames;   /* remove unless shorter */
1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int         leading_segment_max_frames;   /* remove unless exceeded */
1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int         leading_segment_min_silence_gap_frames;/* remove if good silence gap to next segment */
1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  beep_size;  /*X201 beep filter */
1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  beep_threshold;  /*X201 beep filter */
1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  min_segment_rel_c0; /* Any segment gets deleted whose peak c0 is < max - min_segment_rel_c0 */
1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if DO_SUBTRACTED_SEGMENTATION
1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int         snr_holdoff;    /* Ignore first n frames when estimating speech level for SNR measure */
1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int         min_acceptable_snr; /* for an acceptable segmentation */
1284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif
1294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
1304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectendpoint_info;
1314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @todo document
1354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct
1374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{  /* processed speech data/front end output */
1384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  ref_count; /* reference counts */
1394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /* Pattern vector section */
1404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  dim;  /* dimension of frame vector */
1414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  use_dim; /* dimension used for recognition */
1424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  whole_dim; /* reduced feature use. Set unused to 127 (0) on model construction */
1434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  use_from; /* first channel used for recognition */
1444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  featdata *last_frame; /* last frame processed in frame buffer */
1454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata *seq;  /* current valid frame */
1464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata *seq_unnorm; /* current valid frame, for whole-word models */
1474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata seq_sq_sum; /* sum of the squared of frames */
1484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata seq_sq_sum_whole; /* sum of the squared of frames, for wholeword */
1494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata seq_unnorm_sq_sum_whole; /* sum of the squared of frames, for wholeword */
1504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  voicing_status; /* voicing code */
1514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  post_proc; /* post processing functions */
1524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata *offset; /* offset vector with transformation */
1534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata **matrix; /* linear transformation matrix */
1544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  imel_shift; /* Imelda scale factor (in shifts) */
1554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  covdata **imelda; /* linear transformation matrix, PMC or RN */
1564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata **invmat; /* inverse transformation matrix */
1574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  inv_shift; /* inverse Imelda scale factor (in shifts) */
1584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  covdata **inverse; /* inverse linear transformation matrix, PMC or RN */
1594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if PARTIAL_DISTANCE_APPROX /* Gaussian tail approximation? */
1604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  partial_distance_calc_dim;  /* number of params to calc distance over, before approximating if beyond threshold */
1614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  scodata partial_distance_threshold;
1624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata partial_distance_calc_threshold;
1634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata partial_distance_offset;
1644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata global_distance_over_n_params;
1654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  global_model_means[MAX_DIMEN];
1664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata partial_mean_sq_sum;
1674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata partial_seq_sq_sum;
1684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata partial_seq_unnorm_sq_sum;
1694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif
1704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata *chan_offset;
1714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /* Channel Normalization etc */
1724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /* Tables */
1744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata exp_wt[MAX_WTS]; /* weights exp lookup table */
1754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  mul_table_info mul;  /* Mul-table */
1764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  logadd_table_info add; /* logadd-table */
1774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /* ENC */
1784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  booldata is_setup_for_noise;
1794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  booldata do_whole_enc; /* to enable ENC */
1804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  booldata do_sub_enc; /* to enable ENC */
1814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  booldata enc_count;
1824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  booldata ambient_valid; /* ambient estimates valid */
1834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata **pmc_fixmat; /* ENC matrix */
1844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata **pmc_fixinv; /* inverse ENC matrix */
1854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  covdata **pmc_matrix; /* ENC matrix in float */
1864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  covdata **pmc_inverse; /* inverse ENC matrix in float */
1874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  pmc_matshift; /* scaling */
1884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  pmc_invshift; /* scaling */
1894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata    *ambient_mean; /* ambient mean vector */
1904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata    *ambient_prof; /* ambient estimates, pseudo space */
1914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata    *ambient_prof_unnorm; /* ambient estimates, unnormalised */
1924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  logadd_table_info fbadd; /* logadd-table for ENC */
1934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#if DO_SUBTRACTED_SEGMENTATION
1944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  mel_dim;
1954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  covdata **spec_inverse;
1964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  imeldata **spec_fixinv;
1974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  spec_invshift;
1984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  int  *cep_offset;
1994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif
2004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /* Parameters */
2014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata mix_score_scale; /* Mixture score scaling constant */
2024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata uni_score_scale; /* Unimodal score scaling constant */
2034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata uni_score_offset; /* Unimodal score offset constant */
2044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  prdata imelda_scale;  /* Imelda grand variance */
2054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /* Endpoint data */
2064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  endpoint_info end;
2074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
2084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
2094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectpreprocessed;
2104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
2114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
2124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @todo document
2134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
2144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct
2154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
2164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  preprocessed    *prep; /* The preprocessed data structure */
2174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /* The following stuff cannot be cloned */
2184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  booldata do_imelda; /* Alignment based accumulation */
2194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  transform_info  imelda_acc;
2204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
2214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectpattern_info;
2224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
2234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* _h_pre_desc_ */
224