1

我正在尝试将 CMU Sphinx 识别器的输出(即列表 < 假设(即短语)、分数(在日志中)> 通过调整 test_ps_nbest.c 获得)转换为以下形式:列表 < 假设(即短语)、“概率”(介于0 和 1) >

我现在使用的一个简单方法如下:

  1. 将每个置信度分数除以语言权重(例如:11)
  2. 标准化对数域中的置信度得分列表
  3. 输出概率 = exp(归一化置信度得分)

问题是上述方法的输出概率是有偏差的。你有什么建议可以用来获得概率偏差吗?

我必须实施以纠正偏差的示例方法:

矢量<双> getBias(矢量<字符串>短语,矢量<双> logConfidenceScores)

上述讨论的示例输入:

<“他在我们的头部心脏肺中做了标记”,-43278 >

< “他在我们班上拿了钱,他做了标记”,-43449 >

<他在心脏和肺上得到了能量并且他做了标记”,-43368 >

4

1 回答 1

1
A trivial method which I am using now is as follows:
Divide each confidence score by language weight (eg: 11)

首先,它不是信心分数,而是分数。你为什么要分?列表中的分数也是声学分数,语言权重在这里没有任何意义

Normalize the list of confidence score in log domain

这也是一件毫无意义的事情,因为您没有考虑到巨大的概率质量。

Output probability = exp(normalized confidence score)

动作序列没有任何数学意义,你没有得到好的结果并不奇怪。

如果您想要每个话语的置信度分数,您可能需要先回顾一个理论:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.93.6890&rep=rep1&type=pdf

于 2012-06-03T06:05:31.480 回答