词错误率(WER):如何衡量转录准确性
了解词错误率(WER),衡量转录准确性的标准指标。学习 WER 的计算方法以及什么算是好的分数。
词错误率(WER)是衡量自动语音识别(ASR)系统准确性的标准指标——它计算转录文本中通过替换、删除和插入与经过验证的参考转录文本不同的词语百分比。
无论你是在评估转录服务、对 ASR 模型进行基准测试,还是试图理解"95% 准确率"在实践中到底意味着什么,WER 都是最重要的数字。本指南介绍 WER 的工作原理、什么构成好的分数,以及为什么该指标既有优势也有重要的局限性。
什么是词错误率?
词错误率衡量的是转录系统与基准参考转录文本相比有多少词出了错。它以百分比表示,数值越低表示准确性越高:5% 的 WER 意味着系统每 100 个词出了 5 个错。
WER 的公式为:
WER = (S + D + I) / N x 100%
其中:
- S(替换):被替换成不同词的词。参考文本说"cat",转录文本说"cap"。
- D(删除):参考文本中存在但转录文本中缺失的词。某个词被说出但未被转录。
- I(插入):转录文本中出现但参考文本中没有的词。系统添加了一个从未被说出的词。
- N:参考转录文本中的总词数。
WER 为 0% 意味着转录文本与参考文本完美匹配。WER 为 100% 意味着错误数等于参考词总数。如果系统插入的词多于参考文本所含的词,WER 实际上可以超过 100%,尽管现代系统中这种情况不常见。
为什么这三种错误类型很重要
每种错误类型反映了语音识别中不同的失败模式:
- 替换是最常见的错误类型。它们发生在声学模型混淆了发音相似的词("their" vs "there")、语言模型选择了统计上可能但不正确的词,或口音和方言导致误识别时。
- 删除发生在系统完全漏掉词语时。这在填充词("嗯"、"呃")、快速语速、说话人重叠或音量较低的段落中常见。
- 插入发生在系统产生幻觉词(从未被说出的词)时。背景噪音、回声或音乐可能触发错误的词语检测。
了解 S、D 和 I 错误的分布通常比仅看总 WER 数字更有用,因为它揭示了系统在哪里失败以及可以做什么来改善结果。
如何计算 WER
WER 计算依赖动态规划来找到参考转录文本和假设(系统输出)之间的最小编辑距离。这与用于字符串编辑距离(Levenshtein 距离)的算法相同,只是应用于词级别。
以下是一个逐步示例。
参考转录文本(实际说的内容):
The quick brown fox jumps over the lazy dog
假设转录文本(系统产出的内容):
The quik brown fox jump over a lazy dock
步骤 1:逐词对齐转录文本。
| 参考 | The | quick | brown | fox | jumps | over | the | lazy | dog |
|---|---|---|---|---|---|---|---|---|---|
| 假设 | The | quik | brown | fox | jump | over | a | lazy | dock |
| 错误类型 | -- | S | -- | -- | S | -- | S | -- | S |
步骤 2:统计每种错误类型。
- 替换(S):4("quick" -> "quik"、"jumps" -> "jump"、"the" -> "a"、"dog" -> "dock")
- 删除(D):0(没有遗漏的词)
- 插入(I):0(没有添加多余的词)
步骤 3:应用公式。
WER = (4 + 0 + 0) / 9 x 100% = 44.4%
参考文本的总词数(N)为 9。有 4 个替换错误,WER 为 44.4%。
一个更复杂的例子
考虑一个包含所有三种错误类型的案例。
参考: "She sells sea shells by the seashore"
假设: "She sell sea shells on seashore today"
对齐:
| 参考 | She | sells | sea | shells | by | the | seashore | -- |
|---|---|---|---|---|---|---|---|---|
| 假设 | She | sell | sea | shells | on | -- | seashore | today |
| 错误类型 | -- | S | -- | -- | S | D | -- | I |
- S = 2("sells" -> "sell"、"by" -> "on")
- D = 1("the"被删除)
- I = 1("today"被插入)
- N = 7
WER = (2 + 1 + 1) / 7 x 100% = 57.1%
在实践中,对齐步骤是通过算法计算的,因为手动对齐包含大量插入和删除的长转录文本容易出错。NIST 的 sclite 和 Python 的 jiwer 库等研究工具可以自动化这个过程。
什么是好的 WER?
WER 基准因音频质量、领域、说话人数量和语言而有显著差异。以下是英语转录的一般指南。
| WER 范围 | 质量水平 | 典型场景 |
|---|---|---|
| 低于 5% | 优秀 | 录音棚质量音频,单说话人,清晰语音,常见词汇 |
| 5% -- 10% | 良好 | 专业录音,安静房间中的会议,使用好麦克风的采访 |
| 10% -- 15% | 可接受 | 电话会议,网络研讨会,中等背景噪音 |
| 15% -- 20% | 一般 | 嘈杂环境,带口音的语音,多人重叠说话 |
| 20% 以上 | 较差 | 非常嘈杂的音频,重口音,差的麦克风质量,远距离语音 |
作为参考,专业人工转录员在有利条件下通常达到 4% -- 6% 的 WER。近年来人类和机器性能之间的差距已经大幅缩小,最好的 AI 系统现在在清晰音频上接近或达到了人类水平的准确性。
你需要的质量水平取决于你的使用场景。10% 的 WER 对于参与者可以填补上下文的会议记录来说可能完全可以接受,但对于每个词都很重要的法律证词或医疗转录来说就不够了。
现代 AI 的 WER 基准
现代自动语音识别系统自 2020 年以来有了实质性改进。以下是知名 ASR 系统在标准英语基准上的近似 WER 数据。
| 系统 | 近似 WER(清晰语音) | 备注 |
|---|---|---|
| OpenAI Whisper(large-v3) | 3% -- 5% | 开源,多语言,对多样化口音表现好 |
| Google Cloud Speech-to-Text(v2) | 4% -- 6% | 云端 API,支持实时和批量转录 |
| AWS Amazon Transcribe | 5% -- 8% | 云端 API,包含说话人分离 |
| Microsoft Azure Speech | 4% -- 7% | 云端 API,可定制语言模型 |
| Deepgram Nova-2 | 3% -- 5% | 优化了速度和准确性 |
| Meta MMS | 5% -- 10% | 开源,覆盖 1,100 多种语言 |
这些数字是近似值,来自已发表的基准、研究论文和独立评估。实际性能因音频条件、领域词汇、口音和语言而有显著差异。在干净的 TED 演讲上达到 4% WER 的系统在嘈杂的电话通话上可能产生 15% 以上的 WER。
还值得注意的是,厂商通常在精心选择的基准上报告 WER。真实世界的表现——有背景噪音、串扰、领域特定行话和各种录音设备——通常高于发布的数字。评估转录服务时,用你自己的音频测试而不是仅仅依赖基准声明。
WER 的局限性
WER 是一个有用但不完美的指标。理解其局限性有助于你更批判性地解读准确性声明。
WER 忽略语义正确性
WER 将所有词错误同等对待。将"I need to book a flight"转录为"I need to cook a flight"算作一个替换错误,与转录为"I need to book a fright"相同。但第一个错误对含义的损害比第二个更大。WER 没有衡量错误对理解造成多大损害的概念。
标点和大小写被排除
标准 WER 评估在比较前会去除标点并标准化大小写。这意味着一份词语完美但缺少句号、逗号和问号的转录文本会得到 0% 的 WER,尽管它很难阅读。相反,一份标点正确但有词错误的转录文本会被完全惩罚。
格式和结构不可见
WER 不考虑段落分隔、说话人标签、时间戳或任何结构化格式。两份文本完全相同但可读性截然不同的转录文本(一份是一面文字墙,另一份按说话人正确分段)会获得相同的 WER 分数。对于结构很重要的用例(如会议转录文本),WER 本身是不够的。
短话语会夸大 WER
WER 是一个比率,因此短语会产生波动性很大的分数。如果参考文本是"Yes, absolutely"(2 个词),系统输出"Yes, definitely",这一个替换就产生了 50% 的 WER。同类型的错误在 200 词的段落中只贡献 0.5% 的 WER。这使得 WER 在评估短形式转录任务时不太有意义。
标准化差异导致不一致
计算 WER 前如何标准化文本会影响结果。"Dr."和"Doctor"应该被视为匹配吗?"100"和"one hundred"呢?不同的评估流水线做出不同的标准化选择,这就是为什么来自不同来源的 WER 数字不总是可以直接比较的原因。
其他准确性指标
研究人员和从业者开发了几个替代和补充指标来解决 WER 的局限性。
字符错误率(CER)
CER 在字符级别而非词级别应用相同的替换/删除/插入公式。CER 对于没有明确词语边界的语言(如中文、日文和泰语)以及评估错误的严重程度特别有用。将"cat"替换为"car"在 WER 中是 1 个错误但在 CER 中只是 1 个字符错误,而"cat"替换为"elephant"在 WER 中仍是 1 个错误但在 CER 中是许多字符错误。
CER = (Sc + Dc + Ic) / Nc x 100%
其中 Sc、Dc、Ic 是字符级别的替换、删除和插入,Nc 是参考文本中的总字符数。
匹配错误率(MER)
MER 调整 WER 公式以考虑总匹配数而非仅考虑参考长度。当假设文本和参考文本在长度上有显著差异时,它提供了更平衡的准确性视角。
MER = (S + D + I) / (S + D + C) x 100%
其中 C 是正确(匹配的)词数。
词信息丢失(WIL)
WIL 衡量转录过程中丢失了多少信息。与关注错误的 WER 不同,WIL 同时考虑精确率(假设文本中有多少是正确的)和召回率(参考文本中有多少被捕获)。WIL 的范围从 0(完美)到 1(完全信息丢失)。
语义距离指标
更新的评估方法使用语言模型来衡量参考和假设转录文本之间的语义相似性,而非精确的词匹配。这些指标更好地捕获了含义是否被保留,即使确切的词不同。该领域的研究很活跃,但这些指标尚未标准化。
如何改善转录 WER
无论你使用 AI 转录还是人工转录,音频质量都是影响准确性的最大单一因素。以下是改善 WER 的实用步骤。
使用好的麦克风录音
使用专用麦克风而非笔记本电脑的内置麦克风。对于独白录音,在距说话人 15-30 厘米处放置的 USB 电容麦克风比房间另一端的摄像头麦克风产出好得多的结果。对于会议,带波束成形麦克风的会议扬声器可以改善所有参与者的识别准确性。
最小化背景噪音
尽可能在安静的环境中录音。关闭窗户,关掉风扇和空调,避免有环境音乐或对话的地方。即使是现代抗噪 ASR 模型在清晰音频上也能测量到明显更好的表现。如需处理不可避免的噪音的建议,请参阅我们的转录嘈杂音频指南。
清晰且适中的语速说话
快速语速、含糊不清和在句末拖音都会增加 WER。录制将要被转录的内容时,保持稳定的语速并清晰发音。这不意味着要不自然地慢——只是避免在重要内容上赶进度。
使用更高的音频比特率
语音音频压缩使用 128 kbps 或更高。重度压缩的音频(64 kbps 或更低)会丢弃 ASR 系统依赖的声学细节来准确识别。如果你专门为转录而录音,256 kbps 或无损格式保留了最有用的信号。
避免重叠说话
当多人同时说话时,即使是最好的分离系统也难以准确分离和转录两个说话人。在会议和采访中,建立轮流说话的规范。如果重叠不可避免,为每个说话人使用单独的麦克风可以显著改善结果。
选择合适的转录工具
不同的 ASR 系统有不同的优势。有些更好地处理带口音的语音,有些擅长领域特定词汇,有些针对嘈杂条件进行了优化。Vocova 支持 100 多种语言并具备自动语言检测和说话人分离功能,有助于在多样化录音条件下保持准确性。在投入一个工作流程之前,用你具体的音频类型测试服务总是值得的。
带上下文进行后处理
转录完成后,对照原始音频审核输出。领域特定术语、专有名词和缩略词是最常见的错误类别。许多转录工具允许你直接编辑转录文本,有些支持自定义词汇表以减少已知术语的错误。
常见问题
什么被认为是好的词错误率?
低于 5% 的 WER 被认为是优秀的,可与专业人工转录质量相媲美。对于大多数商业应用——会议记录、采访转录、内容创作——5% 到 10% 的 WER 被认为是好的,产出的转录文本需要最少的编辑。
WER 可以大于 100% 吗?
可以。因为插入增加了错误计数但不增加参考词数(N),产出大量多余词语的系统可以超过 100% WER。例如,如果参考文本有 10 个词而系统输出 25 个词并有大量错误,(S + D + I) / N 的计算可以产出大于 1.0 的值。现代系统中这种情况很少见但数学上是可能的。
WER 和准确率有什么区别?
准确率有时被报告为 (1 - WER)。8% 的 WER 对应 92% 的准确率。但"准确率"在营销中使用时比较宽泛,可能指不同的评估方法。当你看到转录提供商的准确率声明时,始终要问使用了什么指标以及评估是如何进行的。
为什么不同的 ASR 系统对同一音频报告不同的 WER?
WER 取决于评估数据集、文本标准化流水线和评分方法。一个厂商可能在评分前将"Dr. Smith"标准化为"doctor smith",而另一个保持原样。一个可能在干净的朗读语音上评估,而另一个使用会话音频。这些方法论差异使得直接比较不可靠,除非使用相同的评估协议。
WER 考虑标点错误吗?
不考虑。标准 WER 评估在对齐和评分前去除所有标点。一份词语完美但完全没有标点的转录文本会达到 0% WER。标点准确性需要单独的评估指标,这些指标不如 WER 标准化。
如何计算自己转录文本的 WER?
最方便的工具是 Python 的 jiwer 库。使用 pip install jiwer 安装,然后用几行代码计算 WER:
from jiwer import wer
reference = "the quick brown fox jumps over the lazy dog"
hypothesis = "the quik brown fox jump over a lazy dock"
error_rate = wer(reference, hypothesis)
print(f"WER: {error_rate:.1%}") # 输出: WER: 44.4%
对于较长的转录文本,你需要一份经过验证的参考转录文本来比较。这通常意味着让人工转录员制作一个音频的基准版本。