本文整理汇总了C++中ckd_calloc_2d函数的典型用法代码示例。如果您正苦于以下问题:C++ ckd_calloc_2d函数的具体用法?C++ ckd_calloc_2d怎么用?C++ ckd_calloc_2d使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ckd_calloc_2d函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: vector_gautbl_alloc
void vector_gautbl_alloc (vector_gautbl_t *gautbl, int32 n_gau, int32 veclen)
{
gautbl->n_gau = n_gau;
gautbl->veclen = veclen;
gautbl->mean = (float32 **) ckd_calloc_2d (n_gau, veclen, sizeof(float32));
gautbl->var = (float32 **) ckd_calloc_2d (n_gau, veclen, sizeof(float32));
gautbl->lrd = (float32 *) ckd_calloc (n_gau, sizeof(float32));
gautbl->distfloor = logs3_to_log (S3_LOGPROB_ZERO);
}
开发者ID:10v,项目名称:cmusphinx,代码行数:9,代码来源:vector.c
示例2: read_reg_mat
int32
read_reg_mat (
const char *regmatfn,
uint32 **veclen,
uint32 *n_class,
uint32 *n_stream,
float32 *****A,
float32 ****B
)
{
uint32 i,j,k,m,nstream,nclass;
FILE *fp;
uint32 *vlen;
float32 ****lA,***lB;
if ((fp = fopen(regmatfn,"r")) == NULL) {
E_INFO("Unable to open %s to read MLLR matrices\n",regmatfn);
return S3_ERROR;
}
fscanf(fp,"%d",&nclass);
fscanf(fp,"%d",&nstream);
vlen = (uint32 *)ckd_calloc(nstream,sizeof(uint32));
lA = (float32 ****)ckd_calloc_2d (nclass,nstream,sizeof (float32 **));
lB = (float32 ***)ckd_calloc_2d (nclass,nstream,sizeof (float32 *));
for (m = 0; m < nclass; ++m) {
for (i = 0; i < nstream; ++i) {
fscanf(fp,"%d", &vlen[i]);
lA[m][i] = (float32 **) ckd_calloc_2d(vlen[i],vlen[i],sizeof(float32));
lB[m][i] = (float32 *) ckd_calloc(vlen[i],sizeof(float32));
for (j = 0; j < vlen[i]; j++) {
for (k = 0; k < vlen[i]; ++k) {
fscanf(fp,"%f ",&lA[m][i][j][k]);
}
}
for (j = 0; j < vlen[i]; j++) {
fscanf(fp,"%f ",&lB[m][i][j]);
}
/* Identity transform for variances. */
for (j = 0; j < vlen[i]; j++) {
float32 dummy;
fscanf(fp,"%f ",&dummy);
}
}
}
*n_class = nclass;
*n_stream = nstream;
*veclen = vlen;
*A = lA;
*B = lB;
fclose(fp);
return S3_SUCCESS;
}
开发者ID:Ankit77,项目名称:cmusphinx,代码行数:55,代码来源:mllr_io.c
示例3: s3_endpointer_feed_frames
void
s3_endpointer_feed_frames(s3_endpointer_t *_ep,
float32 **_frames,
int _n_frames,
int _eof)
{
float32 **fbuf;
int *cbuf;
int i, sz, leftover;
assert(_ep != NULL);
if (_ep->n_frames > _ep->offset) {
leftover = _ep->n_frames - _ep->offset;
sz = _n_frames + leftover;
fbuf = (float32 **)ckd_calloc_2d(sz, CEP_LEN, sizeof(float32));
cbuf = (int *)ckd_calloc(sizeof(int), sz);
for (i = 0; i < leftover; i++)
memcpy(fbuf[i], _ep->frames[_ep->offset + i], FRAME_LEN);
memcpy(cbuf, &_ep->classes[_ep->offset], leftover * sizeof(int));
for (i = leftover; i < sz; i++)
memcpy(fbuf[i], _frames[i - leftover], FRAME_LEN);
get_frame_classes(_ep, _frames, _n_frames, &cbuf[leftover]);
ckd_free_2d((void **)_ep->frames);
ckd_free(_ep->classes);
_ep->frames = fbuf;
_ep->classes = cbuf;
_ep->n_frames = sz;
_ep->offset = 0;
}
else {
fbuf = (float32 **)ckd_calloc_2d(_n_frames, CEP_LEN, sizeof(float32));
cbuf = (int *)ckd_calloc(sizeof(int), _n_frames);
for (i = 0; i < _n_frames; i++)
memcpy(fbuf[i], _frames[i], FRAME_LEN);
get_frame_classes(_ep, _frames, _n_frames, cbuf);
ckd_free_2d((void **)_ep->frames);
ckd_free(_ep->classes);
_ep->frames = fbuf;
_ep->classes = cbuf;
_ep->n_frames = _n_frames;
_ep->offset = 0;
}
if (_ep->state == STATE_BEGIN_STREAM && update_available(_ep))
init_frame_stats(_ep);
_ep->eof = _eof;
}
开发者ID:Ankit77,项目名称:cmusphinx,代码行数:51,代码来源:s3_endpointer.c
示例4: solve
int32
solve(float32 **a, /*Input : an n*n matrix A */
float32 *b, /*Input : a n dimesion vector b */
float32 *out_x, /*Output : a n dimesion vector x */
int32 n)
{
char uplo;
float32 **tmp_a;
int32 info, nrhs;
/* a is assumed to be symmetric, so we don't need to switch the
* ordering of the data. But we do need to copy it since it is
* overwritten by LAPACK. */
tmp_a = (float32 **)ckd_calloc_2d(n, n, sizeof(float32));
memcpy(tmp_a[0], a[0], n*n*sizeof(float32));
memcpy(out_x, b, n*sizeof(float32));
uplo = 'L';
nrhs = 1;
sposv_(&uplo, &n, &nrhs, tmp_a[0], &n, out_x, &n, &info);
ckd_free_2d((void **)tmp_a);
if (info != 0)
return -1;
else
return info;
}
开发者ID:Amponti,项目名称:SpeechRecognition_DE1-SOC,代码行数:26,代码来源:matrix.c
示例5: invert
/* Find inverse by solving AX=I. */
int32
invert(float32 ** ainv, float32 ** a, int32 n)
{
char uplo;
float32 **tmp_a;
int32 info, nrhs, i;
/* a is assumed to be symmetric, so we don't need to switch the
* ordering of the data. But we do need to copy it since it is
* overwritten by LAPACK. */
tmp_a = (float32 **)ckd_calloc_2d(n, n, sizeof(float32));
memcpy(tmp_a[0], a[0], n*n*sizeof(float32));
/* Construct an identity matrix. */
memset(ainv[0], 0, sizeof(float32) * n * n);
for (i = 0; i < n; i++)
ainv[i][i] = 1.0;
uplo = 'L';
nrhs = n;
sposv_(&uplo, &n, &nrhs, tmp_a[0], &n, ainv[0], &n, &info);
ckd_free_2d((void **)tmp_a);
if (info != 0)
return -1;
else
return info;
}
开发者ID:Amponti,项目名称:SpeechRecognition_DE1-SOC,代码行数:30,代码来源:matrix.c
示例6: acmod_process_full_raw
static int
acmod_process_full_raw(acmod_t *acmod,
int16 const **inout_raw,
size_t *inout_n_samps)
{
int32 nfr, ntail;
mfcc_t **cepptr;
/* Write to logging file if any. */
if (acmod->rawfh)
fwrite(*inout_raw, 2, *inout_n_samps, acmod->rawfh);
/* Resize mfc_buf to fit. */
if (fe_process_frames(acmod->fe, NULL, inout_n_samps, NULL, &nfr) < 0)
return -1;
if (acmod->n_mfc_alloc < nfr + 1) {
ckd_free_2d(acmod->mfc_buf);
acmod->mfc_buf = ckd_calloc_2d(nfr + 1, fe_get_output_size(acmod->fe),
sizeof(**acmod->mfc_buf));
acmod->n_mfc_alloc = nfr + 1;
}
acmod->n_mfc_frame = 0;
acmod->mfc_outidx = 0;
fe_start_utt(acmod->fe);
if (fe_process_frames(acmod->fe, inout_raw, inout_n_samps,
acmod->mfc_buf, &nfr) < 0)
return -1;
fe_end_utt(acmod->fe, acmod->mfc_buf[nfr], &ntail);
nfr += ntail;
cepptr = acmod->mfc_buf;
nfr = acmod_process_full_cep(acmod, &cepptr, &nfr);
acmod->n_mfc_frame = 0;
return nfr;
}
开发者ID:OmkarKirpan,项目名称:CMUSphinx,代码行数:34,代码来源:acmod.c
示例7: ngram_model_set_map_words
void
ngram_model_set_map_words(ngram_model_t * base,
const char **words, int32 n_words)
{
ngram_model_set_t *set = (ngram_model_set_t *) base;
int32 i;
/* Recreate the word mapping. */
if (base->writable) {
for (i = 0; i < base->n_words; ++i) {
ckd_free(base->word_str[i]);
}
}
ckd_free(base->word_str);
ckd_free_2d((void **) set->widmap);
base->writable = TRUE;
base->n_words = base->n_1g_alloc = n_words;
base->word_str = ckd_calloc(n_words, sizeof(*base->word_str));
set->widmap =
(int32 **) ckd_calloc_2d(n_words, set->n_models,
sizeof(**set->widmap));
hash_table_empty(base->wid);
for (i = 0; i < n_words; ++i) {
int32 j;
base->word_str[i] = ckd_salloc(words[i]);
(void) hash_table_enter_int32(base->wid, base->word_str[i], i);
for (j = 0; j < set->n_models; ++j) {
set->widmap[i][j] = ngram_wid(set->lms[j], base->word_str[i]);
}
}
}
开发者ID:Amponti,项目名称:SpeechRecognition_DE1-SOC,代码行数:31,代码来源:ngram_model_set.c
示例8: determinant
/* Find determinant through LU decomposition. */
float64
determinant(float32 ** a, int32 n)
{
float32 **tmp_a;
float64 det;
char uplo;
int32 info, i;
/* a is assumed to be symmetric, so we don't need to switch the
* ordering of the data. But we do need to copy it since it is
* overwritten by LAPACK. */
tmp_a = (float32 **)ckd_calloc_2d(n, n, sizeof(float32));
memcpy(tmp_a[0], a[0], n*n*sizeof(float32));
uplo = 'L';
spotrf_(&uplo, &n, tmp_a[0], &n, &info);
det = tmp_a[0][0];
/* det = prod(diag(l))^2 */
for (i = 1; i < n; ++i)
det *= tmp_a[i][i];
ckd_free_2d((void **)tmp_a);
if (info > 0)
return -1.0; /* Generic "not positive-definite" answer */
else
return det * det;
}
开发者ID:Amponti,项目名称:SpeechRecognition_DE1-SOC,代码行数:27,代码来源:matrix.c
示例9: vector_gautbl_alloc
void vector_gautbl_alloc (vector_gautbl_t *gautbl, int32 n_gau, int32 veclen)
{
int32 tmp;
gautbl->n_gau = n_gau;
gautbl->veclen = veclen;
#if 1
tmp =(veclen%4)? (veclen+4-(veclen%4)):veclen;
gautbl->mean = (float32 **) ckd_calloc_2da (n_gau, tmp, sizeof(float32));
gautbl->var = (float32 **) ckd_calloc_2da (n_gau, tmp, sizeof(float32));
/*printf("n_gau %d tmp %d %p %p\n",n_gau,tmp, gautbl->mean, gautbl->var);*/
#else
gautbl->mean = (float32 **) ckd_calloc_2d (n_gau, veclen, sizeof(float32));
gautbl->var = (float32 **) ckd_calloc_2d (n_gau, veclen, sizeof(float32));
#endif
gautbl->lrd = (float32 *) ckd_calloc (n_gau, sizeof(float32));
gautbl->distfloor = logs3_to_log (S3_LOGPROB_ZERO);
}
开发者ID:phillipstanleymarbell,项目名称:sunflower-simulator,代码行数:17,代码来源:vector.c
示例10: ngram_model_set_add
ngram_model_t *
ngram_model_set_add(ngram_model_t * base,
ngram_model_t * model,
const char *name, float32 weight, int reuse_widmap)
{
ngram_model_set_t *set = (ngram_model_set_t *) base;
float32 fprob;
int32 scale, i;
/* Add it to the array of lms. */
++set->n_models;
set->lms = ckd_realloc(set->lms, set->n_models * sizeof(*set->lms));
set->lms[set->n_models - 1] = model;
set->names =
ckd_realloc(set->names, set->n_models * sizeof(*set->names));
set->names[set->n_models - 1] = ckd_salloc(name);
/* Expand the history mapping table if necessary. */
if (model->n > base->n) {
base->n = model->n;
set->maphist = ckd_realloc(set->maphist,
(model->n - 1) * sizeof(*set->maphist));
}
/* Renormalize the interpolation weights. */
fprob = weight * 1.0f / set->n_models;
set->lweights = ckd_realloc(set->lweights,
set->n_models * sizeof(*set->lweights));
set->lweights[set->n_models - 1] = logmath_log(base->lmath, fprob);
/* Now normalize everything else to fit it in. This is
* accomplished by simply scaling all the other probabilities
* by (1-fprob). */
scale = logmath_log(base->lmath, 1.0 - fprob);
for (i = 0; i < set->n_models - 1; ++i)
set->lweights[i] += scale;
/* Reuse the old word ID mapping if requested. */
if (reuse_widmap) {
int32 **new_widmap;
/* Tack another column onto the widmap array. */
new_widmap = (int32 **) ckd_calloc_2d(base->n_words, set->n_models,
sizeof(**new_widmap));
for (i = 0; i < base->n_words; ++i) {
/* Copy all the existing mappings. */
memcpy(new_widmap[i], set->widmap[i],
(set->n_models - 1) * sizeof(**new_widmap));
/* Create the new mapping. */
new_widmap[i][set->n_models - 1] =
ngram_wid(model, base->word_str[i]);
}
ckd_free_2d((void **) set->widmap);
set->widmap = new_widmap;
}
else {
build_widmap(base, base->lmath, base->n);
}
return model;
}
开发者ID:Amponti,项目名称:SpeechRecognition_DE1-SOC,代码行数:58,代码来源:ngram_model_set.c
示例11: build_widmap
static void
build_widmap(ngram_model_t * base, logmath_t * lmath, int32 n)
{
ngram_model_set_t *set = (ngram_model_set_t *) base;
ngram_model_t **models = set->lms;
hash_table_t *vocab;
glist_t hlist;
gnode_t *gn;
int32 i;
/* Construct a merged vocabulary and a set of word-ID mappings. */
vocab = hash_table_new(models[0]->n_words, FALSE);
/* Create the set of merged words. */
for (i = 0; i < set->n_models; ++i) {
int32 j;
for (j = 0; j < models[i]->n_words; ++j) {
/* Ignore collisions. */
(void) hash_table_enter_int32(vocab, models[i]->word_str[j],
j);
}
}
/* Create the array of words, then sort it. */
if (hash_table_lookup(vocab, "<UNK>", NULL) != 0)
(void) hash_table_enter_int32(vocab, "<UNK>", 0);
/* Now we know the number of unigrams, initialize the base model. */
ngram_model_init(base, &ngram_model_set_funcs, lmath, n,
hash_table_inuse(vocab));
base->writable = FALSE; /* We will reuse the pointers from the submodels. */
i = 0;
hlist = hash_table_tolist(vocab, NULL);
for (gn = hlist; gn; gn = gnode_next(gn)) {
hash_entry_t *ent = gnode_ptr(gn);
base->word_str[i++] = (char *) ent->key;
}
glist_free(hlist);
qsort(base->word_str, base->n_words, sizeof(*base->word_str),
my_compare);
/* Now create the word ID mappings. */
if (set->widmap)
ckd_free_2d((void **) set->widmap);
set->widmap = (int32 **) ckd_calloc_2d(base->n_words, set->n_models,
sizeof(**set->widmap));
for (i = 0; i < base->n_words; ++i) {
int32 j;
/* Also create the master wid mapping. */
(void) hash_table_enter_int32(base->wid, base->word_str[i], i);
/* printf("%s: %d => ", base->word_str[i], i); */
for (j = 0; j < set->n_models; ++j) {
set->widmap[i][j] = ngram_wid(models[j], base->word_str[i]);
/* printf("%d ", set->widmap[i][j]); */
}
/* printf("\n"); */
}
hash_table_free(vocab);
}
开发者ID:Amponti,项目名称:SpeechRecognition_DE1-SOC,代码行数:56,代码来源:ngram_model_set.c
示例12: fe_process_utt
int
fe_process_utt(fe_t * fe, int16 const * spch, size_t nsamps,
mfcc_t *** cep_block, int32 * nframes)
{
mfcc_t **cep;
int rv;
/* Figure out how many frames we will need. */
fe_process_frames(fe, NULL, &nsamps, NULL, nframes, NULL);
/* Create the output buffer (it has to exist, even if there are no output frames). */
if (*nframes)
cep = (mfcc_t **)ckd_calloc_2d(*nframes, fe->feature_dimension, sizeof(**cep));
else
cep = (mfcc_t **)ckd_calloc_2d(1, fe->feature_dimension, sizeof(**cep));
/* Now just call fe_process_frames() with the allocated buffer. */
rv = fe_process_frames(fe, &spch, &nsamps, cep, nframes, NULL);
*cep_block = cep;
return rv;
}
开发者ID:Bangybug,项目名称:sphinxbase,代码行数:20,代码来源:fe_interface.c
示例13: phone_loop_search_reinit
static int
phone_loop_search_reinit(ps_search_t *search, dict_t *dict, dict2pid_t *d2p)
{
phone_loop_search_t *pls = (phone_loop_search_t *)search;
cmd_ln_t *config = ps_search_config(search);
acmod_t *acmod = ps_search_acmod(search);
int i;
/* Free old dict2pid, dict, if necessary. */
ps_search_base_reinit(search, dict, d2p);
/* Initialize HMM context. */
if (pls->hmmctx)
hmm_context_free(pls->hmmctx);
pls->hmmctx = hmm_context_init(bin_mdef_n_emit_state(acmod->mdef),
acmod->tmat->tp, NULL, acmod->mdef->sseq);
if (pls->hmmctx == NULL)
return -1;
/* Initialize penalty storage */
pls->n_phones = bin_mdef_n_ciphone(acmod->mdef);
pls->window = cmd_ln_int32_r(config, "-pl_window");
if (pls->penalties)
ckd_free(pls->penalties);
pls->penalties = (int32 *)ckd_calloc(pls->n_phones, sizeof(*pls->penalties));
if (pls->pen_buf)
ckd_free_2d(pls->pen_buf);
pls->pen_buf = (int32 **)ckd_calloc_2d(pls->window, pls->n_phones, sizeof(**pls->pen_buf));
/* Initialize phone HMMs. */
if (pls->hmms) {
for (i = 0; i < pls->n_phones; ++i)
hmm_deinit((hmm_t *)&pls->hmms[i]);
ckd_free(pls->hmms);
}
pls->hmms = (hmm_t *)ckd_calloc(pls->n_phones, sizeof(*pls->hmms));
for (i = 0; i < pls->n_phones; ++i) {
hmm_init(pls->hmmctx, (hmm_t *)&pls->hmms[i],
FALSE,
bin_mdef_pid2ssid(acmod->mdef, i),
bin_mdef_pid2tmatid(acmod->mdef, i));
}
pls->penalty_weight = cmd_ln_float64_r(config, "-pl_weight");
pls->beam = logmath_log(acmod->lmath, cmd_ln_float64_r(config, "-pl_beam")) >> SENSCR_SHIFT;
pls->pbeam = logmath_log(acmod->lmath, cmd_ln_float64_r(config, "-pl_pbeam")) >> SENSCR_SHIFT;
pls->pip = logmath_log(acmod->lmath, cmd_ln_float32_r(config, "-pl_pip")) >> SENSCR_SHIFT;
E_INFO("State beam %d Phone exit beam %d Insertion penalty %d\n",
pls->beam, pls->pbeam, pls->pip);
return 0;
}
开发者ID:Toine-db,项目名称:pocketsphinx-wp-demo,代码行数:51,代码来源:phone_loop_search.c
示例14: parse_args_file
void parse_args_file(char *live_args)
{
static char **liveargs;
static int32 nliveargs;
int32 nargs, maxarglen;
char *argline, *targ;
FILE *fp;
if ((fp = fopen(live_args,"r")) == NULL)
E_FATAL("Unable to open arguments file %s for reading\n",live_args);
argline = (char*) ckd_calloc(10000,sizeof(char)); /* Longest line allowed */
nargs = 1;
maxarglen = 0;
while (fgets(argline,10000,fp) != NULL){
if ((targ = strtok(argline," \t\n")) == NULL)
continue; /* Empty line in argfile */
if (strlen(targ) > (unsigned int)maxarglen) maxarglen = strlen(targ);
nargs++;
while ((targ = strtok(NULL," \t\n")) != NULL){
if (strlen(targ) > (unsigned int)maxarglen) maxarglen = strlen(targ);
nargs++;
}
}
rewind(fp);
nliveargs = nargs;
liveargs = (char**) ckd_calloc_2d(nargs,maxarglen+1,sizeof(char));
nargs = 1;
while (fgets(argline,10000,fp) != NULL){
if ((targ = strtok(argline," \t\n")) == NULL)
continue; /* Empty line in argfile */
strcpy(liveargs[nargs++],targ);
while ((targ = strtok(NULL," \t\n")) != NULL){
strcpy(liveargs[nargs++],targ);
}
}
fclose(fp);
assert(nargs == nliveargs);
free(argline);
cmd_ln_parse(arg, nliveargs, liveargs);
return;
}
开发者ID:10v,项目名称:cmusphinx,代码行数:49,代码来源:parse_args_file.c
示例15: sseq_compress
static void
sseq_compress(mdef_t * m)
{
hash_table_t *h;
s3senid_t **sseq;
int32 n_sseq;
int32 p, j, k;
glist_t g;
gnode_t *gn;
hash_entry_t *he;
k = m->n_emit_state * sizeof(s3senid_t);
h = hash_table_new(m->n_phone, HASH_CASE_YES);
n_sseq = 0;
/* Identify unique senone-sequence IDs. BUG: tmat-id not being considered!! */
for (p = 0; p < m->n_phone; p++) {
/* Add senone sequence to hash table */
if ((j = (long)
hash_table_enter_bkey(h, (char *) (m->sseq[p]), k,
(void *)(long)n_sseq)) == n_sseq)
n_sseq++;
m->phone[p].ssid = j;
}
/* Generate compacted sseq table */
sseq = (s3senid_t **) ckd_calloc_2d(n_sseq, m->n_emit_state, sizeof(s3senid_t)); /* freed in mdef_free() */
g = hash_table_tolist(h, &j);
assert(j == n_sseq);
for (gn = g; gn; gn = gnode_next(gn)) {
he = (hash_entry_t *) gnode_ptr(gn);
j = (int32)(long)hash_entry_val(he);
memcpy(sseq[j], hash_entry_key(he), k);
}
glist_free(g);
/* Free the old, temporary senone sequence table, replace with compacted one */
ckd_free_2d((void **) m->sseq);
m->sseq = sseq;
m->n_sseq = n_sseq;
hash_table_free(h);
}
开发者ID:Ankit77,项目名称:cmusphinx,代码行数:47,代码来源:mdef.c
示例16: ckd_calloc
fsg_history_t *fsg_history_init (word_fsg_t *fsg)
{
fsg_history_t *h;
h = (fsg_history_t *) ckd_calloc (1, sizeof(fsg_history_t));
h->fsg = fsg;
h->entries = blkarray_list_init();
if (fsg) {
h->frame_entries = (glist_t **) ckd_calloc_2d (word_fsg_n_state(fsg),
phoneCiCount(),
sizeof(glist_t));
} else {
h->frame_entries = NULL;
}
return h;
}
开发者ID:4auka,项目名称:cmusphinx,代码行数:18,代码来源:fsg_history.c
示例17: main
int
main(int argc, char *argv[])
{
float32 **a;
a = (float32 **)ckd_calloc_2d(3, 3, sizeof(float32));
memcpy(a[0], foo, sizeof(float32) * 3 * 3);
/* Should see 5.22 */
printf("%.2f\n", determinant(a, 3));
/* Should see -1.0 */
memcpy(a[0], bar, sizeof(float32) * 3 * 3);
printf("%.2f\n", determinant(a, 3));
ckd_free_2d((void **)a);
return 0;
}
开发者ID:006,项目名称:ios_lab,代码行数:19,代码来源:test_determinant.c
示例18: fsg_history_set_fsg
void fsg_history_set_fsg (fsg_history_t *h, word_fsg_t *fsg)
{
if (blkarray_list_n_valid(h->entries) != 0) {
E_WARN("Switching FSG while history not empty; history cleared\n");
blkarray_list_reset (h->entries);
}
if (h->frame_entries)
ckd_free_2d ((void **) h->frame_entries);
h->frame_entries = NULL;
h->fsg = fsg;
if (fsg) {
h->frame_entries = (glist_t **) ckd_calloc_2d (word_fsg_n_state(fsg),
phoneCiCount(),
sizeof(glist_t));
}
}
开发者ID:4auka,项目名称:cmusphinx,代码行数:19,代码来源:fsg_history.c
示例19: subvq_ivar_idet_precompute
/*
* Precompute variances/(covariance-matrix-determinants) to simplify Mahalanobis distance
* calculation (see libmain/gauden.*). Also, calculate 1/(det) for the original codebooks,
* based on the VQ vars.
*/
static void subvq_ivar_idet_precompute (subvq_t *vq, float64 floor)
{
int32 s, r, c;
float32 **idet;
E_INFO("Precomputing 1/det(covar), 1/2*var\n");
/* Temporary idet array for vars in subvq */
idet = (float32 **) ckd_calloc_2d (vq->n_sv, vq->vqsize, sizeof(float32));
for (s = 0; s < vq->n_sv; s++) {
for (r = 0; r < vq->vqsize; r++) {
vector_nz_floor (vq->var[s][r], vq->svsize[s], floor);
idet[s][r] = (float32) vector_maha_precomp (vq->var[s][r], vq->svsize[s]);
}
}
vq->idet = idet;
}
开发者ID:10v,项目名称:cmusphinx,代码行数:24,代码来源:subvq.c
示例20: build_mgau2sen
/* In the old S3 files, all senones have the same "shape" (#codewords/senone/feat) */
static void build_mgau2sen (senone_t *s, int32 n_cw)
{
int32 i, j, m, f;
s3senid_t *sen;
mixw_t *fw;
/* Create mgau2sen map from sen2mgau */
s->mgau2sen = (mgau2sen_t *) ckd_calloc (s->n_mgau, sizeof(mgau2sen_t));
s->mgau2sen_idx = (uint32 *) ckd_calloc (s->n_sen, sizeof(int32));
for (i = 0; i < s->n_sen; i++) {
m = s->sen2mgau[i];
assert ((m < s->n_mgau) && (m >= 0));
(s->mgau2sen[m].n_sen)++;
}
sen = (s3senid_t *) ckd_calloc (s->n_sen, sizeof(s3senid_t));
for (m = 0; m < s->n_mgau; m++) {
s->mgau2sen[m].sen = sen;
sen += s->mgau2sen[m].n_sen;
s->mgau2sen[m].n_sen = 0;
}
for (i = 0; i < s->n_sen; i++) {
m = s->sen2mgau[i];
j = s->mgau2sen[m].n_sen;
s->mgau2sen[m].sen[j] = i;
s->mgau2sen_idx[i] = j;
(s->mgau2sen[m].n_sen)++;
}
/* Allocate space for the weights */
for (m = 0; m < s->n_mgau; m++) {
fw = (mixw_t *) ckd_calloc (s->n_feat, sizeof(mixw_t));
s->mgau2sen[m].feat_mixw = fw;
for (f = 0; f < s->n_feat; f++) {
fw[f].n_wt = n_cw;
fw[f].prob = (senprob_t **) ckd_calloc_2d (s->mgau2sen[m].n_sen, n_cw,
sizeof(senprob_t));
}
}
}
开发者ID:Amos-zq,项目名称:speechcontrol-sphinxtrain,代码行数:43,代码来源:senone.c
注:本文中的ckd_calloc_2d函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论