使用 PocketSphinx 打印置信度值
Printing confidence values with PocketSphinx
我的一个程序中有如下代码:
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%
从我第一次说的时候你就可以看出,程序猜错了我说的,但仍然比它真正猜对的时候有更高的置信度值。
根据我从互联网上获得的信息,我认为我一直在正确计算置信度。那是不正确的吗?我怎样才能修复它以使输出更准确?
From what I've garnered from the internet, I thought I've been calculating the confidence correctly. Is that incorrect?
你的代码是正确的
How can I fix it to make the output be more accurate?
导致精度变差的问题很多,大部分与代码无关,其中之一是输入格式不正确。另一个是由于体积估计缓慢而无法识别第一个样本。以下示例通常被正确识别。要获得这方面的帮助,您需要提供完整的数据来重现您的问题,如 FAQ.
我的一个程序中有如下代码:
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%
从我第一次说的时候你就可以看出,程序猜错了我说的,但仍然比它真正猜对的时候有更高的置信度值。
根据我从互联网上获得的信息,我认为我一直在正确计算置信度。那是不正确的吗?我怎样才能修复它以使输出更准确?
From what I've garnered from the internet, I thought I've been calculating the confidence correctly. Is that incorrect?
你的代码是正确的
How can I fix it to make the output be more accurate?
导致精度变差的问题很多,大部分与代码无关,其中之一是输入格式不正确。另一个是由于体积估计缓慢而无法识别第一个样本。以下示例通常被正确识别。要获得这方面的帮助,您需要提供完整的数据来重现您的问题,如 FAQ.