WER (Word Error Rate)
- 定义:预测的识别语音序列于groundtruth抄本之间的编辑距离 除以 ground truth抄本的单词数量
编辑距离 (预测的识别语音序列,groundtruth 抄本)/ ground truth抄本的单词数量
英文定义:It is given by the Levenshtein distance between the recognized word sequence and the ground truth transcription divided by the number of words in the ground truth transcription.
编辑距离的定义:
-
从一个字符串到另外一个字符串的最小的替代,插入和删除的操作次数
-
TheLevenshtein distance is defined as the minimal number of substitution, insertion and deletion operations required to turn one word string into another.
多说话人的ASR系统的一些概念
-
单个说话人的输入和单个抄本输入 single speaker at the input and output a single transcription 叫SISO
-
多个说话人的合并音频(有可能存在overlap)的输入和多个输出序列的系统称为 MIMO
containing multiple speakers at their input and that produce multiple output word sequences (MIMO)
-
MIMO抄本转录系统的目标是回答问题:谁什么时候说了什么,既转录的内容包括时间戳信息,说话人label和抄本单词
不同的WER衡量指标
|-------------------------------------------------|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|
| Concatenated Minimum Permutation WER 串联最小排列词错误率 | cpWER | 1. 将每个说话者的所有语音连接起来作为reference(groundtruth)和hypothesis 文件(预测序列) 2. 计算参考值与假设的所有可能的说话人排列之间的 WER。有 24 种这样的排列。 3. 从中挑选出 WER 最低的(这被认为是最佳排列)。 | cpWER 直接受说话人切分结果的影响。除了显示整个录音的错误率的 cpWER 之外,我们还通过从参考中恢复话语信息来报告每个话语的详细错误。 |
| Optimal Reference Combination WER | ORC WER | 1. 多个参考转录: 可能有多个参考转录用于同一个语音片段,来自不同的来源或经过不同的处理。ORC WER 旨在处理这种多参考的情境,选择最能代表语音内容的参考转录。 2. 最优参考组合: 对于每个语音单元(utterance),ORC WER 通过计算并比较每个参考与系统输出的词错误率,选择一个具有最低错误率的参考转录。这使得 ORC WER 能够反映出在多参考情况下,系统表现的最优情况。 3. 提高准确性: 通过选择多个参考转录中的最佳组合,ORC WER 在评估时能够更精确地反映系统的性能,避免由于参考转录的不完全或不一致性带来的偏差 | ORC WER 引入多个参考转录,并采用一种最优组合策略来减少对单一参考转录的依赖。这意味着,对于每个输入的语音片段,ORC 会选择多个参考转录中的"最佳"一个进行比较,而不是仅依赖于一个固定的参考。 |
| Multiple Input Multiple Output (MIMO) WER | MIMO WER | 1. 定义参考和假设序列 * 参考序列:有 III 个参考语音序列,每个序列对应一个真实的转录。 * 假设通道:有 JJJ 个假设通道,每个通道对应一个 ASR 系统的转录输出。 2. 语音段落的分配(Utterance Assignment) * 对于每个参考语音序列 RiR_iRi,找到与之匹配的假设通道 HjH_jHj,以确保每个说话人的语音段落连续保留在一个通道中。这一过程涉及: * 避免通道切换:保证同一说话人的语音在同一个假设通道中处理。 * 遵循顺序约束:保证同一说话人说话的顺序不被打乱。 3. 计算每个通道的 SISO WER * 对于每个假设通道 HjH_jHj,计算其与参考序列 RiR_iRi 之间的单一输入单一输出(SISO)词错误率( WER )。这个步骤按如下公式计算: WERSISO=S+D+IN\text{WER}_{\text{SISO}} = \frac{S + D + I}{N}WERSISO=NS+D+I 其中: * SSS 是替换错误数(substitutions) * DDD 是删除错误数(deletions) * III 是插入错误数(insertions) * NNN 是参考文本中的总词数(number of reference words) 4. 最优参考通道匹配 * 对于所有可能的参考与假设通道的匹配组合,选择一个最优匹配 ,即选择那个能够最小化总的 MIMO WER 的参考-假设通道配对。由于参考序列和假设通道的数量很大,这一过程是一个计算密集型的任务,通常通过动态规划或其他优化算法来实现。 5. 计算最终的 MIMO WER * 最终的 MIMO WER 是所有参考与假设通道匹配的 SISO WER 的加权平均值。它仅计算转录错误,不考虑说话人归属错误(即不考虑是否有正确的说话人识别信息)。 | MIMO WER 是一种评估多通道自动语音识别(ASR)系统的指标,通过最优匹配参考和假设通道,计算多说话人环境中词错误率,同时避免通道切换,确保同一说话人的连续语音保持在一个通道中。 |
| greedy_orcwer | greedy_orcwer | 使用贪心算法计算最优参考组合词错误率(ORC WER ) 使用一种贪心算法计算 最优参考组合词错误率(ORC WER) ,这种算法比最优算法更快速,但不保证产生相同的结果。 | |
| tcpwer | tcpwer | 计算时间约束最优参考组合词错误率(tcORC WER ) 计算时间约束最优参考组合词错误率(tcORC WER),类似于 ORC WER,但考虑了时间约束条件,即在评估时需要遵守语音的时间顺序。 | |
| greedy_dicpwer | greedy_dicpwer | 计算时间约束去识别说话人连接最小置换词错误率(greedy DI-tcpWER) 使用贪心算法计算时间约束去识别说话人连接最小置换词错误率(greedy DI-tcpWER),在多说话人环境下,结合了去识别说话人技术和时间约束条件。 | |
| greedy_tcorcwer | greedy_tcorcwer | 计算时间约束最优参考组合词错误率(tcORC WER ) 使用贪心算法计算时间约束最优参考组合词错误率(tcORC WER),类似于 tcORC WER,但使用了更快速的贪心算法。 | |
开源计算工具meeteval (也是chime竞赛指标代码依赖库)
-
代码库地址:https://github.com/popcornell/meeteval/tree/2b06cead668a26d153ee9618950a6ac80445307c
-
安装步骤和注意事项
-
pip install meeteval
-
如果出现x86_64-linux-gnu-g++编译不过的情况,先更新g++
(a) sudo apt update sudo; apt install g++
(b) sudo apt install build-essential
(c) g++ --version
更新完g++之后再安装步骤 1)pip install meeteval
3) 安装成功后
4)配置~/.bashrc
首先是找到安装位置
find ~/.local -name 'meeteval-wer'
假设搜索到的位置是:/home/xxx/.local/bin/meeteval-wer
在~/.bashrc 写入:export PATH=$PATH:/home/xxx/.local/bin
source ~/.bashrc
- 在shell环境测试meeteval-wer
meeteval-wer cpwer -h example_files/hyp.stm -r example_files/ref.stm
测试过程中有可能需要其他的包?,直接pip install ?就可以