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 sf = FLOAT2MFCC(1.0) / cmn->
nframe;
100 for (i = 0; i < cmn->
veclen; i++)
104 if (cmn->
nframe >= CMN_WIN_HWM) {
106 for (i = 0; i < cmn->
veclen; i++)
107 cmn->
sum[i] = MFCCMUL(cmn->
sum[i], sf);
121 E_INFO(
"cmn_prior_update: from < ");
122 for (i = 0; i < cmn->
veclen; i++)
127 sf = FLOAT2MFCC(1.0) / cmn->
nframe;
128 for (i = 0; i < cmn->
veclen; i++)
132 if (cmn->
nframe > CMN_WIN_HWM) {
134 for (i = 0; i < cmn->
veclen; i++)
135 cmn->
sum[i] = MFCCMUL(cmn->
sum[i], sf);
139 E_INFO(
"cmn_prior_update: to < ");
140 for (i = 0; i < cmn->
veclen; i++)
152 (
"Variance normalization not implemented in live mode decode\n");
157 for (i = 0; i < nfr; i++) {
158 for (j = 0; j < cmn->
veclen; j++) {
159 cmn->
sum[j] += incep[i][j];
166 if (cmn->
nframe > CMN_WIN_HWM)
167 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.
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.
#define E_INFOCONT
Print logging information without header, to standard error stream.
Implementation of logging routines.
wrapper of operation of the cepstral mean normalization.
#define E_FATAL
Exit with non-zero status after error message.
SPHINXBASE_EXPORT void cmn_prior_update(cmn_t *cmn)
Update prior mean based on observed data.
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.