1

私のプログラムには次のコードがあります。

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%

私が最初に言ったときからわかるように、プログラムは私が言ったことを間違って推測しますが、実際に正しく推測した場合よりも信頼値が高くなります。

インターネットから得たものから、信頼度を正しく計算していると思いました。それは間違っていますか?出力がより正確になるように修正するにはどうすればよいですか?

4

1 に答える 1

1

インターネットから得たものから、信頼度を正しく計算していると思いました。それは間違っていますか?

あなたのコードは正しいです

出力がより正確になるように修正するにはどうすればよいですか?

精度の低下につながる問題はたくさんありますが、ほとんどはコードに関係なく、そのうちの 1 つは入力形式が正しくないことです。もう1つは、ボリュームの推定が遅いため、最初のサンプルの認識が悪いことです。以下のサンプルは通常正しく認識されます。これに関するヘルプを得るには、FAQのように、問題を再現するための完全なデータを提供する必要があります。

于 2016-01-19T09:50:31.520 に答える