周五下午,张老师抱着一摞听写本走进办公室。她手里有一份课文原文,那是标准答案;桌上摊开的是小明的听写本,这是学生交上来的“识别结果”。她要做的事,就是照着原文逐字核对,数一数学生到底写错几处、漏写几处、多写几处,最后算出错误率。 在AI领域,语音识别引擎就是那个听写的小明。工程师把一段录音喂给系统,得到一串文字,再拿它和人工标注的参考文本比对。WER(Word Error Rate,词错误率)就是张老师要打的“错误分”——识别得越差,分数越高。替换、插入、删除三种错误,对应学生写错字、多写废话、漏写字。整篇文章都会围绕这个批改听写的场景展开:先看WER怎么定义,再看错误怎么分类、怎么数出来,接着比较中英文评估的差异,最后聊聊怎么用WER持续优化你的语音产品。

岗位关联

WER是语音识别最核心的“体检指标”,掌握它,你就拿到了评估模型好坏、定位系统瓶颈、向业务方解释效果的通用语言。

目录
  1. 可视化演示
  2. WER定义:错误占原文几分之几
  3. 错误类型:替换、插入、删除
  4. 计算流程:动态规划对齐文本
  5. CER对比:中文按字,英文按词
  6. 语言差异:跨语言别直接比
  7. 基准数据集:一张统一的考卷
  8. 评估优化:从批改到提分
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示三层神经网络的前向传播计算过程,从输入层到隐藏层再到输出层,逐步演示加权求和与激活函数的作用。

本节配有交互动效(进入视口后自动加载,约 3KB)。

前向传播 — 等待开始 点击下一步逐步执行前向传播计算 输入层3节点 → 隐藏层4节点 → 输出层2节点 a = σ(W·x + b),σ 为 Sigmoid 激活函数

WER定义:错误占原文几分之几

张老师批改听写时,心里其实在默默算一笔账:这篇50字的短文,小明错了5处,错误占了原文的10%;下一篇200字的长文,小红也错了5处,只占2.5%。如果不看分母,单看错误个数,根本无法判断谁听得更好。语音识别里的WER,就是把这笔账用数学公式写了出来。

WER的全称是Word Error Rate,词错误率。它把语音识别引擎输出的文本(识别结果)和人工标好的准确文本(参考文本)做对比。参考文本就是老师手里的标准答案,识别结果就是学生的听写本。两者的差异被拆成三类错误:替换、删除、插入,然后统一除以参考文本的总词数。

张老师坚持用原文总字数做分母,而不是用学生写的字数做分母。试想,一个学生疯狂多写废话,他的“本子”会显得很长,如果拿他的字数做分母,错误率反而被稀释了。WER的选择也是同样的道理:分母必须是参考文本总词数,这样才能公平反映出系统有没有把该说的都说到位。

WER=S+D+IN×100%\displaystyle WER = \frac{S + D + I}{N} \times 100\%
通俗含义:错误词数占参考文本总词数的百分比。WER越低,说明识别得越准。
  1. S(替换)参考文本中被识别成另一个词的个数,比如把“苹果”听成了“香蕉”,词的意思被换掉了。
    SS
  2. D(删除)参考文本中完全没被识别出来的词个数,比如原文有“不”,识别结果里消失了。
    DD
  3. I(插入)识别结果中多出来的、参考文本里根本没有的词个数,比如安静片段里凭空冒出“嗯”。
    II
  4. N(参考词数)标准答案包含的总词数,这是错误率的分母。
    NN
  5. × 100%把比值换算成百分比,方便不同长度的句子互相比较。
    ×100%\times 100\%

错误类型:替换、插入、删除

张老师批改时,会在本子上贴三种颜色的便签。红色便签是“写错字”:原文写的是“苹果”,学生写了“香蕉”,这叫替换(Substitution),意思被偷梁换柱了。黄色便签是“漏写字”:原文有“不想要”,学生只写了“想要”,这叫删除(Deletion),关键信息凭空消失,甚至会把意思完全颠倒。绿色便签是“画蛇添足”:原文没有“的”,学生多写了一个“的”,这叫插入(Insertion),识别系统编造了不存在的词。

在语音识别里,这三类错误的危害并不相同。替换错误最常见,往往来自发音相近的词,比如“机场”和“剧场”;删除错误最危险,因为否定词“不”一旦被删掉,意图就彻底反转,“我不想买”变成“我想买”,客服系统会完全会错意;插入错误虽然看起来是“多说了几个字”,但会污染下游的意图理解,比如在句尾凭空多出一个“好吗”,可能让指令变成疑问句。

错误计数是整个评估的地基:S是替换个数,D是删除个数,I是插入个数。把这三个数加起来,就得到总的编辑距离,也就是系统一共犯了多少处“词级错误”。三个数分别统计还有一个好处——当WER居高不下时,工程师能一眼看出主要矛盾是哪种错误,是发音混淆导致的替换多,还是静音检测不佳导致的插入多。

张老师把不同颜色的便签分别计数,不是为了惩罚学生,而是为了知道该给谁加练什么。语音工程师做错误类型分析,同样是为了精准定位:替换多就调声学模型,删除多就查音频截断,插入多就查端点检测。三类错误的区分,让优化不再是瞎猜。

计算流程:动态规划对齐文本

张老师批改时最头疼的一步,不是数错误,而是“对齐”。原文是“我 想 吃 苹果”,小明写的是“我今天想吃香蕉”,这两个句子长度都不一样,怎么知道哪个字对应哪个字?她必须先在脑子里把两行文字错开摆放:今天没有对应位置,只能悬空挂上去;苹果和香蕉对上了但内容不同。这一步放到计算机里,就叫文本对齐(Alignment)。

计算机找最优对齐用的是一套经典算法——动态规划。它把一个复杂问题拆成小问题:假设已经知道前几个词的最佳对齐错误数,就能递推算出下一个词的对齐。具体实现就是计算两个序列之间的最小编辑距离(Levenshtein Distance),只需三个操作:删除一个词、插入一个词、替换一个词。WER算法和这个距离本质上是一回事。

计算完整个表格后,还要从右下角回退到左上角,把每一步是替换、插入还是删除记录下来,这样才能得到S、D、I的具体数值。整个过程中,N是参考词数,所以无论识别结果输出多少词,分母都不变。

张老师发现,只要对齐方法固定,批改结果就稳定;如果每次批改的对照方式都不一样,分数就没有意义。WER也正是依赖动态规划给出了唯一确定的对齐方案,才能让不同系统、不同版本的识别效果在同一个尺子上比长短。

d[i][j]=min⁡{d[i−1][j]+1,  d[i][j−1]+1,  d[i−1][j−1]+cost(ai,bj)}\displaystyle d[i][j] = \min\left\{ d[i-1][j] + 1,\; d[i][j-1] + 1,\; d[i-1][j-1] + \mathrm{cost}(a_i,b_j) \right\}
通俗含义:d[i][j] 表示“参考前 i 个词”到“识别前 j 个词”最少需要几次插入、删除、替换操作。取三种走法的最小值。
  1. d[i][j] 的含义表示参考句前 i 个词与识别句前 j 个词的最小编辑距离,是整个对齐过程的子问题答案。
    d[i][j]d[i][j]
  2. 删除操作参考词 a_i 在识别结果中缺失了,代价是 1,所以从 d[i-1][j] 加 1 推过来。
    d[i−1][j]+1d[i-1][j] + 1
  3. 插入操作识别词 b_j 是多余编造的,代价是 1,所以从 d[i][j-1] 加 1 推过来。
    d[i][j−1]+1d[i][j-1] + 1
  4. 替换或正确匹配把 a_i 和 b_j 对应起来,如果相同代价为 0,如果不同则替换代价为 1。
    d[i−1][j−1]+cost(ai,bj)d[i-1][j-1] + \mathrm{cost}(a_i,b_j)

CER对比:中文按字,英文按词

张老师带两个班:英文班听写单词,中文班听写生字。英文班批改时,她按“词”来数——写错一个单词算一处;中文班批改时,她按“字”来数——写错一个汉字算一处。如果反过来,英文按字母数、中文按词数,批改规则就会变得非常别扭。语音识别评估也有同样的讲究。

对英文、法文这类以空格自然分词的语言,WER很自然,因为每个词有明确边界。但中文没有空格,“我想吃苹果”到底算一个词、两个词还是三个词?先用分词工具切分,再算WER,分词本身的错误会混入识别错误,导致分数失真。所以中文语音识别界更常用CER(Character Error Rate,字错误率),以汉字为基本单位,天然稳定、无需分词。

选择策略很简单:语言的基本书写单位是什么,就按什么统计。英文按词、中文按字、日文往往还要混合考虑假名与汉字。粒度差异会直接影响分数高低——同样一个识别结果,按词算和按字算出来的错误率可能差好几个百分点,汇报时必须明确标注用的是WER还是CER,否则就像用两套标准给同一篇作业打分。

张老师最后总结了一个批改口诀:改英文数词,改中文数字。语音工程师也要记住这个口诀,拿到一个中文语音识别测试集,先想清楚该报WER还是CER。多数中文ASR论文和产品用CER,就是因为字符粒度最稳定;只有做中文分词评测时,才会去讨论词级别的指标。

CER=Sc+Dc+IcNc×100%\displaystyle CER = \frac{S_c + D_c + I_c}{N_c} \times 100\%
通俗含义:把每个汉字当成一个“词”,套用WER的逻辑,计算字符级错误率。
  1. S_c(字符替换数)参考文本中的某个汉字被识别成另一个汉字的个数。
    ScS_c
  2. D_c(字符删除数)参考文本中的某个汉字在识别结果里消失的个数。
    DcD_c
  3. I_c(字符插入数)识别结果中多出来的、参考文本中不存在的汉字个数。
    IcI_c
  4. N_c(参考字符总数)标准答案的汉字总数,作为计算分母。
    NcN_c

语言差异:跨语言别直接比

张老师今年还带了一个日语班,月底她把三个班的平均错误率贴在墙上,结果英语班老师不服气:日语的音节结构简单、单元音清楚,当然容易听写;英语光时态就有几十种写法,听写难度不是一个量级。张老师恍然大悟:不同语言的“听写难度”本就不一样,跨班比较分数毫无意义。

语音识别领域同样如此。英文词形变化复杂(go、went、gone),识别器容易在词形上出错,但英文有空格分词,词边界清晰;中文没有词边界,而且同音字极多,“shì“可以是”是、事、市、试”,声学上极度混淆;日文假名发音规整但汉字读法多变。这些语言特性都会直接改变WER的绝对数值。

还有一个隐性因素是词汇复杂度。评估所用的词表越大、生僻词和专有名词越多,OOV(词表外单词)出现的概率越高,WER自然越差。一个只覆盖日常对话的测试集,和一个充满专业术语的医疗听写测试集,即便都是中文,WER也会天差地别。因此,跨语言甚至跨领域的WER绝对数值,都不能直接拿来对比“谁更先进”。

张老师后来只在班级内部比较这次和上次的进步幅度,跨班比较则只看排名趋势不看绝对分数。语音工程师也应养成这个习惯:汇报WER时永远附带数据集名称和语言,比较模型好坏时用同一份测试集进行A/B回归,而不是拿自家中文的CER去对标论文里英文的WER。

基准数据集:一张统一的考卷

要让不同学生比较成绩,最公平的办法是大家考同一张卷子。张老师每次月考都是全年级统一命题:同样的课文、同样的难度、同样的评分标准。语音识别领域也有这样的“月考卷”——基准数据集(Benchmark Dataset),它是预先录制好、人工标注好参考文本的语音集合,专门用来统一衡量不同语音识别系统的水平。

英文领域最著名的基准数据集是LibriSpeech,它包含约960小时英文朗读语音,来自超过2000位朗读者,内容取自有声书。它划分了test-clean(录音干净)和test-other(录音有噪声干扰)等子集,用来分别考验模型在理想和困难条件下的表现。中文领域则常用AISHELL系列,其中AISHELL-1约178小时普通话,涵盖400位说话人的室内录音,覆盖新闻、演讲、生活等场景,是中文ASR研究和产品评测的常见选择。

在统一数据集上对比模型改进效果时,工程师经常用一个衍生指标——相对错误率下降(Relative Error Reduction)。它不是看WER下降了几个百分点,而是看下降了相对于原本基线的比例,这样能更公平地衡量“进步幅度”。

张老师深知,月考卷的难度必须保持稳定,否则今年题难、明年题简单,学生的进步就看不出来。语音工程师使用基准数据集时也要做到“固定考卷”:训练数据可以变,但评测集必须锁死,说话人不进训练集,这样每次跑出来的WER才有前后对比的意义。

RED=WERbase−WERnewWERbase×100%\displaystyle \text{RED} = \frac{WER_{\text{base}} - WER_{\text{new}}}{WER_{\text{base}}} \times 100\%
通俗含义:如果把原本的错误率当作“100分的起点”,新系统比老系统少犯了多少百分比的错误。
  1. WER_base(基线错误率)优化前模型的词错误率,作为对比的基准。
    WERbaseWER_{\text{base}}
  2. WER_new(新模型错误率)优化后模型在同一测试集上的词错误率。
    WERnewWER_{\text{new}}
  3. 差值(分子)基线与新模型的错误率之差,表示绝对下降量。
    WERbase−WERnewWER_{\text{base}} - WER_{\text{new}}
  4. 除以基线(分母)把下降量换算成相对于基线的比例,体现“进步了百分之几”。
    WER差WERbase\frac{WER_{\text{差}}}{WER_{\text{base}}}
  5. × 100%转为百分比,例如从10%降到8%,RED就是20%,说明错误少了五分之一。
    ×100%\times 100\%

评估优化:从批改到提分

批改听写只是第一步,张老师的真正价值在讲评环节。她会翻看便签统计:小明替换错误最多,集中在“n“和”l“不分;小红插入错误多,总在句尾加”嗯”。针对这些弱点,她布置了专项练习。语音识别工程师也应如此,把WER当成诊断工具,而不是KPI终点。

错误分析(Error Analysis)是优化的起点:把测试集中所有替换错误的词对做成统计表,会发现高频混淆组合,比如“机场”经常被听成“剧场”。针对这类问题,可以在语言模型中加入领域热词(Hotwords),把“机场”这类专有名词的权重提高;也可以补充包含类似发音的音频做数据增强,微调声学模型。更常见的是在解码阶段加入热词列表,让系统在出现候选词时优先考虑业务关键词。

整个流程是一个迭代闭环:先跑测试集算WER → 做错误分析定位高频错误 → 针对性地调模型、改词典、加热词 → 再跑同一份测试集回归,看WER是否下降、有没有引入新错误。这个循环周而复始,对应着张老师“批改—分析—讲评—再测试”的教学节奏。

评估优化的终极目标不是把WER刷到某个绝对值,而是在真实场景中让用户听得懂、任务办得成。张老师班里最受学生欢迎的老师,不是把分数抠得最严的那个,而是能从错误中帮学生找到进步路径的那个。WER正是这样一面镜子:它照出系统的弱点,但真正的提分,永远来自紧接着的分析和行动。

AI 应用场景

呼叫中心质检与ASR厂商选型

阶段:评估与选型

解决的问题:呼叫中心每天产生海量通话录音,人工抽听质检成本高,而不同ASR供应商的识别效果参差不齐。传统做法是凭感觉试用,无法量化好坏。通过构建带人工标注的测试集,用WER统一评估各厂商效果,就能用数据做决策。

具体案例:某银行客服中心挑选了1000通真实通话并转写成参考文本,分别测试甲乙两家ASR服务。甲厂WER为8.2%,乙厂为9.6%,甲厂胜出。随后针对“信用卡、分期、年费”等高价值词加入热词,甲厂WER进一步降到6.5%,上线后质检系统的转写可用率大幅提升。

视频字幕自动生成质量监控

阶段:产品QA与迭代

解决的问题:视频平台用ASR自动生成字幕,如果错误率过高,观众体验会断崖式下降。人工逐条核对字幕不现实,需要一套自动化的质量闸门。

具体案例:某知识类视频平台为每个自动字幕任务计算CER,并设置阈值:CER低于10%的字幕直接发布,高于15%则转人工校对,中间区间由审核员抽检。上线该机制后,用户对字幕的投诉率下降了42%,同时也为训练新模型积累了丰富的高质量语料。

车载导航语音识别调优

阶段:模型调优

解决的问题:用户在车上说“导航到机场”,系统却识别成“导航到剧场”,这种替换错误会直接导致导航目的地错误,属于高风险场景。传统靠用户反馈收集问题,效率低。

具体案例:某车厂语音团队对导航指令测试集做错误分析,发现高频混淆词对集中在“机场/剧场、加油站/加气站”等近音地点词。团队将全国主要地名和POI名称加入热词表,并补充带噪声音频微调声学模型,导航指令场景WER从12%降至7%,因识别错误导致的导航投诉减少六成。

Python 演示

python53 行
# -*- coding: utf-8 -*-def edit_distance_count(ref, hyp):    n, m = len(ref), len(hyp)    dp = [[0] * (m + 1) for _ in range(n + 1)]    for i in range(n + 1):        dp[i][0] = i    for j in range(m + 1):        dp[0][j] = j    for i in range(1, n + 1):        for j in range(1, m + 1):            cost = 0 if ref[i - 1] == hyp[j - 1] else 1            dp[i][j] = min(dp[i - 1][j] + 1,                           dp[i][j - 1] + 1,                           dp[i - 1][j - 1] + cost)    s = d = ins = 0    i, j = n, m    while i > 0 or j > 0:        if i > 0 and j > 0 and dp[i][j] == dp[i - 1][j - 1] + (                0 if ref[i - 1] == hyp[j - 1] else 1):            if ref[i - 1] != hyp[j - 1]:                s += 1            i -= 1            j -= 1        elif j > 0 and dp[i][j] == dp[i][j - 1] + 1:            ins += 1            j -= 1        else:            d += 1            i -= 1    rate = (s + ins + d) / max(1, n) * 100.0    return rate, s, d, ins  def word_error_rate(ref, hyp):    return edit_distance_count(ref.split(), hyp.split())  def char_error_rate(ref, hyp):    ref_c = list(ref.replace(" ", ""))    hyp_c = list(hyp.replace(" ", ""))    return edit_distance_count(ref_c, hyp_c)  if __name__ == "__main__":    ref_en = "i want to eat an apple"    hyp_en = "i want to eat apple"    wer, sub, dele, ins = word_error_rate(ref_en, hyp_en)    print("WER = %.2f%%  SUB=%d DEL=%d INS=%d" % (wer, sub, dele, ins))     ref_zh = "今天天气真好"    hyp_zh = "今天天气真好啊"    cer, sub2, dele2, ins2 = char_error_rate(ref_zh, hyp_zh)    print("CER = %.2f%%  SUB=%d DEL=%d INS=%d" % (cer, sub2, dele2, ins2))
目的:用动态规划实现最小编辑距离,分别计算英文WER和中文CER,并输出替换、删除、插入三类错误的次数。
  1. dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1, dp[i - 1][j - 1] + cost)核心的编辑距离递推,分别对应删除、插入、替换三种操作。
  2. cost = 0 if ref[i - 1] == hyp[j - 1] else 1两个词相同则替换代价为0,不同则代价为1。
  3. while i > 0 or j > 0:从表格右下角回溯,还原每一步对齐操作。
  4. if dp[i][j] == dp[i - 1][j - 1] + (...)优先按“替换/正确”路径回溯,并统计替换次数。
  5. elif j > 0 and dp[i][j] == dp[i][j - 1] + 1:识别词多出来了,记为插入错误。
  6. else:参考词缺失,记为删除错误。
  7. rate = (s + ins + d) / max(1, n) * 100.0计算WER/CER,max(1, n)避免参考为空时除零。
  8. ref.split()英文按空格切分得到词序列。
  9. list(ref_c)中文去掉空格后按字符切分,实现字粒度计算。
  10. if __name__ == "__main__":提供可执行入口,直接运行即可看到WER和CER示例输出。

常见误区

误区错误率嘛,最高也就是100%,就像考试不可能错得比题目还多。如果AI报告说WER是120%,那一定是系统出bug了。

正解WER是“错误操作次数除以参考词数”,而替换、删除、插入的合计次数完全可以大于参考词数。比如参考文本只有10个词,但识别结果画蛇添足多输出了5个词,再加上替换错误,错误总数可能达到12,WER就是120%。这就像张老师遇到一个特别啰嗦的学生,听写短文时不仅写错,还自作主张加了一大堆原文没有的话,错误点数自然能超过原文的字数。

为何常见:人们习惯把“正确率”和“错误率”看作互补的两端,默认二者之和等于100%,但WER计算的是编辑距离类错误,并不受正确率上限约束。

误区既然英文用WER,中文也切成词算WER不就行了?反正分词工具随便调一个就能用。

正解中文没有天然空格,分词本身是一个独立且容易出错的环节。分词错会被混入ASR错误,导致WER虚高,而且不同分词方式结果不可复现。所以主流通用做法是中文用CER(按字),字就是最稳定的基本单元。好比张老师批改英文听写按词数,批改中文听写按字数数,硬要用英文的规则套中文,标准就乱了。

为何常见:很多资料以英文ASR为例,初学者容易把WER当作“唯一正确指标”,忽略了语言单位差异。

误区测试集上跑出WER 0%,太棒了,系统彻底毕业,可以直接上线、不用再管了。

正解WER为0只说明在当前测试集上没出错,并不代表真实世界完美。一是测试集覆盖有限,换个领域、换个口音可能立刻翻车;二是WER不区分语义,把“马铃薯”识别成“土豆”会被记作替换错误,反之如果测试集恰好不包含这类同义词,也可能“侥幸满分”。张老师不会因为一次听写全对就让小明免考一学期——只有持续的、多样化的考卷才能证明真实水平。

为何常见:把评估指标当成绝对真理,忽略了测试集的代表性和指标的语义盲区。

误区网上论文里英文WER能做到4%,我们中文系统WER是8%,说明我们技术落后一大截,得赶紧抄人家的方案。

正解不同语言的分词单元、音系复杂度、词表规模完全不同,不同数据集的噪声、口音、领域也千差万别。英文4%和中文8%的差距,可能部分来自语言本身的难度差异,而非技术代差。张老师不会拿英语班的优秀率和中文班的优秀率直接排名,因为卷子根本不是同一张。正确的做法是用同一份数据集、同一种语言做A/B对比,或者使用相对降幅RED来表述改进。

为何常见:媒体和论文常只展示一个孤立数字,读者容易忽略背后的评测条件,从而产生不客观的横向比较。

面试题

Q1. WER公式中的N指的是什么?

单选题 · easy

  • A.模型参数总数
  • B.参考文本词数← 正确答案
  • C.识别结果词数
  • D.训练语料词数

答案:B。WER的分母是参考文本(标准答案)的总词数N。之所以不用识别结果词数做分母,是因为识别结果可能插入大量多余词汇,会把错误率稀释掉。就像批改作业时,错误率要按原文长度算,不能按学生擅自加长的篇幅算。

Q2. 把参考文本中的“苹果”识别成了“香蕉”,这属于哪类错误?

单选题 · easy

  • A.替换错误← 正确答案
  • B.插入错误
  • C.删除错误
  • D.完全正确

答案:A。“苹果”和“香蕉”在对应位置上发生了词形改变,属于替换错误,记为S。插入错误是凭空多词,删除错误是原文词消失。张老师批改听写时,把“苹果”听成“香蕉”就是典型的写错字。

Q3. 参考文本共有8个词,识别后对齐发现插入错误2个,替换和删除均为0,其WER是多少?

单选题 · easy

  • A.25.0%← 正确答案
  • B.20.0%
  • C.40.0%
  • D.8.0%

答案:A。WER=(S+D+I)/N=(0+0+2)/8=25%。插入错误同样会推高WER,即使识别结果把该说的词都说对了,只要多说了废话,错误率就会增加。这就像学生听写时在作业本上画蛇添足多写了两处。

Q4. 参考文本是“今天天气真好”,识别结果是“今天天气真好啊”,CER约为多少?

单选题 · mid

  • A.约16.7%← 正确答案
  • B.约20.0%
  • C.约25.0%
  • D.约0.0%

答案:A。参考文本共6个汉字,识别结果多出了一个“啊”,属于插入错误。CER=(0+0+1)/6≈16.7%。中文按字粒度统计时,每个汉字都是独立的计数单元。

Q5. WER计算中,对参考文本和识别结果进行对齐的核心算法是什么?

单选题 · mid

  • A.最小编辑距离← 正确答案
  • B.哈希关键词匹配
  • C.朴素贝叶斯分类
  • D.K近邻聚类

答案:A。WER依赖动态规划求最小编辑距离,用删除、插入、替换三种操作的最小次数来确定最优对齐。哈希、贝叶斯、K近邻都不解决序列对齐问题。就像张老师需要把两行文字错位摆放、找最优对应关系,靠的是“逐字对照的规划方法”。

Q6. 下列哪种情况会导致WER超过100%?

单选题 · mid

  • A.大量插入错误← 正确答案
  • B.一个词替换错误
  • C.所有词识别正确
  • D.仅有删除错误

答案:A。WER的分子是替换+插入+删除的总次数,当插入和替换错误足够多时,错误总数会超过参考词数,WER就能超过100%。例如参考文本10个词,识别结果多出15个词,错误率就很高。张老师遇到一个特别能编废话的学生,犯错误点比原文字数还多。

Q7. 下列哪些属于WER统计中的错误类型?

多选题 · mid

  • A.替换错误← 正确答案
  • B.插入错误← 正确答案
  • C.删除错误← 正确答案
  • D.合并错误

答案:ABC。WER只统计三种错误:替换(S)、插入(I)、删除(D),三者之和就是编辑距离。“合并错误”不是WER的标准错误类型。三类错误就像张老师便签上的三种标记:写错字、多写字、漏写字。

Q8. 中文ASR主流使用CER而不是直接用WER,最关键的原因是什么?

单选题 · hard

  • A.中文没有天然词边界← 正确答案
  • B.汉字数量比英文多得多
  • C.中文句子普遍过短
  • D.中文参考文本难以获取

答案:A。中文文本没有空格,无法天然分词,如果先分词再算WER,分词误差会混入识别误差,且不同分词策略结果不稳定。CER按字计算,天然稳定、可复现。就像张老师改中文听写按“字”数,而不是先猜学生想要分成哪些词再判错。

Q9. 下列哪些做法能够有效提升垂直领域ASR的WER表现?

多选题 · hard

  • A.加入热词定制← 正确答案
  • B.微调声学模型← 正确答案
  • C.扩展领域语料← 正确答案
  • D.忽略全部错误

答案:ABC。热词可提升专有名词识别率,微调声学模型可适配场景口音,扩展领域语料可降低OOV概率,三者都能降低WER。忽略错误只是掩盖问题,不会提升识别质量。这就像张老师针对班级薄弱项布置专项练习,而不是对错误视而不见。

Q10. 参考文本共12个词,识别结果共15个词,对齐后替换1个、插入3个、删除0个,WER是多少?

单选题 · extreme

  • A.33.3%← 正确答案
  • B.30.0%
  • C.25.0%
  • D.37.5%

答案:A。WER=(S+D+I)/N=(1+0+3)/12=33.3%。注意分子是错误总次数,与识别结果总词数15无关,分母始终是参考词数12。插入3个、替换1个,共4处错误,除以12约为33.3%。