如何评估 ASR(自动语音识别)中的 WER(单词错误率)?
例如,如果我有 ASR 的句子和输出(人工参考翻译)。
我知道方程式,但不知道如何计算。计算WER时是否输入逗号、句号等标点符号?
以及单词的 sub、ins 和 del。有具体重量吗?他们每个人在等式中计算时?
任何知道如何计算 ASR 的 WER 的人都可以吗?请给我一个例子,以便我可以在应用程序中的多个句子中计算 ASR 的 WER
计算WER时是否输入逗号、句号等标点符号?
在计算之前去掉标点符号并将所有内容转换为小写。
任何知道如何计算 ASR 的 WER 的人都可以吗?请给我一个例子,以便我可以在我的应用程序中的多个句子中计算 ASR 的 WER
您可以使用这个Python包:
https://pypi.org/project/jiwer/
如果您需要其他语言,请告诉我们哪些语言。
基于 Levenshtein 距离的简单 C++ 实现, 只是一个文件,没有任何库。
参考此存储库,使用 Colab 计算两个字符串的字错误率 (WER)。
您还可以通过勾选remote_punctuation复选框来删除计算WER时的标点符号。
Colab 的单词错误率可视化:https://github.com/duckyngo/Word-Error-Rate-Visualization-with-Colab
字错误率的计算公式为:
单词错误率 =(替换 + 插入 + 删除)/说出的单词数
如果我们分析这个非常简单,我们首先通过与实际转录数据(地面真实数据)进行比较,得到 ASR 输出中插入、删除和替换的总数。现在插入可以发生在字符级别或单词级别,也可以是多个字符的组合,同样删除也可以发生在多个字符级别,类似地,代替字符或单词,新字符也可能被错误地推断出来,这基本上是替换错误。
现在的问题是如何识别这些类型的错误,以识别这些错误。对于这个编辑距离度量被使用。
编辑距离是两个“字符串”之间差异的度量。这些字符串是组成转录中单词的字母序列。
让我们看一些例子来更好地理解
在此之后获取总单词数并完成除法,这将给你WER