00001 00017 /* 00018 * Copyright (c) 1991-2006 Kawahara Lab., Kyoto University 00019 * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology 00020 * Copyright (c) 2005-2006 Julius project team, Nagoya Institute of Technology, Nagoya Institute of Technology 00021 * All rights reserved 00022 */ 00023 00024 #include <sent/stddefs.h> 00025 #include <sent/htk_hmm.h> 00026 #include <sent/htk_param.h> 00027 #include <sent/hmm.h> 00028 #include <sent/gprune.h> 00029 #include "globalvars.h" 00030 00038 LOGPROB 00039 calc_mix() 00040 { 00041 int i; 00042 LOGPROB logprob = LOG_ZERO; 00043 00044 /* compute Gaussian set */ 00045 compute_gaussset(OP_state->b, OP_state->mix_num, NULL); 00046 /* computed Gaussians will be set in: 00047 score ... OP_calced_score[0..OP_calced_num] 00048 id ... OP_calced_id[0..OP_calced_num] */ 00049 00050 /* sum */ 00051 for(i=0;i<OP_calced_num;i++) { 00052 OP_calced_score[i] += OP_state->bweight[OP_calced_id[i]]; 00053 } 00054 logprob = addlog_array(OP_calced_score, OP_calced_num); 00055 if (logprob <= LOG_ZERO) return LOG_ZERO; 00056 return (logprob / LOG_TEN); 00057 }