本文整理汇总了C++中cmd_ln_float32_r函数的典型用法代码示例。如果您正苦于以下问题:C++ cmd_ln_float32_r函数的具体用法?C++ cmd_ln_float32_r怎么用?C++ cmd_ln_float32_r使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cmd_ln_float32_r函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: fe_parse_melfb_params
static int
fe_parse_melfb_params(cmd_ln_t *config, fe_t *fe, melfb_t * mel)
{
mel->sampling_rate = fe->sampling_rate;
mel->fft_size = fe->fft_size;
mel->num_cepstra = fe->num_cepstra;
mel->num_filters = cmd_ln_int32_r(config, "-nfilt");
if (fe->log_spec)
fe->feature_dimension = mel->num_filters;
else
fe->feature_dimension = fe->num_cepstra;
mel->upper_filt_freq = cmd_ln_float32_r(config, "-upperf");
mel->lower_filt_freq = cmd_ln_float32_r(config, "-lowerf");
mel->doublewide = cmd_ln_boolean_r(config, "-doublebw");
mel->warp_type = cmd_ln_str_r(config, "-warp_type");
mel->warp_params = cmd_ln_str_r(config, "-warp_params");
mel->lifter_val = cmd_ln_int32_r(config, "-lifter");
mel->unit_area = cmd_ln_boolean_r(config, "-unit_area");
mel->round_filters = cmd_ln_boolean_r(config, "-round_filters");
if (fe_warp_set(mel, mel->warp_type) != FE_SUCCESS) {
E_ERROR("Failed to initialize the warping function.\n");
return -1;
}
fe_warp_set_parameters(mel, mel->warp_params, mel->sampling_rate);
return 0;
}
开发者ID:Bangybug,项目名称:sphinxbase,代码行数:32,代码来源:fe_interface.c
示例2: fe_parse_general_params
int
fe_parse_general_params(cmd_ln_t *config, fe_t * fe)
{
int j;
fe->config = config;
fe->sampling_rate = cmd_ln_float32_r(config, "-samprate");
fe->frame_rate = (int16)cmd_ln_int32_r(config, "-frate");
if (cmd_ln_boolean_r(config, "-dither")) {
fe->dither = 1;
fe->seed = cmd_ln_int32_r(config, "-seed");
}
#ifdef WORDS_BIGENDIAN
fe->swap = strcmp("big", cmd_ln_str_r(config, "-input_endian")) == 0 ? 0 : 1;
#else
fe->swap = strcmp("little", cmd_ln_str_r(config, "-input_endian")) == 0 ? 0 : 1;
#endif
fe->window_length = cmd_ln_float32_r(config, "-wlen");
fe->pre_emphasis_alpha = cmd_ln_float32_r(config, "-alpha");
fe->num_cepstra = (uint8)cmd_ln_int32_r(config, "-ncep");
fe->fft_size = (int16)cmd_ln_int32_r(config, "-nfft");
/* Check FFT size, compute FFT order (log_2(n)) */
for (j = fe->fft_size, fe->fft_order = 0; j > 1; j >>= 1, fe->fft_order++) {
if (((j % 2) != 0) || (fe->fft_size <= 0)) {
E_ERROR("fft: number of points must be a power of 2 (is %d)\n",
fe->fft_size);
return -1;
}
}
/* Verify that FFT size is greater or equal to window length. */
if (fe->fft_size < (int)(fe->window_length * fe->sampling_rate)) {
E_ERROR("FFT: Number of points must be greater or equal to frame size (%d samples)\n",
(int)(fe->window_length * fe->sampling_rate));
return -1;
}
fe->remove_dc = cmd_ln_boolean_r(config, "-remove_dc");
if (0 == strcmp(cmd_ln_str_r(config, "-transform"), "dct"))
fe->transform = DCT_II;
else if (0 == strcmp(cmd_ln_str_r(config, "-transform"), "legacy"))
fe->transform = LEGACY_DCT;
else if (0 == strcmp(cmd_ln_str_r(config, "-transform"), "htk"))
fe->transform = DCT_HTK;
else {
E_ERROR("Invalid transform type (values are 'dct', 'legacy', 'htk')\n");
return -1;
}
if (cmd_ln_boolean_r(config, "-logspec"))
fe->log_spec = RAW_LOG_SPEC;
if (cmd_ln_boolean_r(config, "-smoothspec"))
fe->log_spec = SMOOTH_LOG_SPEC;
return 0;
}
开发者ID:Ankit77,项目名称:cmusphinx,代码行数:58,代码来源:fe_interface.c
示例3: srch_FLAT_FWD_bestpath_impl
glist_t
srch_FLAT_FWD_bestpath_impl(void *srch, /**< A void pointer to a search structure */
dag_t * dag)
{
srch_t *s;
srch_FLAT_FWD_graph_t *fwg;
float32 bestpathlw;
float64 lwf;
srch_hyp_t *tmph, *bph;
glist_t ghyp, rhyp;
s = (srch_t *) srch;
fwg = (srch_FLAT_FWD_graph_t *) s->grh->graph_struct;
assert(fwg->lathist);
bestpathlw = cmd_ln_float32_r(kbcore_config(fwg->kbcore), "-bestpathlw");
lwf = bestpathlw ? (bestpathlw / cmd_ln_float32_r(kbcore_config(fwg->kbcore), "-lw")) : 1.0;
flat_fwd_dag_add_fudge_edges(fwg,
dag,
cmd_ln_int32_r(kbcore_config(fwg->kbcore), "-dagfudge"),
cmd_ln_int32_r(kbcore_config(fwg->kbcore), "-min_endfr"),
(void *) fwg->lathist, s->kbc->dict);
/* Bypass filler nodes */
if (!dag->filler_removed) {
/* If Viterbi search terminated in filler word coerce final DAG node to FINISH_WORD */
if (dict_filler_word(s->kbc->dict, dag->end->wid))
dag->end->wid = s->kbc->dict->finishwid;
if (dag_bypass_filler_nodes(dag, lwf, s->kbc->dict, s->kbc->fillpen) < 0)
E_ERROR("maxedge limit (%d) exceeded\n", dag->maxedge);
else
dag->filler_removed = 1;
}
bph =
dag_search(dag, s->uttid, lwf, dag->end,
s->kbc->dict, s->kbc->lmset->cur_lm, s->kbc->fillpen);
if (bph != NULL) {
ghyp = NULL;
for (tmph = bph; tmph; tmph = tmph->next)
ghyp = glist_add_ptr(ghyp, (void *) tmph);
rhyp = glist_reverse(ghyp);
return rhyp;
}
else {
return NULL;
}
}
开发者ID:4auka,项目名称:cmusphinx,代码行数:56,代码来源:srch_flat_fwd.c
示例4: ngram_model_read
ngram_model_t *
ngram_model_read(cmd_ln_t * config,
const char *file_name,
ngram_file_type_t file_type, logmath_t * lmath)
{
ngram_model_t *model = NULL;
switch (file_type) {
case NGRAM_AUTO:{
if ((model =
ngram_model_trie_read_bin(config, file_name,
lmath)) != NULL)
break;
if ((model =
ngram_model_trie_read_arpa(config, file_name,
lmath)) != NULL)
break;
if ((model =
ngram_model_trie_read_dmp(config, file_name,
lmath)) != NULL)
break;
return NULL;
}
case NGRAM_ARPA:
model = ngram_model_trie_read_arpa(config, file_name, lmath);
break;
case NGRAM_BIN:
if ((model =
ngram_model_trie_read_bin(config, file_name, lmath)) != NULL)
break;
if ((model =
ngram_model_trie_read_dmp(config, file_name, lmath)) != NULL)
break;
return NULL;
default:
E_ERROR("language model file type not supported\n");
return NULL;
}
/* Now set weights based on config if present. */
if (config) {
float32 lw = 1.0;
float32 wip = 1.0;
if (cmd_ln_exists_r(config, "-lw"))
lw = cmd_ln_float32_r(config, "-lw");
if (cmd_ln_exists_r(config, "-wip"))
wip = cmd_ln_float32_r(config, "-wip");
ngram_model_apply_weights(model, lw, wip);
}
return model;
}
开发者ID:Bangybug,项目名称:sphinxbase,代码行数:53,代码来源:ngram_model.c
示例5: srch_FLAT_FWD_nbest_impl
glist_t
srch_FLAT_FWD_nbest_impl(void *srch, /**< A void pointer to a search structure */
dag_t * dag)
{
srch_t *s;
srch_FLAT_FWD_graph_t *fwg;
float32 bestpathlw;
float64 lwf;
char str[2000];
s = (srch_t *) srch;
fwg = (srch_FLAT_FWD_graph_t *) s->grh->graph_struct;
assert(fwg->lathist);
if (!(cmd_ln_exists_r(kbcore_config(fwg->kbcore), "-nbestdir")
&& cmd_ln_str_r(kbcore_config(fwg->kbcore), "-nbestdir")))
return NULL;
ctl_outfile(str, cmd_ln_str_r(kbcore_config(fwg->kbcore), "-nbestdir"),
cmd_ln_str_r(kbcore_config(fwg->kbcore), "-nbestext"),
(s->uttfile ? s->uttfile : s->uttid), s->uttid,
cmd_ln_boolean_r(kbcore_config(fwg->kbcore), "-build_outdirs"));
bestpathlw = cmd_ln_float32_r(kbcore_config(fwg->kbcore), "-bestpathlw");
lwf = bestpathlw ? (bestpathlw / cmd_ln_float32_r(kbcore_config(fwg->kbcore), "-lw")) : 1.0;
flat_fwd_dag_add_fudge_edges(fwg,
dag,
cmd_ln_int32_r(kbcore_config(fwg->kbcore), "-dagfudge"),
cmd_ln_int32_r(kbcore_config(fwg->kbcore), "-min_endfr"),
(void *) fwg->lathist, s->kbc->dict);
/* Bypass filler nodes */
if (!dag->filler_removed) {
/* If Viterbi search terminated in filler word coerce final DAG node to FINISH_WORD */
if (dict_filler_word(s->kbc->dict, dag->end->wid))
dag->end->wid = s->kbc->dict->finishwid;
dag_remove_unreachable(dag);
if (dag_bypass_filler_nodes(dag, lwf, s->kbc->dict, s->kbc->fillpen) < 0)
E_ERROR("maxedge limit (%d) exceeded\n", dag->maxedge);
}
dag_compute_hscr(dag, kbcore_dict(s->kbc), kbcore_lm(s->kbc), lwf);
dag_remove_bypass_links(dag);
dag->filler_removed = 0;
nbest_search(dag, str, s->uttid, lwf,
kbcore_dict(s->kbc),
kbcore_lm(s->kbc), kbcore_fillpen(s->kbc)
);
return NULL;
}
开发者ID:4auka,项目名称:cmusphinx,代码行数:51,代码来源:srch_flat_fwd.c
示例6: main
int
main(int argc, char *argv[])
{
cmd_ln_t *config;
logmath_t *lmath;
acmod_t *acmod[5];
sbthread_t *thr[5];
featbuf_t *fb;
FILE *raw;
int16 buf[2048];
int nsamp;
int i;
config = cmd_ln_init(NULL, ps_args(), TRUE,
"-hmm", TESTDATADIR "/hub4wsj_sc_8k",
"-lm", TESTDATADIR "/bn10000.3g.arpa",
"-dict", TESTDATADIR "/bn10000.dic",
"-compallsen", "yes",
NULL);
ps_init_defaults(config);
fb = featbuf_init(config);
TEST_ASSERT(fb);
lmath = logmath_init(cmd_ln_float32_r(config, "-logbase"),
0, FALSE);
acmod[0] = acmod_init(config, lmath, fb);
TEST_ASSERT(acmod[0]);
/* Create a couple threads to pull features out of it. */
for (i = 0; i < 5; ++i) {
if (i != 0)
acmod[i] = acmod_copy(acmod[0]);
thr[i] = sbthread_start(NULL, consumer, acmod[i]);
}
/* Feed them some data. */
raw = fopen(TESTDATADIR "/chan3.raw", "rb");
featbuf_producer_start_utt(fb, "chan3");
while ((nsamp = fread(buf, 2, 2048, raw)) > 0) {
int rv;
rv = featbuf_producer_process_raw(fb, buf, nsamp, FALSE);
printf("Producer processed %d samples\n", nsamp);
TEST_ASSERT(rv > 0);
}
fclose(raw);
printf("Waiting for consumers\n");
featbuf_producer_end_utt(fb);
printf("Finished waiting\n");
/* Reap those threads. */
for (i = 0; i < 5; ++i) {
sbthread_wait(thr[i]);
sbthread_free(thr[i]);
acmod_free(acmod[i]);
printf("Reaped consumer %p\n", acmod[i]);
}
featbuf_free(fb);
logmath_free(lmath);
cmd_ln_free_r(config);
return 0;
}
开发者ID:Ankit77,项目名称:cmusphinx,代码行数:60,代码来源:test_acmod.c
示例7: ps_set_jsgf_string
int
ps_set_jsgf_string(ps_decoder_t *ps, const char *name, const char *jsgf_string)
{
fsg_model_t *fsg;
jsgf_rule_t *rule;
char const *toprule;
jsgf_t *jsgf = jsgf_parse_string(jsgf_string, NULL);
float lw;
int result;
if (!jsgf)
return -1;
rule = NULL;
/* Take the -toprule if specified. */
if ((toprule = cmd_ln_str_r(ps->config, "-toprule"))) {
rule = jsgf_get_rule(jsgf, toprule);
if (rule == NULL) {
E_ERROR("Start rule %s not found\n", toprule);
return -1;
}
} else {
rule = jsgf_get_public_rule(jsgf);
if (rule == NULL) {
E_ERROR("No public rules found in input string\n");
return -1;
}
}
lw = cmd_ln_float32_r(ps->config, "-lw");
fsg = jsgf_build_fsg(jsgf, rule, ps->lmath, lw);
result = ps_set_fsg(ps, name, fsg);
fsg_model_free(fsg);
return result;
}
开发者ID:jhector,项目名称:sphinxfuzz,代码行数:35,代码来源:pocketsphinx.c
示例8: acmod_init_feat
static int
acmod_init_feat(acmod_t *acmod)
{
acmod->fcb =
feat_init(cmd_ln_str_r(acmod->config, "-feat"),
cmn_type_from_str(cmd_ln_str_r(acmod->config,"-cmn")),
cmd_ln_boolean_r(acmod->config, "-varnorm"),
agc_type_from_str(cmd_ln_str_r(acmod->config, "-agc")),
1, cmd_ln_int32_r(acmod->config, "-ceplen"));
if (acmod->fcb == NULL)
return -1;
if (cmd_ln_str_r(acmod->config, "-lda")) {
E_INFO("Reading linear feature transformation from %s\n",
cmd_ln_str_r(acmod->config, "-lda"));
if (feat_read_lda(acmod->fcb,
cmd_ln_str_r(acmod->config, "-lda"),
cmd_ln_int32_r(acmod->config, "-ldadim")) < 0)
return -1;
}
if (cmd_ln_str_r(acmod->config, "-svspec")) {
int32 **subvecs;
E_INFO("Using subvector specification %s\n",
cmd_ln_str_r(acmod->config, "-svspec"));
if ((subvecs = parse_subvecs(cmd_ln_str_r(acmod->config, "-svspec"))) == NULL)
return -1;
if ((feat_set_subvecs(acmod->fcb, subvecs)) < 0)
return -1;
}
if (cmd_ln_exists_r(acmod->config, "-agcthresh")
&& 0 != strcmp(cmd_ln_str_r(acmod->config, "-agc"), "none")) {
agc_set_threshold(acmod->fcb->agc_struct,
cmd_ln_float32_r(acmod->config, "-agcthresh"));
}
if (acmod->fcb->cmn_struct
&& cmd_ln_exists_r(acmod->config, "-cmninit")) {
char *c, *cc, *vallist;
int32 nvals;
vallist = ckd_salloc(cmd_ln_str_r(acmod->config, "-cmninit"));
c = vallist;
nvals = 0;
while (nvals < acmod->fcb->cmn_struct->veclen
&& (cc = strchr(c, ',')) != NULL) {
*cc = '\0';
acmod->fcb->cmn_struct->cmn_mean[nvals] = FLOAT2MFCC(atof_c(c));
c = cc + 1;
++nvals;
}
if (nvals < acmod->fcb->cmn_struct->veclen && *c != '\0') {
acmod->fcb->cmn_struct->cmn_mean[nvals] = FLOAT2MFCC(atof_c(c));
}
ckd_free(vallist);
}
return 0;
}
开发者ID:JonGBowen,项目名称:GoodVibes,代码行数:59,代码来源:acmod.c
示例9: file
bool FSpeechRecognitionWorker::Init() {
std::string modelPath = contentPath_str + "model/" + langStr + "/" + langStr;
std::string languageModel = contentPath_str + "model/" + langStr + "/" + langStr + ".lm.bin";
std::string dictionaryPath = contentPath_str + "model/" + langStr + "/" + langStr + ".dict";
// load dictionary
dictionaryMap.clear();
std::ifstream file(dictionaryPath);
std::vector<std::string> words;
std::string currentLine;
while (file.good())
{
std::getline(file, currentLine);
std::string word = currentLine.substr(0, currentLine.find(" "));
std::string phrase = currentLine.substr(currentLine.find(" ") + 1, currentLine.size());
dictionaryMap.insert(make_pair(word, phrase));
}
// Start Sphinx
config = cmd_ln_init(NULL, ps_args(), 1,
"-hmm", modelPath.c_str(),
"-lm", languageModel.c_str(),
NULL);
ps = ps_init(config);
if (!Manager | !ps) {
ClientMessage(FString(TEXT("Speech Recognition Thread failed to start")));
initSuccess = false;
return false;
}
// only include the words/phrases that have been added
for (auto It = dictionaryList.CreateConstIterator(); It; ++It)
{
FString word = *It;
std::string wordStr = std::string(TCHAR_TO_UTF8(*word));
if (dictionaryMap.find(wordStr) != dictionaryMap.end())
{
std::string phraseStr = dictionaryMap.at(wordStr);
ps_add_word(ps, wordStr.c_str(), phraseStr.c_str(), TRUE);
}
}
// attempt to open the default recording device
if ((ad = ad_open_dev(cmd_ln_str_r(config, "-adcdev"),
(int)cmd_ln_float32_r(config,
"-samprate"))) == NULL) {
ClientMessage(FString(TEXT("Failed to open audio device")));
initSuccess = false;
return initSuccess;
}
utt_started = 0;
return true;
}
开发者ID:dbadrian,项目名称:sphinx-ue4,代码行数:59,代码来源:SpeechRecognitionWorker.cpp
示例10: main
int
main(int argc, char *argv[])
{
cmd_ln_t *config;
ngram_model_t *lm = NULL;
logmath_t *lmath;
const char *lmfn, *probdefn, *lsnfn, *text;
if ((config = cmd_ln_parse_r(NULL, defn, argc, argv, TRUE)) == NULL)
return 1;
verbose = cmd_ln_boolean_r(config, "-verbose");
/* Create log math object. */
if ((lmath = logmath_init
(cmd_ln_float64_r(config, "-logbase"), 0, 0)) == NULL) {
E_FATAL("Failed to initialize log math\n");
}
/* Load the language model. */
lmfn = cmd_ln_str_r(config, "-lm");
if (lmfn == NULL
|| (lm = ngram_model_read(config, lmfn,
NGRAM_AUTO, lmath)) == NULL) {
E_FATAL("Failed to load language model from %s\n",
cmd_ln_str_r(config, "-lm"));
}
if ((probdefn = cmd_ln_str_r(config, "-probdef")) != NULL)
ngram_model_read_classdef(lm, probdefn);
ngram_model_apply_weights(lm,
cmd_ln_float32_r(config, "-lw"),
cmd_ln_float32_r(config, "-wip"),
cmd_ln_float32_r(config, "-uw"));
/* Now evaluate some text. */
lsnfn = cmd_ln_str_r(config, "-lsn");
text = cmd_ln_str_r(config, "-text");
if (lsnfn) {
evaluate_file(lm, lmath, lsnfn);
}
else if (text) {
evaluate_string(lm, lmath, text);
}
return 0;
}
开发者ID:AaronZhangL,项目名称:pocketsphinx.js,代码行数:46,代码来源:sphinx_lm_eval.c
示例11: models_init
static void
models_init(void)
{
mdef = mdef_init(cmd_ln_str_r(config, "-mdef"), 1);
dict = dict_init(mdef,
cmd_ln_str_r(config, "-dict"),
cmd_ln_str_r(config, "-fdict"),
cmd_ln_boolean_r(config, "-lts_mismatch"),
cmd_ln_boolean_r(config, "-mdef_fillers"),
FALSE, TRUE);
lmset = lmset_init(cmd_ln_str_r(config, "-lm"),
cmd_ln_str_r(config, "-lmctlfn"),
cmd_ln_str_r(config, "-ctl_lm"),
cmd_ln_str_r(config, "-lmname"),
cmd_ln_str_r(config, "-lmdumpdir"),
cmd_ln_float32_r(config, "-lw"),
cmd_ln_float32_r(config, "-wip"),
cmd_ln_float32_r(config, "-uw"), dict,
logmath);
/* Filler penalties */
fpen = fillpen_init(dict, cmd_ln_str_r(config, "-fillpen"),
cmd_ln_float32_r(config, "-silprob"),
cmd_ln_float32_r(config, "-fillprob"),
cmd_ln_float32_r(config, "-lw"),
cmd_ln_float32_r(config, "-wip"),
logmath);
}
开发者ID:4auka,项目名称:cmusphinx,代码行数:32,代码来源:main_conf.c
示例12: srch_FLAT_FWD_srch_one_frame_lv2
int
srch_FLAT_FWD_srch_one_frame_lv2(void *srch)
{
int32 bestscr; /* Best state score for any whmm evaluated in this frame */
int32 whmm_thresh; /* Threshold for any whmm to stay alive in search */
int32 word_thresh; /* Threshold for a word-final whmm to succeed */
int32 phone_penalty;
srch_FLAT_FWD_graph_t *fwg;
srch_t *s;
s = (srch_t *) srch;
fwg = (srch_FLAT_FWD_graph_t *) s->grh->graph_struct;
ptmr_start(&(fwg->tm_hmmeval));
bestscr = whmm_eval(fwg, s->ascr->senscr);
/* E_INFO("bestscr %d RENORM_THRESH %d\n",bestscr, RENORM_THRESH); */
ptmr_stop(&(fwg->tm_hmmeval));
whmm_thresh = bestscr + s->beam->hmm;
word_thresh = bestscr + s->beam->word;
phone_penalty = logs3(kbcore_logmath(s->kbc), cmd_ln_float32_r(kbcore_config(fwg->kbcore), "-phonepen"));
assert(s->ascr->senscr);
/* E_INFO("fwg->n_frm %d\n",fwg->n_frm); */
dump_fwd_dbg_info(fwg, fwg->fwdDBG, s->ascr, bestscr, whmm_thresh,
word_thresh, s->ascr->senscr);
{
ptmr_start(&(fwg->tm_hmmtrans));
fwg->lathist->frm_latstart[fwg->n_frm] = fwg->lathist->n_lat_entry;
whmm_exit(fwg, fwg->whmm, fwg->lathist,
whmm_thresh, word_thresh,
phone_penalty);
ptmr_stop(&(fwg->tm_hmmtrans));
/* Please read, the In whmm_exit, if word ends are reach,
n_lat_entry will increase, see whmm_exit(). Then word_trans
will be triggered.
*/
ptmr_start(&(fwg->tm_wdtrans));
if (fwg->lathist->frm_latstart[fwg->n_frm] < fwg->lathist->n_lat_entry)
word_trans(fwg, fwg->whmm, fwg->lathist, whmm_thresh, phone_penalty);
ptmr_stop(&(fwg->tm_wdtrans));
}
if (bestscr < RENORM_THRESH) {
E_INFO("Frame %d: bestscore= %d; renormalizing\n", fwg->n_frm,
bestscr);
whmm_renorm(fwg, fwg->whmm, bestscr);
}
fwg->lathist->n_frm++;
fwg->n_frm++;
return SRCH_SUCCESS;
}
开发者ID:4auka,项目名称:cmusphinx,代码行数:56,代码来源:srch_flat_fwd.c
示例13: gauden_mllr_transform
int32
gauden_mllr_transform(gauden_t *g, ps_mllr_t *mllr, cmd_ln_t *config)
{
int32 i, m, f, d, *flen;
float32 ****fgau;
/* Reload means and variances (un-precomputed). */
fgau = NULL;
gauden_param_read(&fgau, &g->n_mgau, &g->n_feat, &g->n_density,
&g->featlen, cmd_ln_str_r(config, "-mean"));
g->mean = (mfcc_t ****)fgau;
fgau = NULL;
gauden_param_read(&fgau, &m, &f, &d, &flen, cmd_ln_str_r(config, "-var"));
g->var = (mfcc_t ****)fgau;
/* Verify mean and variance parameter dimensions */
if ((m != g->n_mgau) || (f != g->n_feat) || (d != g->n_density))
E_FATAL
("Mixture-gaussians dimensions for means and variances differ\n");
for (i = 0; i < g->n_feat; i++)
if (g->featlen[i] != flen[i])
E_FATAL("Feature lengths for means and variances differ\n");
ckd_free(flen);
/* Transform codebook for each stream s */
for (i = 0; i < g->n_mgau; ++i) {
for (f = 0; f < g->n_feat; ++f) {
float64 *temp;
temp = (float64 *) ckd_calloc(g->featlen[f], sizeof(float64));
/* Transform each density d in selected codebook */
for (d = 0; d < g->n_density; d++) {
int l;
for (l = 0; l < g->featlen[f]; l++) {
temp[l] = 0.0;
for (m = 0; m < g->featlen[f]; m++) {
/* FIXME: For now, only one class, hence the zeros below. */
temp[l] += mllr->A[f][0][l][m] * g->mean[i][f][d][m];
}
temp[l] += mllr->b[f][0][l];
}
for (l = 0; l < g->featlen[f]; l++) {
g->mean[i][f][d][l] = (float32) temp[l];
g->var[i][f][d][l] *= mllr->h[f][0][l];
}
}
ckd_free(temp);
}
}
/* Re-precompute (if we aren't adapting variances this isn't
* actually necessary...) */
gauden_dist_precompute(g, g->lmath, cmd_ln_float32_r(config, "-varfloor"));
return 0;
}
开发者ID:vinodkumarkv13,项目名称:sphinx-on-android,代码行数:55,代码来源:ms_gauden.c
示例14: main
int
main(int argc, char *argv[])
{
ngram_trie_t *t;
dict_t *dict;
bin_mdef_t *mdef;
logmath_t *lmath;
cmd_ln_t *config;
FILE *arpafh;
config = cmd_ln_init(NULL, ps_args(), TRUE,
"-hmm", TESTDATADIR "/hub4wsj_sc_8k",
"-dict", TESTDATADIR "/bn10000.homos.dic",
NULL);
ps_init_defaults(config);
lmath = logmath_init(cmd_ln_float32_r(config, "-logbase"),
0, FALSE);
mdef = bin_mdef_read(config, cmd_ln_str_r(config, "-mdef"));
dict = dict_init(config, mdef);
t = ngram_trie_init(dict, lmath);
arpafh = fopen(TESTDATADIR "/bn10000.3g.arpa", "r");
ngram_trie_read_arpa(t, arpafh);
fclose(arpafh);
/* Test 1, 2, 3-gram probs without backoff. */
test_lookups(t, lmath);
arpafh = fopen("tmp.bn10000.3g.arpa", "w");
ngram_trie_write_arpa(t, arpafh);
fclose(arpafh);
ngram_trie_free(t);
t = ngram_trie_init(dict, lmath);
arpafh = fopen("tmp.bn10000.3g.arpa", "r");
ngram_trie_read_arpa(t, arpafh);
fclose(arpafh);
/* Test 1, 2, 3-gram probs without backoff. */
test_lookups(t, lmath);
/* Test adding nodes. */
test_add_nodes(t, lmath);
ngram_trie_free(t);
dict_free(dict);
logmath_free(lmath);
bin_mdef_free(mdef);
cmd_ln_free_r(config);
return 0;
}
开发者ID:Jared-Prime,项目名称:cmusphinx,代码行数:54,代码来源:test_ngram_trie.c
示例15: acmod_init_am
static int
acmod_init_am(acmod_t *acmod)
{
char const *mdeffn, *tmatfn;
/* Read model definition. */
if ((mdeffn = cmd_ln_str_r(acmod->config, "-mdef")) == NULL) {
E_ERROR("Must specify -mdef or -hmm\n");
return -1;
}
if ((acmod->mdef = bin_mdef_read(acmod->config, mdeffn)) == NULL) {
E_ERROR("Failed to read model definition from %s\n", mdeffn);
return -1;
}
/* Read transition matrices. */
if ((tmatfn = cmd_ln_str_r(acmod->config, "-tmat")) == NULL) {
E_ERROR("No tmat file specified\n");
return -1;
}
acmod->tmat = tmat_init(tmatfn, acmod->lmath,
cmd_ln_float32_r(acmod->config, "-tmatfloor"),
TRUE);
/* Read the acoustic models. */
if ((cmd_ln_str_r(acmod->config, "-mean") == NULL)
|| (cmd_ln_str_r(acmod->config, "-var") == NULL)
|| (cmd_ln_str_r(acmod->config, "-tmat") == NULL)) {
E_ERROR("No mean/var/tmat files specified\n");
return -1;
}
if (cmd_ln_str_r(acmod->config, "-senmgau")) {
E_INFO("Using general multi-stream GMM computation\n");
acmod->mgau = ms_mgau_init(acmod->config, acmod->lmath, acmod->mdef);
if (acmod->mgau == NULL)
return -1;
}
else {
E_INFO("Attempting to use SCHMM computation module\n");
if ((acmod->mgau = s2_semi_mgau_init(acmod)) == NULL) {
E_INFO("Attempting to use PTHMM computation module\n");
if ((acmod->mgau = ptm_mgau_init(acmod)) == NULL) {
E_INFO("Falling back to general multi-stream GMM computation\n");
acmod->mgau = ms_mgau_init(acmod->config, acmod->lmath, acmod->mdef);
if (acmod->mgau == NULL)
return -1;
}
}
}
return 0;
}
开发者ID:Jared-Prime,项目名称:cmusphinx,代码行数:54,代码来源:acmod.c
示例16: main
int
main(int argc, char *argv[])
{
print_appl_info(argv[0]);
cmd_ln_appl_enter(argc, argv, "default.arg", defn);
unlimit();
config = cmd_ln_get();
logmath = logs3_init(cmd_ln_float64_r(config, "-logbase"), 1,
cmd_ln_int32_r(config, "-log3table"));
E_INFO("Value of base %f \n", cmd_ln_float32_r(config, "-logbase"));
models_init();
ptmr_init(&tm_utt);
if ((inmatchsegfp = fopen(cmd_ln_str_r(config, "-inhypseg"), "r")) == NULL)
E_ERROR("fopen(%s,r) failed\n", cmd_ln_str_r(config, "-inhypseg"));
if ((outconfmatchsegfp = fopen(cmd_ln_str_r(config, "-output"), "w")) == NULL)
E_ERROR("fopen(%s,w) failed\n", cmd_ln_str_r(config, "-output"));
if (cmd_ln_str_r(config, "-ctl")) {
ctl_process(cmd_ln_str_r(config, "-ctl"),
cmd_ln_str_r(config, "-ctl_lm"),
NULL,
cmd_ln_int32_r(config, "-ctloffset"),
cmd_ln_int32_r(config, "-ctlcount"), utt_confidence, NULL);
}
else {
E_FATAL("-ctl is not specified\n");
}
#if (! WIN32)
system("ps auxwww | grep s3dag");
#endif
fclose(outconfmatchsegfp);
fclose(inmatchsegfp);
models_free();
logmath_free(logmath);
cmd_ln_free_r(config);
return 0;
}
开发者ID:4auka,项目名称:cmusphinx,代码行数:51,代码来源:main_conf.c
示例17: 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
示例18: s3_decode_read_lm
void
s3_decode_read_lm(s3_decode_t * _decode,
const char *lmpath, const char *lmname)
{
srch_t *s;
lm_t *lm;
int32 ndict;
s = (srch_t *) _decode->kb.srch;
ndict = dict_size(_decode->kb.kbcore->dict);
lm = lm_read_advance(lmpath, lmname,
cmd_ln_float32_r(kbcore_config(_decode->kbcore), "-lw"),
cmd_ln_float32_r(kbcore_config(_decode->kbcore), "-wip"),
cmd_ln_float32_r(kbcore_config(_decode->kbcore), "-uw"),
ndict, NULL, 1, /* Weight apply */
kbcore_logmath(s->kbc),
cmd_ln_boolean_r(kbcore_config(_decode->kbcore), "-ugonly"),
cmd_ln_boolean_r(kbcore_config(_decode->kbcore), "-bgonly")
);
s->funcs->add_lm(s, lm, lmname);
}
开发者ID:Ankit77,项目名称:cmusphinx,代码行数:24,代码来源:s3_decode.c
示例19: recognize_from_microphone
/*
* Main utterance processing loop:
* for (;;) {
* start utterance and wait for speech to process
* decoding till end-of-utterance silence will be detected
* print utterance result;
* }
*/
static void
recognize_from_microphone()
{
ad_rec_t *ad;
int16 adbuf[2048];
uint8 utt_started, in_speech;
int32 k;
char const *hyp;
if ((ad = ad_open_dev(cmd_ln_str_r(config, "-adcdev"),
(int) cmd_ln_float32_r(config,
"-samprate"))) == NULL)
E_FATAL("Failed to open audio device\n");
if (ad_start_rec(ad) < 0)
E_FATAL("Failed to start recording\n");
if (ps_start_utt(ps) < 0)
E_FATAL("Failed to start utterance\n");
utt_started = FALSE;
E_INFO("Ready....\n");
for (;;) {
if ((k = ad_read(ad, adbuf, 2048)) < 0)
E_FATAL("Failed to read audio\n");
ps_process_raw(ps, adbuf, k, FALSE, FALSE);
in_speech = ps_get_in_speech(ps);
if (in_speech && !utt_started) {
utt_started = TRUE;
E_INFO("Listening...\n");
}
if (!in_speech && utt_started) {
/* speech -> silence transition, time to start new utterance */
ps_end_utt(ps);
hyp = ps_get_hyp(ps, NULL );
if (hyp != NULL) {
printf("%s\n", hyp);
fflush(stdout);
}
if (ps_start_utt(ps) < 0)
E_FATAL("Failed to start utterance\n");
utt_started = FALSE;
E_INFO("Ready....\n");
}
sleep_msec(100);
}
ad_close(ad);
}
开发者ID:Bangybug,项目名称:pocketsphinx,代码行数:56,代码来源:continuous.c
示例20: ps_set_jsgf_file
int ps_set_jsgf_file(ps_decoder_t *ps, const char *name, const char *path)
{
fsg_model_t *fsg;
jsgf_rule_t *rule;
char const *toprule;
jsgf_t *jsgf = jsgf_parse_file(path, NULL);
float lw;
int result;
if (!jsgf)
return -1;
rule = NULL;
/* Take the -toprule if specified. */
if ((toprule = cmd_ln_str_r(ps->config, "-toprule"))) {
char *ruletok;
ruletok = string_join("<", toprule, ">", NULL);
rule = jsgf_get_rule(jsgf, ruletok);
ckd_free(ruletok);
if (rule == NULL) {
E_ERROR("Start rule %s not found\n", toprule);
return -1;
}
} else {
/* Otherwise, take the first public rule. */
jsgf_rule_iter_t *itor;
for (itor = jsgf_rule_iter(jsgf); itor;
itor = jsgf_rule_iter_next(itor)) {
rule = jsgf_rule_iter_rule(itor);
if (jsgf_rule_public(rule)) {
jsgf_rule_iter_free(itor);
break;
}
}
if (rule == NULL) {
E_ERROR("No public rules found in %s\n", path);
return -1;
}
}
lw = cmd_ln_float32_r(ps->config, "-lw");
fsg = jsgf_build_fsg(jsgf, rule, ps->lmath, lw);
result = ps_set_fsg(ps, name, fsg);
fsg_model_free(fsg);
return result;
}
开发者ID:chand3040,项目名称:pocketsphinx.js,代码行数:47,代码来源:pocketsphinx.c
注:本文中的cmd_ln_float32_r函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论