代码之家  ›  专栏  ›  技术社区  ›  syb0rg

使用PocketSphinx打印置信值

  •  1
  • syb0rg  · 技术社区  · 9 年前

    我的程序中有以下代码:

    cmd_ln_t *config = cmd_ln_init(NULL, ps_args(), TRUE,
                                       "-hmm", MODELDIR "/en-us/en-us",
                                       "-lm", MODELDIR "/en-us/en-us.lm.bin",
                                       "-dict", MODELDIR "/en-us/cmudict-en-us.dict",
                                       NULL);
    ps_decoder_t *ps = ps_init(config);
    // ...
    const char *text = recognizeFromFile(ps, fileName);
    // ...
    fprintf(stdout, "Recognized text: %s\n", text);
    fprintf(stdout, "Confidence: %g%%\n", logmath_exp(ps_get_logmath(ps), ps_get_prob(ps)) * 100);
    

    但每次我得到信心输出时,我所寻找的值似乎都没有正确打印出来。

    例如,这里有一个例子,我说“test”并生成输出:

    Recognized text: toes
    Confidence: 8.17663%
    ...
    Recognized text: test
    Confidence: 0.195157%
    

    正如你从我第一次说的时候可以看到的,程序猜错了我说的话,但仍然比它真正猜对的时候有更高的置信值。

    从我从网上获得的信息来看,我认为我已经正确地计算了信心。这不正确吗?如何修复它以使输出更准确?

    1 回复  |  直到 9 年前
        1
  •  1
  •   Nikolay Shmyrev    9 年前

    从我从网上获得的信息来看,我认为我已经正确地计算了信心。这不正确吗?

    您的代码正确

    如何修复它以使输出更准确?

    有很多问题会导致更差的准确性,大多数与代码无关,其中一个问题是输入格式不正确。另一个是由于缓慢的体积估计,第一个样本的识别不良。以下样品通常被正确识别。要获得这方面的帮助,您需要提供完整的数据来重现您的问题,如 FAQ .