ASR 数据质量流水线:伪标签、切分与可追溯评测

ASR 数据工程最容易被低估。模型指标波动时,很多人先调模型结构,但真正的问题常常在数据:切分不稳、伪标签质量不清、噪声样本混入、热词和实体覆盖不足、评测集不可追溯。

一条可用的数据质量流水线,核心不是“多收一点音频”,而是让每个样本都能解释来源、标签、置信度和进入训练集的理由。

要解决的问题

语音数据的成本高,人工标注慢。pseudo-label 可以快速扩大数据规模,但也会把模型错误重新灌回训练集。切片策略、静音边界、重采样、文本规范化和标签清洗都会影响最终 WER。

如果没有质量记录,训练效果变差时无法判断是模型退化,还是新数据污染。

主线判断

ASR 数据质量首先是标签契约问题,其次才是过滤规则问题。

音频片段、文本标签、CTC blank 边界、噪声标记、伪标签来源和评测回流必须指向同一个训练目标。只要这些对象没有对齐,数据越多,模型越容易学到互相冲突的监督信号。很多 WER 波动看起来像模型不稳,本质上是数据账本没有把“为什么保留这条样本”说清楚。

最小抽象

可以把 ASR 数据样本看成一个 ledger entry:

1
2
3
4
5
6
7
8
9
audio_id
segment_range
transcript
pseudo_label_source
confidence
quality_flags
normalization_version
reason code
eval_split

这里的 reason code 很关键。保留样本、丢弃样本、降权样本都应该有原因,例如低置信、重叠语音、噪声过强、文本规范化失败、实体疑似错误。

工程闭环

流水线至少分四层。

第一层是音频质量画像:采样率、时长、静音、截断、音量、噪声、重复样本。

第二层是文本规范化:大小写、标点、数字、热词、实体、语言混杂和非法字符。

第三层是伪标签仲裁:多模型一致性、置信度、CER/WER 估计、人工抽检和 reason code。

第四层是评测追踪:每次训练记录数据版本、过滤规则、评测集版本和失败样本分布。

只有这四层都可追溯,才能在指标波动时定位到具体数据决策。

反直觉点

最容易踩坑的是把噪声标签当成“忽略”。例如在 transcript 中加入 NOISE 这类 token,看上去是在告诉模型某段是背景声,但对 CTC 来说它仍然是一个 non-blank 目标。模型会被训练成在某些声学区域输出一个显式 token,而不是在不确定区域保持 blank。

这会造成两个后果。第一,背景声、非目标人声和转写文本被塞进同一条标签通道,模型不知道哪些是要识别的文字,哪些只是样本状态。第二,评测时如果再把这些 token 过滤掉,就形成了训练目标和评测目标不一致:训练时要求输出,评测时又假装它不存在。

pseudo-label 也有类似问题。多模型一致只能说明候选文本相近,不能说明切片边界、重叠语音、ITN 和热词都可靠。伪标签要进入主训练集,必须带上来源、置信度、过滤原因和后续评测回流。

排障路径

当一轮训练变差时,不要先改模型结构。先把样本按数据来源、过滤规则、规范化版本、音频时长、信噪比分桶,再看 WER/CER 的插入、删除、替换分别在哪些桶里变坏。

如果删除错误增加,优先查切片边界、静音过长、低能量片段和 blank 学习是否被污染。如果插入错误增加,优先查噪声片段、非目标人声、重复音频和文本规范化。若实体或热词召回下降,重点查词表、ITN、伪标签仲裁和人工抽检样本。

关键是保留被过滤掉的样本列表。很多数据规则看起来提高了总体指标,却可能删掉了难例;短期变好,长期会让模型越来越不认识真实输入。

评测设计

一个可复盘的 ASR 数据评测至少需要三张表。样本表记录 audio_id、segment_range、transcript、pseudo_label_source、confidence、quality_flags、normalization_version 和 reason code。指标表记录 WER/CER、插入、删除、替换、关键实体召回、长短音频分桶和噪声分桶。回流表记录每次训练后哪些样本变差、哪些规则命中、哪些样本被移入或移出。

这三张表要能 join 到一起。只有这样,评测才不是“模型掉点了”,而是能说清楚“某一类数据决策导致某一类错误上升”。数据质量流水线的终点不是干净数据集,而是可解释的数据决策。

小样本推演

假设一次训练后总体 WER 只下降了 0.2,但长音频删除错误上升,短音频插入错误下降。这个结果不能简单判定为“新数据有效”。更可能的解释是:过滤规则删掉了一部分噪声短片段,让插入错误下降;同时长片段切分或 blank 边界被新标签扰动,导致删除错误上升。

这时下一步不是继续加数据,而是回到样本账本:长音频里哪些样本来自伪标签,哪些命中了噪声标记,哪些经过文本规范化,哪些在上轮被移入训练集。只要能把这些样本拉出来,模型问题就会变成数据决策问题;拉不出来,就说明流水线还没有形成闭环。

直接结论

ASR 数据质量流水线的目标不是一次性清洗干净,而是把样本生命周期变成可审计过程。pseudo-label 可以用,但必须带来源、置信度、过滤原因和评测回流。

下一步阅读:ASR 噪声下的结构化抽取评测:从文本相似到实体归因