54 #pragma warning (disable: 4244) 66 E_INFO(
"cmn_prior_set: from < ");
67 for (i = 0; i < cmn->
veclen; i++)
71 for (i = 0; i < cmn->
veclen; i++) {
73 cmn->
sum[i] = vec[i] * CMN_WIN;
77 E_INFO(
"cmn_prior_set: to < ");
78 for (i = 0; i < cmn->
veclen; i++)
88 for (i = 0; i < cmn->
veclen; i++)
99 E_INFO(
"cmn_prior_update: from < ");
100 for (i = 0; i < cmn->
veclen; i++)
104 sf = FLOAT2MFCC(1.0) / cmn->
nframe;
105 for (i = 0; i < cmn->
veclen; i++)
109 if (cmn->
nframe >= CMN_WIN_HWM) {
111 for (i = 0; i < cmn->
veclen; i++)
112 cmn->
sum[i] = MFCCMUL(cmn->
sum[i], sf);
116 E_INFO(
"cmn_prior_update: to < ");
117 for (i = 0; i < cmn->
veclen; i++)
131 E_INFO(
"cmn_prior_update: from < ");
132 for (i = 0; i < cmn->
veclen; i++)
137 sf = FLOAT2MFCC(1.0) / cmn->
nframe;
138 for (i = 0; i < cmn->
veclen; i++)
142 if (cmn->
nframe > CMN_WIN_HWM) {
144 for (i = 0; i < cmn->
veclen; i++)
145 cmn->
sum[i] = MFCCMUL(cmn->
sum[i], sf);
149 E_INFO(
"cmn_prior_update: to < ");
150 for (i = 0; i < cmn->
veclen; i++)
165 (
"Variance normalization not implemented in live mode decode\n");
167 for (i = 0; i < nfr; i++) {
173 for (j = 0; j < cmn->
veclen; j++) {
174 cmn->
sum[j] += incep[i][j];
182 if (cmn->
nframe > CMN_WIN_HWM)
183 cmn_prior_shiftwin(cmn);
#define E_INFO(...)
Print logging information to standard error stream.
Sphinx's memory allocation/deallocation routines.
Apply Cepstral Mean Normalization (CMN) to the set of input mfc frames.
SPHINXBASE_EXPORT void cmn_prior_set(cmn_t *cmn, mfcc_t const *vec)
Set the prior mean.
#define E_INFOCONT(...)
Continue printing the information to standard error stream.
SPHINXBASE_EXPORT void cmn_prior_get(cmn_t *cmn, mfcc_t *vec)
Get the prior mean.
SPHINXBASE_EXPORT void cmn(cmn_t *cmn, mfcc_t **mfc, int32 varnorm, int32 n_frame)
CMN for the whole sentence.
Implementation of logging routines.
wrapper of operation of the cepstral mean normalization.
SPHINXBASE_EXPORT void cmn_prior_update(cmn_t *cmn)
Update prior mean based on observed data.
#define E_FATAL(...)
Exit with non-zero status after error message.
SPHINXBASE_EXPORT void cmn_prior(cmn_t *cmn, mfcc_t **incep, int32 varnorm, int32 nfr)
CMN for one block of data, using prior mean.
mfcc_t * cmn_mean
Temporary variable: current means.
mfcc_t * sum
The sum of the cmn frames.
int32 veclen
Length of cepstral vector.
int32 nframe
Number of frames.