我试图通过
获得SpeechResult的置信度分数 ConfidenceResult cr = scorer.score(result)
;
其中result
是SpeechResult
而scorer
是ConfidenceScorer
。事实证明这是不允许的。除了使用Result
类型之外,还有一些我没有看到的方法吗?
答案 0 :(得分:3)
是的,你可以这样做,虽然它有点迂回。一个信心结果实际上是一个香肠(不,不是开玩笑,这就是它所谓的SphinxDocs:Sausage。虽然它也被称为一个字混淆网络,但它是' s有时被称为香肠,因为图表看起来像。见Hakkani-Tur, et. al.的图1.该文件是理解信心和语音识别的一个很好的参考,虽然它有点长,我强烈建议阅读如果您对Speech的进一步工作感兴趣,可能会发现相关的部分。它描述了Pivot算法,该算法在类中的Sphinx 4中使用:PivotSausageMaker)。
无论如何,关键是你可以从SpeechResult获得一个格子。格子是一个图形,它是识别器产生的所有假设的浓缩形式。您可以将您的晶格提供给SausageMaker,并调用SausageMaker.makeSausage(),它将为您提供一个Sausage,这是一个ConfidenceResult(注意:调用SausageMaker.score(结果结果)只是从结果中生成一个Lattice,然后调用它自己的makeSausage方法)。不幸的是,ASR置信度值不是很明确,而且它是一个开放的研究主题,如何最好地计算,处理和理解它们。
另一种可能性是你可以从SpeechResult得到的WordResult中的置信度分数。
希望有所帮助!