私のプログラムには次のコードがあります。
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);
しかし、信頼度の出力を得るたびに、探している値が正しく出力されているようには見えません。
たとえば、「テスト」と言って生成された出力の例を次に示します。
Recognized text: toes Confidence: 8.17663% ... Recognized text: test Confidence: 0.195157%
私が最初に言ったときからわかるように、プログラムは私が言ったことを間違って推測しますが、実際に正しく推測した場合よりも信頼値が高くなります。
インターネットから得たものから、信頼度を正しく計算していると思いました。それは間違っていますか?出力がより正確になるように修正するにはどうすればよいですか?