Hugging Face 把印度英语和印地语纳入 Open ASR Leaderboard,Monsoon 数据集 4888 名发言人来自 428 个县、315 到 582 款手机、六大方言区都有配额。真正值得抄的不是「多加一门语言」,而是它把评测集从「录了多少小时」翻译成「覆盖多少人」的那套方法——中文 ASR 评测欠的正是这一环。
本文基于 Hugging Face 官方博客 The Open ASR Leaderboard Adds Its First Global South Language(2026-08-28,作者 Vaibhav Srivastav)翻译整理并延伸。原文英文,本文加入了中文 ASR 评测现状的对照与三条落地提示,是编辑二次组织的内容,不是逐句翻译。
2026 年 8 月末,Hugging Face 把两个新评测集塞进了 Open ASR Leaderboard:Monsoon en-IN 与 Monsoon hi-IN。前者是印度英语,后者是印地语——这是这个多语言榜单收进来的第一门印度语言,此前榜上只有英语与欧洲若干语种。印地语的使用人口超过五亿,仅是「把数字凑齐」这件事,就迟到了很多年。
但真正值得翻出来讲的不是「新增一门语言」这条新闻本身。Hugging Face 团队顺手交出的是 Monsoon 数据集——4888 名发言人、九个变量维度、公开与私有双分片,还给印地语专门做了一套 lattice 参照。这套方法几乎每一处都是对现有语音评测习惯的反手一击,也几乎每一处都能直接借鉴到中文语音识别的评测建设上。
下面把它拆开讲。
Hugging Face 那篇公告开头一句话,是这次发布真正的立论:Benchmarks decide what gets built.——排行榜决定了什么东西会被造出来。
这不是空话。开源语音识别世界的通行做法是:谁在 LibriSpeech、Common Voice 或者中文的 AISHELL 上把 WER(字错率)压低半个百分点,谁就能拿到关注、被下游任务采纳、被下一轮论文引用。而榜单不测量的能力——比如强噪声、儿童声、老年人语速、方言口音、少数族群命名——就在无声中被优化过程忽略掉,因为没人为「跑分不涨」的努力买单。
Open ASR Leaderboard 过去一年做了不少功夫,把「一个数字」变得更可信:
这些改进让 WER 更难被作弊。但 WER 仍然只是一个数字。原文提到,学术界至少有两条工作线反复指出 ASR 错误率在人群之间分布并不均匀:Koenecke 等人 2020 年的《Racial disparities in automated speech recognition》发现主流商用 ASR 对 Black speakers 的错误率约为对 White speakers 的两倍;另一篇《Quantifying Bias in Automatic Speech Recognition》进一步发现性别、年龄、口音都会带来系统性差异。
这些差异在榜单上是看不见的。不是榜单在藏,是评测集本身根本没记录「说话人是谁」——测试集只写了「说了什么」和「录了多久」。
这就是 Monsoon 想改的第一件事。
Hugging Face 团队给 Monsoon 立的第一条设计原则很短:A test set can only expose a failure mode it varies along.——评测集能暴露的问题,只在它有变化的那些维度上。
换句话说:如果你的测试集全是安静环境下 25 岁北京男性用同款手机录的话,那你的模型在广东阿姨用红米走在菜市场里说话时表现有多差,你永远看不到,因为你的评测集没在这几个变量上「变过」。
Monsoon 明确沿九个轴去分层采集:
以上四条锚定「说话人是谁、他要说什么」,剩下五条锚定「怎么录、参照怎么给」:
免费获取企业 AI 成熟度诊断报告,发现转型机会
这九个维度对应九种「一个平均值可能是对的,但对某个子群来说是错的」情形。传统语音评测集大多是「找到什么音频就用什么音频」,Monsoon 反过来先定义「这里必须有多少种变化」,再按变化去招募。
采集方法直接从九个维度倒推出来:地理靠跨县招募,不靠给少数几个采集地加时长;设备与环境靠让贡献者用自己的手机在自己的环境里录,不发统一硬件;词汇与语速靠提示词推向自然对话,不给稿子。年龄与性别每个人核验一遍。
Monsoon 一共不算很多小时,但发言人极多。团队自己的话是:small measured in hours and large measured in speakers.——按小时算是小,按发言人算是大。这句话背后是三条更硬的原则。
第一,没有一个声音撑起分数。 十个最大贡献者加起来只占总时长的 2.8% 到 6.8%,超过一半的发言人在整个数据集里只出现一次。这意味着一个模型在 Monsoon 上拿到的成绩,是几百个不同嗓音的平均,而不是少数几个人反复说话的产物。对比之下,同等时长的语音评测集普遍是另一种做法:找几十个人各录很久。前一种做法能暴露的是「模型对没听过的嗓音泛化如何」,后一种做法能暴露的是「模型对已经听过很多遍的嗓音是不是还听得清」——是两个完全不同的问题。
第二,没有一个地区或设备撑起分数。 印度英语公开分片跨 428 个县、跨 315 到 582 款手机,且没有任何一款手机占超过 2.1% 的片段。为什么这条重要?因为麦克风频响会给模型留下指纹——用一款手机录成千上万小时的语料,模型会「学会这款麦克风」,而不是学会人声本身。当你换一台设备,性能会掉一截。用标准硬件采集的语料库过拟合到一款麦克风上,这条错误在 Monsoon 里天然被封住了。
第三,Monsoon 的「印度英语」不是某一种口音。 六大方言区都在:公开分片里南部占 35%、东部 18%、中部 18%、北部 16%、西部 11%。这不是宣称多样性,而是把口音分布写进元数据里,让每个人都能看清自己在做的是什么。
这三条合起来说的是同一件事:评测集的「均值」应该是对广大人群的均值,而不是对少数说话人的过拟合。 一旦你按小时数堆规模,就很容易掉进「录 10 个人各 100 小时」的陷阱——数字看着大,但每一个数字都在为同一批人过拟合背书。
英文评测集大多用一个归一化器(normaliser)来抹平拼写差异:把 colour 和 color 判等,把 1st 和 first 判等。这个套路在印地语上跑不通——不是软件不够好,是变体本身不是两套惯例之间的固定映射,而是几十种拼法散在一段文字里,同一个词今天这样写明天那样写。
Monsoon 的解法很直接:给印地语参照做一份 lattice——转写的每一段,都列出所有被接受为正确的拼法。评测时不再要求模型输出一个唯一答案,而是判断模型输出的每一段是否落在那一段的允许集合里。
这套思路对中文 ASR 有直接的对应场景:
中文评测目前普遍靠事先做 text normalization 把这些消歧掉。但 normalization 会把两个真正意义不同的输出也判等,本质上是牺牲精度换一致性。lattice 的做法是让参照本身承认变体,而不是把变体统一到某一种写法——中文语料完全可以照抄。
Monsoon 每段音频带 18 列,其中 12 列是元数据:年龄、性别、职业、教育、婚姻、收入档、手机品牌、当前城市、在当地生活多少年,等等。大多数公开语音评测集则只有三列:编号、转写、时长。
这个对比一眼就看得出问题所在:一个不写「说话人是谁」的评测集,就永远无法回答「模型在哪种人身上更差」。你在这样的评测集上做得再好,也只是拿到了一个总平均——总平均可以掩盖任何一类系统性歧视。
这也是为什么 Monsoon 把「同意授权使用」这件事事先做完:贡献者知道自己被记录了哪些字段,也同意这些字段公开。这不是走过场,因为一旦评测集里带上敏感字段,「谁做的评测」「怎么招募的」「同意书怎么签的」都会成为下游合规审查的对象。Monsoon 选择直接把这一层做完,让下游用起来没有法律负担。
讲完 Monsoon,来看中文语音识别评测的现状——这是原文没有的部分。
中文开源 ASR 评测集大致有这样一条脉络:清华的 THCHS-30(读稿)→ 希尔贝壳的 AISHELL 系列(AISHELL-1 为普通话朗读,之后陆续有多说话人合成、多设备阵列等专门变体)→ 微软/西工大的 WenetSpeech(万小时级弱标注,来自网络视频与播客)→ 清华 KeSpeech(覆盖普通话与多个方言区)→ Mozilla Common Voice zh-CN(众包)。这一路的进展主要在「小时数」与「场景」两个维度上:从读稿到自然对话,从单一采集设备到远场阵列,从普通话到方言。
从「小时数」看,中文这边一直在追赶,甚至比不少小语种更充裕。但对照 Monsoon 的九个维度,几个基础问题就露出来了:
这不是要否定中文 ASR 评测过去十年的建设。AISHELL-1 在它那个时代是重要的公开资源;WenetSpeech 用弱标注解决了训练规模问题;KeSpeech 是中文方言评测极为稀缺的公开集。但从「评测决定模型往哪走」这个角度看,如果这些榜单只测普通话朗读、只记录音频与转写、模型能拿到已知说话人的所有音频——那么中文 ASR 模型的优化方向就永远只在「让训练分布内的普通话朗读更准」这一小块地皮上打转。
把 Monsoon 拆完再对照中文现状,能提炼出三条可以直接放进项目里的做法:
第一,说话人级去重是底线,不是加分项。 训练集与测试集之间,同一个人的音频不能同时出现——无论你以为「都是普通话就无所谓」。缺了这一条,模型可能只是在识别熟人的嗓音,而不是在识别语言。任何声称做中文语音识别评测的公开集,如果做不到 speaker-disjoint,就不该被拿来做模型选型的依据。
第二,参照要能容纳变体,而不是靠 normalization 把变体抹平。 中文语料的数字、英文、标点、专名、繁简都有多种合法写法,事前用规则把它们统一到某一种会牺牲评测精度。可以照抄 Monsoon 的 lattice 做法:给参照的每一段列出所有被接受的写法,评测时判段落是否落在允许集合里。做这件事的边际成本,比训练一版新模型低得多。
第三,元数据不是奢侈品,是评测集的一等公民。 至少要把年龄档、性别、地区(省或经济带)、方言背景、录音设备类型这五项记录下来。这五项决定了你能不能回答「模型在谁身上更差」——而这个问题不能回答,就意味着模型的公平性根本没进入优化目标。
这三条都不是特别难做,但每一条都需要在评测集设计阶段就想清楚。事后想加人口学字段,得联系上每一位发言人重新签同意书;事后想做 speaker-disjoint,得把整个测试集重招;事后想做 lattice,得逐段回过所有参照。这些成本一旦错过就补不回来。
把语音识别的成绩单从「一个 WER」升级到「一组人口分层的 WER」,本质是把一个数字问题换成一个分布问题。工程上,这件事没有本质难度。评测集的问题从来不是「模型不够聪明」,而是「我们没有想好要测量什么」。Monsoon 那份九维设计、四分片安排、说话人级去重、印地语 lattice 参照,加起来就是一份可以直接抄的施工图。
中文 ASR 领域的下一步公开评测集,如果还只交出「多少小时、多少说话人」这两个数字,那就是主动放弃回答「模型对哪些人更差」这个问题的能力。而这个问题,恰恰是接下来这类模型能不能进医院、进政府热线、进老人陪伴设备的关键——技术上早就不是瓶颈,卡住的是评测。
Monsoon 的贡献在这里:它把这份施工图第一次以公开评测集的形态交了出来。它不完美,也承认自己按小时算不算大,但它把「一份合格的公平性评测集应该长什么样」定义清楚了。这份定义值一份榜单席位,也值一次认真的翻译。
本文为翻译与延伸,Monsoon 数据集与九维设计部分来自 Hugging Face 官方博客(作者 Vaibhav Srivastav),中文 ASR 评测现状对照与三条硬提示为本站编辑观察,欢迎指正与讨论。
关注公众号

扫码关注,获取最新 AI 资讯
3 步完成企业诊断,获取专属转型建议
已有 200+ 企业完成诊断