我的程序中有以下代码:

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%

从我第一次说的时候你就可以看到,程序虽然猜错了我说的话,但是仍然比它真正猜错的时候有更高的置信度。
从我从网上获得的信息来看,我认为我计算的信心是正确的。不正确吗?如何修复它以使输出更精确?

最佳答案

从我从网上获得的信息来看,我认为我计算的信心是正确的。不正确吗?
你的代码是正确的
如何修复它以使输出更精确?
有很多问题会导致准确性较差,大多数都与代码无关,其中之一就是输入格式不正确。另一个是由于体积估计速度慢,对第一个样本的识别能力差。以下样本通常被正确识别。要获得这方面的帮助,您需要提供完整的数据来重现FAQ中的问题。

关于c - 使用PocketSphinx打印置信度值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34867563/

10-11 20:01