近三百种语言的四万小时众包语音 — Common Voice 语料库

295 种语言 / 32,349,999 条片段 / 约 42,593 小时朗读语音

来源 https://commonvoice.mozilla.org/en/datasets发布时间: 2026-10-29最后更新: 2026-10-29 阅读 3
近三百种语言的四万小时众包语音 — Common Voice 语料库

信息速览

数据集名称近三百种语言的四万小时众包语音 — Common Voice 语料库
数据类型音频,转写文本,说话人元数据,切分清单
规模志愿者贡献者,自报人口统计学,无临床人群
接入方式https://commonvoice.mozilla.org/en/datasets
AI 就绪度

商用语音识别能听懂的语言,和世界上正在被使用的语言,从来不是同一个集合。前者集中在几十种有商业价值的大语种上,后者的长尾有几千种,且绝大多数没有任何可用的训练语料。造成这个落差的不是算法,是数据:录一间消声室里的专业语音要按小时付钱,而一门只有几十万使用者、且使用者大多不在科技行业里的语言,凑不出这笔预算。众包于是成为唯一在成本上说得通的路径——让说这门语言的人自己录、自己听、自己判断录得对不对,把采集成本和校验成本一起摊给社区。

Mozilla Common Voice 语料库是这条路径上规模最大、也是许可最宽松的一个。它由 Mozilla 基金会发起,志愿者在网页或手机上朗读一句给定的句子,再由另外的志愿者听这条录音、判断它和句子是否对得上;录到的音频与句子文本全部以 CC0 释出,等于直接放进公有领域。最新一版 Scripted Speech v27.0 覆盖 295 种语言、32,349,999 条片段、约 42,593 小时朗读语音。

但它有一个必须在开头就说清的落差:官方公布的 42,593 小时是"录到的"时长,不是"可用的"时长。片段要先经过社区投票校验,只有拿到两张赞成票的才进官方的训练、开发、测试集;投不满的落在 other 里,被两张反对票否掉的直接进 invalidated。汉语(中国大陆)这一语种包录到 1,074.96 小时,其中 240.11 小时是校验通过的;官方切分又只从这 240.11 小时里取 51,172 条进三个子集。把"四万小时"直接当成可训练量,是新手最容易犯的第一个错误。一屏速览见下表。

维度 内容
全名 Mozilla Common Voice,含 Scripted Speech(朗读语音)与 Spontaneous Speech(即兴口语)两条产品线
发起与运营 Mozilla Foundation(美国 501©(3) 非营利组织),数据经 Mozilla Data Collective 平台分发
当前版本 Scripted Speech v27.0,语料编号 cv-corpus-27.0-2026-09-11,平台标注发布日期 2026-09-17
上一版本 Scripted Speech v26.0,语料编号 cv-corpus-26.0-2026-06-12,2026 年 6 月发布,294 种语言
语种数 Scripted Speech 295 种;Spontaneous Speech 80 种
片段总数 Scripted Speech 32,349,999 条;Spontaneous Speech 89,754 条
录制总时长 Scripted Speech 约 42,593 小时;Spontaneous Speech 302 小时已转写并校验
全库校验通过时长 官方发布公告未给出全库汇总值,只逐语种在数据页给出
音频格式 单声道、16 比特、48 kHz MP3;汉语(中国大陆)包平均片段时长 4.54 秒
文本语料 汉语(中国大陆)包 60,191 句,其中 59,170 句已校验;英语包 1,723,245 句
切分方式 validated / invalidated / other 三个桶;train / dev / test 只从 validated 桶里取,同一说话人只进一个子集
标注与校验 每条片段最多由三名贡献者听审,先得两票赞成判为有效,先得两票反对判为无效
许可 音频与句子文本 CC0-1.0(公有领域);平台代码 MPL 2.0
下载方式 自 Common Voice 23.0 起仅通过 Mozilla Data Collective 分发,需提供邮箱地址并逐语种接受条款
明令禁止 禁止尝试识别数据集中说话人的身份;禁止转存或再次分发该数据集
典型用途 多语种 ASR 训练与评测、低资源语言建模、语种与口音识别、计算机辅助语言学习、语言复兴

§1 它要解决的具体麻烦

1.1 语音数据的成本结构与长尾语言的死结

建一个语音识别系统需要三样东西叠在一起:足够多的小时数、足够多的说话人、足够准的转写。这三样在工业界通常用钱解决——租录音棚、按小时付 speaker 酬劳、按小时付转写员酬劳。这套方案在英语、普通话、西班牙语上运转良好,因为市场能回收成本;到了一门使用者只有几十万、且大多不在付费市场里的语言,成本核算直接失败。

学术界尝试过三条替代路径,各有各的缺口。第一条是从现成音视频里切,比如议会录音、广播档案:小时数够,但说话人高度集中、录音条件单一、转写对齐质量参差。第二条是有声书与播客:文本质量高,但版权通常不允许再分发。第三条是找志愿者录:成本最低,但组织成本极高,且极易在中途断粮。

Common Voice 走的正是第三条,并且用两个设计把它的固有缺口补上了一部分。设计之一是句子先众包、再录音:朗读用的句子由社区提交、经两人审校,且必须是公有领域文本,短于 15 个词;这样文本侧的版权从源头干净了,音频侧才可能整体 CC0。设计之二是校验也众包:音频与文本是否对得上,不由主办方人工听,而由另外的志愿者投票决定。这两个设计共同决定了这个语料库的性质——它是一个靠社区规模而非靠采集预算增长的数据集,语种能不能站住,取决于有没有一群人愿意持续为它干活。

1.2 三条常见的错误期待

第一条,期待它是"高质量的录音棚语音"。它不是。录音发生在志愿者自己的浏览器里,用的是自己的麦克风、自己的房间、自己的网络。背景噪声、房间混响、削波、设备底噪都是常态,同一语种包内部的采集条件差异可以非常大。它适合训练对信道鲁棒的模型,不适合当干净的声学参考。

第二条,期待"总时长就是可用时长"。前面说过,42,593 小时是录制量。逐语种数据页给出的"validated"才是通过社区校验的部分,而 train/dev/test 又只是 validated 桶里的一个子集。汉语(中国大陆)包 852,410 条片段里 validated 桶有 190,406 条,三个训练子集合计 51,172 条——数量级上差了不止一档。

第三条,期待它的人口统计学字段可以直接用来做公平性分析。年龄、性别、口音、变体都由说话人自愿填报,是否填报完全取决于本人。汉语(中国大陆)包里 852,410 条片段中只有 61,671 条带自报性别、67,827 条带自报年龄;弗里西亚语包 159,767 条里带自报性别的是 69,093 条、带自报年龄的是 70,107 条。用这些字段切分评测集,切出来的不是人群分布,是"愿意填报的人群"分布。

1.3 它能给到的与给不到的

你的需求 它给的 够不够
低资源语言的 ASR 预训练 295 个语种包,每包自带 train/dev/test 够,但每个语种包体量差异极大,最小的语种只有几十条
多语种联合训练与迁移 统一字段、统一音频格式、统一切分口径 够,这是它最被低估的价值
语种识别 / 口音识别 accents、variant、locale 三个字段,部分语种带口音与变体标注 部分够,字段是否启用因语种而异
说话人相关任务 client_id 为哈希 UUID,可当说话人伪标签 够做粗粒度,无真实说话人元信息
自然口语 ASR Spontaneous Speech v5.0,80 语种、89,754 条、302 小时已转写校验 规模明显小于朗读部分,只够做补充与对照
强制对齐 / 音素级标注 — 不够,只有整句转写,无词级或音素级时间戳
情感、情绪、病理语音分析 — 不够,句子是朗读的、内容是随机的,无任何临床标注
声纹识别与说话人确认 client_id 可分组 不够也不合规,条款禁止尝试识别说话人身份
干净信道的声学研究 — 不够,采集条件不可控

1.4 你的处境与它能帮到的事

你的处境 它能帮你什么 下一步该做什么
你要为一门没有语料的语言做 ASR,手上什么都没有 该语种若已在 295 种之内,直接有一个带切分的起点;若不在,平台提供句子征集与界面本地化的完整通道 先查该语种包的 clips 数与 validated 小时数,低于几百条就别指望端到端训练,改做迁移或微调
你在做多语种预训练,需要一个字段统一的底座 所有语种包字段、格式、切分口径完全一致,可直接拼接 按语种分别读取后拼接,注意 sentence 字段的字符集与归一化规则各语种不同
你担心模型在口音上退化 accents 字段在部分语种里有细粒度取值,英语包给出 us、england、indian、canada、australia 等口音分组 用 accents 做评测子集,但注意"other"与未填报占多少因语种而异
你要复现别人的多语种结果 版本与语料编号清晰(cv-corpus-27.0-2026-09-11),可按版本锁定 论文里写清语料编号而不只是"Common Voice",两版之间片段有增删
你在做教育或语言复兴应用 官方明确列出计算机辅助语言学习与语言/文化遗产复兴为预期用途 可放心用,CC0 不要求署名;但不得转存再分发
你要做病理语音或临床语音研究 — 不合适,换用临床采集的语音数据集(§6)

1.5 一句话判断

它不是"质量最高的语音语料库",而是"许可最自由、语种覆盖最广、并且把增长交给社区的语音语料库";用它的人买到的是覆盖面与合法性,代价是采集条件不可控与可用量远小于录制量。

1.6 不适合谁:四条边界

不适合做声学质量要求高的任务。 语音合成、声纹建模、信道研究都需要可控的录音条件,它的采集发生在志愿者的浏览器里,麦克风与房间完全不可控。

不适合做需要时间对齐的任务。 只有整句转写,没有词级或音素级边界。强制对齐得自己用对齐工具跑,而跑出来的边界质量直接受噪声影响。

不适合做临床或病理结论。 人群是自愿参与的网民,句子是随机的公有领域文本,没有任何健康信息、没有纳入排除标准、没有伦理审查材料。它能做健康语音应用的工程底座,不能做流行病学证据。

不适合做说话人身份相关的一切。 条款里明确写着禁止尝试识别数据集中说话人的身份,也禁止转存或再次分发。这两个限制不因为 CC0 而消失——CC0 解决的是版权,不解决对贡献者的承诺。

§2 数据构成与规格

2.1 一次发布由两条产品线加一个增量通道组成

Common Voice 目前有三类产物,各自的定位不同。

产物 定位 v27 周期的规模
Scripted Speech(朗读语音) 志愿者照着句子念,句子音素覆盖可控,是主力训练集 295 种语言,32,349,999 条片段,约 42,593 小时
Spontaneous Speech(即兴口语) 志愿者回答开放性问题,保留迟疑、自我修正、变速等自然现象 80 种语言,89,754 条片段,302 小时已转写并校验
Delta Segments(增量段) 只含自上一版以来新增的片段,用于增量更新 官方未公布统一规模,随版本提供

朗读与即兴的分工值得单独说清。朗读语音的价值在于句子可控:句子征集阶段就要求句子短于 15 个词、内容属公有领域、且经两人审校,因此同一语种包内句子风格与音素分布相对稳定,适合声学建模与语种覆盖的规模化推进。即兴口语解决的是另一个问题——只吃朗读数据训出来的识别系统,一旦遇到真人说话时的停顿、改口、句尾消失,表现会明显掉档。这两条线在 v27 周期是并行发布的,前者 295 语种、后者 80 语种,差的那 200 多个语种正是"有人愿意念、但还没有人组织起口语采集"的部分。

2.2 单个语种包的文件组成

数据按语种分包,每个语种一个压缩包,包名形如 common-voice-scripted-speech-27-0-chines-b098f12c.tar.gz(汉语(中国大陆)包,21.40 GB)或 common-voice-scripted-speech-27-0-frisia-681e0d78.tar.gz(弗里西亚语包,4.34 GB)。解压后是一个语种目录,核心内容分两半:

一半是音频。clips/ 目录下堆放该语种的全部 MP3 文件,文件名形如 common_voice_<locale>_<数字>.mp3,TSV 里的 path 字段就是相对这个目录的路径。

另一半是清单。清单分两组:一组描述片段,一组描述句子。片段侧按切分口径拆成若干 TSV,官方论文描述的六个是 train.tsv、dev.tsv、test.tsv、validated.tsv、invalidated.tsv、other.tsv;句子侧在 v27 的数据页上明确列出 validated_sentences.tsv 与 unvalidated_sentences.tsv。

两者缺一不可。只有 clips/ 而没有 TSV,就不知道哪条音频对应哪句文本、也不知道它属于哪个切分;只有 TSV 而没有 clips/,拿到的只是一张文本表。这也是为什么把数据集转成"音频文件夹 + 一张总表"的自有格式时要格外小心:切分归属、投票计数、句子 id 这些一旦丢掉,就无法再回到官方口径去复现别的结果。

2.3 片段清单的字段字典

下表按官方数据页给出的字段顺序逐条列出。需要说明的是,字段数量随版本演进——2020 年的论文描述的是八个字段的版本,v27 已经扩到十三列,多出来的主要是句子 id、句子域、变体、语言区域与自定义段。

字段 取值形态 含义 使用注意
client_id 哈希 UUID 字符串 说话人的匿名标识 同一人跨片段一致,是做说话人级切分的唯一依据
path 相对路径 音频文件在 clips/ 下的位置 拼接语种根目录后才能读
sentence 文本 该片段要求朗读(实际所读)的句子 转写即此字段;未做归一化,标点与大小写规则因语种而异
sentence_id 唯一标识 句子在文本语料中的编号 可与 validated_sentences.tsv 关联,查句子来源与域
sentence_domain 域代码,可多值 句子所属主题域 官方给出 12 个域,见下文
up_votes 整数 判定"音频与文本相符"的票数 与 down_votes 一起决定该片段落进哪个桶
down_votes 整数 判定"音频与文本不符"的票数 同上
age 年龄段代码 说话人自报年龄 仅在该说话人主动填报时出现
gender 性别代码 说话人自报性别 同上
accents 口音代码 说话人自报口音 同上,取值集合因语种而异
variant 变体代码 语言变体 v27 起部分语种启用,如豪萨语可按变体标注
locale 区域代码 语种的区域标识,如 zh-CN、fy-NL 与语种包目录名对应
segment 段名 若该句属于某个自定义数据集段,则在此列出 与 Delta Segments 机制相关

句子域的官方取值共 12 个:general、agriculture_food、automotive_transport、finance、service_retail、healthcare、history_law_government、media_entertainment、nature_environment、news_current_affairs、technology_robotics、language_fundamentals。年龄取值分 teens、twenties、thirties、fourties、fifties、sixties、seventies、eighties、nineties 九档;性别取值含 male_masculine、female_feminine、transgender、non-binary、do_not_wish_to_say 五档,未填报的在数据页里记为 Unspecified。

这里有一个容易误解的地方需要点明:healthcare 是句子主题域,不是临床来源。它指的是句子内容涉及医疗话题,与说话人的健康状况没有任何关系。

2.4 一条片段的完整解剖

以汉语(中国大陆)语种包的一条片段为例,按字段结构展开(下表的取值为结构示意,非逐字抄录的真实行):

字段 示意取值 怎么读
client_id a1b2c3d4-…(哈希 UUID) 一个说话人,同一人的所有片段共享此值
path common_voice_zh-CN_20000001.mp3 位于 <locale>/clips/ 下
sentence 崇祯三年庚午科河南乡试解元。 该片段的转写文本,直接来自官方句子语料
sentence_id 句子唯一编号 可在 validated_sentences.tsv 里反查来源与域
sentence_domain history_law_government 句子内容属历史/政法类
up_votes 2 两票赞成
down_votes 0 零票反对
age twenties 说话人自报为二十多岁
gender male_masculine 说话人自报为男性
accents 110000(出生地:北京市) 汉语(中国大陆)包的口音字段按省级出生地编码
variant 空 该语种未启用变体标注
locale zh-CN 语种包标识
segment 空 不属于自定义段

把投票逻辑和桶的划分连起来读:up_votes 达到 2 且 down_votes 未先到 2,这条片段被判为有效;它会出现在 validated.tsv 里,并有机会被抽样进 train.tsv、dev.tsv、test.tsv 之一。反之,先拿到两票反对的进 invalidated.tsv。到版本截止时既没凑够赞成也没凑够反对的,落在 other.tsv 里——官方数据页把这一类记为 unresolved(未决)。

未决片段是最大的一块。汉语(中国大陆)包 852,410 条片段里,validated 190,406 条、invalidated 59,382 条、未决 602,622 条;弗里西亚语包 159,767 条里,validated 53,214 条、invalidated 4,281 条、未决 102,272 条。也就是说,"录了但还没人听"是常态而不是异常,这直接决定了这个语料库的可用量增长永远慢于录制量增长。

2.5 音频的物理规格与切分口径

官方论文给出的音频规格是单声道、16 比特、48 kHz 的 MP3。选择 MP3 而不是 WAV,官方说明的理由很实在:采集发生在网页上,MP3 是各浏览器与各设备最通用的录制与回放格式,而对语音应用来说这个音质足够。代价是所有下游任务都要多一步解码,且无法回到无损。

平均片段时长逐语种在数据页给出:汉语(中国大陆)包 4.54 秒,弗里西亚语包 4.853 秒。这个量级决定了它天然适合整句级的建模——一句话一个样本,不需要做长音频切窗。

切分口径有三条规则值得记住。第一,只有 validated 桶里的片段才进官方三个子集。第二,同一 client_id 只会出现在 train、dev、test 中的一个里,官方的设计意图就是避免训练时见过的人出现在测试时。第三,测试集与开发集的规模由统计功效分析决定:官方论文写的是在 99% 置信水平、相对训练集片段数 1% 误差幅度下所需的样本量。

第三条规则有一个直接推论:小语种包的测试集会小得让人不安。弗里西亚语包 validated 桶 53,214 条,三个子集合计只有 10,313 条(train 3,941、dev 3,186、test 3,186),官方数据页直接给出了"训练切分覆盖 validated 的 19.4%"这个数;汉语(中国大陆)包 validated 190,406 条,三个子集合计 51,172 条(train 29,814、dev 10,679、test 10,679),覆盖率 26.9%。用这种规模的测试集报告词错误率,置信区间会宽到足以吞掉很多结论。

2.6 与同类语音语料的字段差异

维度 Common Voice 典型的朗读型学术语料 差异带来的后果
说话人标识 client_id 哈希 UUID,可跨片段分组 常给出真实编号或录音批次 前者可做说话人级切分,但无法回溯到任何真实信息
人口统计学 自报,可缺省 常常没有 前者能支持有限的分组评测,代价是覆盖不完整
转写粒度 整句文本 整句或带词级对齐 前者做不了对齐类任务
质量信号 up_votes / down_votes 与三个桶 通常无 前者可以按投票数做置信度过滤
变体与口音 accents、variant、locale 三字段 通常只有一个语种标签 前者能做方言层面的细分,但字段是否启用因语种而异
许可 CC0,可商用、无需署名 常见为 CC BY 或仅研究用途 前者在商用链条上没有版权障碍

§3 它是谁的数据

3.1 贡献者:一群自报家门也自决定是否报的志愿者

贡献者分三种角色,同一个人可以随时切换。第一种是朗读者:在网页或手机应用上看到一句句子,念出来,提交。第二种是听审者:听别人的录音,判断音频与句子是否对得上,投赞成或反对。第三种是写句子的人:通过句子征集工具提交公有领域的句子,供别人念。

没有任何一种角色有准入门槛——不需要专业设备、不需要语言资质、不需要通过听力测试。这一点的正面意义是采集规模可以做到极大,代价是采集条件与标注质量的下限不由项目方控制,只能靠投票机制后置过滤。

人口统计学信息完全由贡献者自愿填报,项目方不做强制。官方数据页的措辞是"只有在说话人选择提供时才会报告"。这意味着这些字段天然带有填报偏差:愿意公开年龄性别的人,和朗读内容、参与热情、所在地区都可能存在系统性关联。把它当作人群抽样来用是错的,把它当作"一部分人额外提供的属性"来用才对。

3.2 时间线

时间 事件
2017 年 项目启动,先以英语为主
2018 年 6 月 向所有语言开放
2019 年 11 月(论文记录的截止点) 已发布 29 种语言,38 种语言在采集,超过 50,000 人参与,累计录制约 2,500 小时
2020 年 5 月 LREC 2020 发表语料库论文,系统描述采集、校验、切分与格式
Common Voice 23.0 起 所有数据集改为仅通过 Mozilla Data Collective 分发,原站点数据集页转为历史存档
2026 年 6 月 Scripted Speech v26.0,cv-corpus-26.0-2026-06-12,294 种语言
2026 年 9 月 11 日 / 17 日 Scripted Speech v27.0,cv-corpus-27.0-2026-09-11,295 种语言;同周期 Spontaneous Speech v5.0,80 种语言

注意最后一行的两个日期:语料编号里嵌的是数据截止日 2026-09-11,平台标注的 Release Date 是 2026-09-17。官方明确说明附在版本上的日期是采集与校验的截止日,不是发布日。引用版本时写语料编号比写发布日期更不容易出错。

3.3 采集场景:志愿者的浏览器,而不是录音棚

采集界面是一个网页或移动应用。贡献者看到一句句子,点录音,念完提交。整个链路里项目方控制得了的只有三件事:句子内容、音频编码格式、投票规则。控制不了的是麦克风型号、声卡、房间声学、环境噪声、说话人与麦克风的相对位置、以及当天的网络状况。

这个不可控性有两个可被验证的后果。第一是同一语种包内信噪比跨度极大,有的片段干净得像播客,有的能听见键盘声、风扇声、电视声。第二是设备偏差与人群偏差是耦合的——能拿出好麦克风的贡献者,和用手机内置麦克风随手录的贡献者,往往在年龄、地区、职业上也不是同一群人。做分组评测时如果只按 accents 或 age 切,会把设备差异一起切进去。

3.4 文本语料的来源层次

朗读用的句子必须先解决版权,否则整包无法 CC0。官方路径有三条:句子征集工具(社区提交)、维基百科抽取工具、以及部分来自欧洲议会语料库。所有句子必须属公有领域、短于 15 个词,且在进入采集池之前由两人审校通过;若某段文本仍有权利人,Mozilla 提供一份弃权流程,请权利人把它放到 CC0 之下。

句子来源在不同语种包里差别很大。弗里西亚语包的来源是句子征集 10,333 句、某位作者授权的专栏文字 298 句、其他 271 句;汉语(中国大陆)包的来源是 wiki 54,638 句、cn 2,881 句、其他 1,650 句。也就是说,中文包的句子绝大部分来自维基百科——这意味着句子风格偏书面语、专有名词密集、文言与引文成分不少(随机样例里就有"崇祯三年庚午科河南乡试解元"这样的句子)。用中文包训练面向日常口语的识别系统,文本侧的域不匹配是必须先处理的。

§4 它最独特的东西

4.1 稀缺性:CC0 加众包加语种数,三者同时成立

开放语音语料并不少见,但同时满足"可商用、无需署名、语种数在数百量级、且持续增长"的极少。多数知名的开放语音库是 CC BY(需署名)或仅限研究用途;多数覆盖上百语种的多语种库来自爬取或广播转写,版权状态复杂。

CC0 的实际意义在于整条商用链路没有版权障碍:不需要 attribution 声明、不需要逐条核查来源、不需要担心下游模型的分发条款。对做产品的团队,这一条往往比小时数更重要。

4.2 差异化证据:版本之间到底变了什么

变化 v26.0 → v27.0 的官方记录
Scripted Speech 语种数 294 → 295,新增 Pa’O(blk)
Spontaneous Speech 语种数 74 → 80,新增汉语(中国大陆,zh-CN)、斯瓦希里语(sw)、帕劳语(pau)、巽他语(su)、孟加拉语(bn)、掸语(shn)
语料编号 cv-corpus-26.0-2026-06-12 → cv-corpus-27.0-2026-09-11
变体支持 豪萨语(hau)新增方言变体选择

新增一个语种到 Scripted Speech,官方描述的门槛是两件事:界面通过 Pontoon 系统完成本地化翻译,以及建成一个无版权、有语言代表性的句子语料库。Spontaneous Speech 还要多一步:设计一组能引出自然、持续口语的提示问题。这两个门槛解释了为什么语种数增长是每季度几个而不是几十个——瓶颈不在录音,在本地化与句子库。

4.3 社区动员能造成多大的量级差

v27 发布公告点了三个社区,它们的数字很能说明这个数据集的增长机制:

语种 一季内的变化 参与规模
拉兹语(lzz) 增加 23,000 余条片段、34.3 小时,增长率逾 67% 官方称为本版增长最快的语种
信德语(sd) 增加 14,000 余条片段、15.6 小时,增长 27% 30 余人,三个月
上索布语(hsb) 增加 1,000 余条片段、2.2 小时,增长逾 17% 约 40 人

拉兹语是被联合国教科文组织列为濒危、使用者集中在土耳其东部黑海沿岸的语言。它的量级增长不是人口基数带来的,是有组织的社区动员带来的——拉兹研究所主席在公告里的说法是,这件事的意义不只是"教 AI 听懂拉兹语",而是这么多成员第一次为了书写、朗读、录制自己的语言而聚到一起。

这组数字给出的判断标准很直白:一个语种包的大小,预测的是社区组织度,不是使用人口。用它做"语言覆盖度"的宣传口径时,这个区别必须说清。

4.4 标注粒度:整句转写加投票,仅此而已

层级 有没有 说明
整句转写 有 即 sentence 字段,来自采集时给定的句子,不是事后听写
社区校验状态 有 up_votes / down_votes 与 validated / invalidated / other 三桶
句子来源与主题域 有 sentence_id、sentence_domain,可关联句子清单
词级或音素级时间戳 无 做强制对齐需自行跑对齐工具
说话人轮次 / 分离标注 无 单说话人朗读为主
音频事件或噪声标注 无 噪声是否被否掉只体现在投票结果里
即兴口语的转写 有(Spontaneous Speech) 志愿者听写后经审核,v5.0 已转写并校验 302 小时

需要强调 sentence 的性质:它是采集时展示给朗读者的句子,不是听写员根据音频写出来的转写。因此它天然"正确",但也可能与音频实际内容不符——念错、漏词、改口、读一半就停,这些情况正是投票机制要筛掉的。这也意味着它的转写错误率结构与听写型语料完全不同:错误不在文本侧,在音频侧。

4.5 边界条件:并非所有字段在所有语种都可用

variant、accents 这类字段的启用程度因语种而异。豪萨语在 v27 周期才刚获得方言变体选择能力;弗里西亚语有 Klaaifrysk、Wâldfrysk、Noardhoeksk、Súdwesthoeksk 四个变体级口音取值;汉语(中国大陆)的口音字段按省级出生地编码,覆盖北京、江西、广东、黑龙江、江苏等;英语则给出 us、england、indian、canada、australia、scotland 等十余个口音分组。

写代码时不能假设这些字段已填。正确的做法是把它们当作可选列:读了之后先看有没有值,再决定能不能按它分组。把"字段存在"当成"字段有值",是这个数据集最常见的工程事故之一。

§5 怎么拿到

5.1 目录结构

自 Common Voice 23.0 起,所有数据集只通过 Mozilla Data Collective 分发;原站点的数据集页已转为历史存档,官方明确说明存档版本只应在特定研究场景下使用,不应拿去训练——因为有人请求把自己的贡献排除在外,而排除只在最新版生效。

单个语种包下载后是一个 .tar.gz,解压出语种目录。典型结构如下:

cv-corpus-27.0-2026-09-11/
└── zh-CN/
    ├── clips/                       #-- 全部音频,文件名与 TSV 的 path 字段对应
    │   ├── common_voice_zh-CN_20000001.mp3
    │   └── ...
    ├── train.tsv                    #-- 训练集清单
    ├── dev.tsv                      #-- 开发集清单
    ├── test.tsv                     #-- 测试集清单
    ├── validated.tsv                #-- 社区判定有效但未进三个子集的片段
    ├── invalidated.tsv              #-- 社区判定无效的片段
    ├── other.tsv                    #-- 截止时票数不足、未决的片段
    ├── validated_sentences.tsv      #-- 已校验句子及其来源与域
    └── unvalidated_sentences.tsv    #-- 未校验句子及其待审/被拒状态

5.2 批量下载:需要邮箱,且逐语种接受条款

下载不是匿名的。官方给出的理由是日后可能需要就数据集的变更联系下载者,因此需要一个联系点。流程上,每个语种在平台上是一个独立的数据集页面,有自己的条款确认;也就是说想拼一个多语种训练集,要逐个语种接受一遍。

条款里两条硬约束值得原文记住:禁止尝试识别数据集中说话人的身份,禁止转存或再次分发该数据集。这两条与 CC0 并行存在——CC0 处理的是版权,这两条处理的是对贡献者的承诺。做产品时把 Common Voice 打进自有分发包再传给下游,属于违反第二条。

5.3 读取音频:MP3 必须先解码

音频是 48 kHz 单声道 MP3,没有现成的张量格式,每一条都要解码。训练前通常要重采样到 16 kHz:

import torchaudio

#-- Common Voice 原始音频为单声道 48 kHz MP3
root = 'cv-corpus-27.0-2026-09-11/zh-CN'
clip = f'{root}/clips/common_voice_zh-CN_20000001.mp3'

wav, sr = torchaudio.load(clip)
print(wav.shape, sr)      #-- torch.Size([1, N]) 48000

#-- 训练前通常重采样到 16 kHz
resample = torchaudio.transforms.Resample(orig_freq=sr, new_freq=16000)
wav16 = resample(wav)
print(wav16.shape)

规模上的现实约束:英语包 88.43 GB、汉语(中国大陆)包 21.40 GB、弗里西亚语包 4.34 GB。全量 295 个语种包远超单机日常处理量,常见做法是先按语种挑包,再在包内按切分清单筛选,不要试图一次性摊开全部音频。

5.4 转表:六张 TSV 就是全部元数据

import pandas as pd

root = 'cv-corpus-27.0-2026-09-11/zh-CN'

train = pd.read_csv(f'{root}/train.tsv', sep='\t')
dev   = pd.read_csv(f'{root}/dev.tsv', sep='\t')
test  = pd.read_csv(f'{root}/test.tsv', sep='\t')
valid = pd.read_csv(f'{root}/validated.tsv', sep='\t')
other = pd.read_csv(f'{root}/other.tsv', sep='\t')

#-- 先看列,再决定哪些能当特征、哪些只能当过滤条件
print(train.columns.tolist())
print(len(train), len(dev), len(test), len(valid), len(other))

#-- 一句话一条样本:文本侧直接可用,音频侧按 path 拼接
row = train.iloc[0]
print(row['client_id'], row['sentence'], row['up_votes'], row['down_votes'])

转表时注意两点。第一,sentence 字段未做归一化,各语种的标点、大小写、数字写法规则不同,做多语种拼接时要按语种分别定归一化规则。第二,把六张表拼成一张总表时务必保留来源列,否则之后再想按官方口径复现别人的 train/dev/test 结果就不可能了。

5.5 切分映射:validated 是入口,三个子集是出口

桶 生成规则 能不能直接训练
validated 先拿到两票赞成 能,官方三个子集都出自这里
invalidated 先拿到两票反对 不建议;若研究噪声鲁棒性,可当"被社区否掉"的样本源
other(未决) 截止时票数不足 可用但质量未知,属于自担风险
train 官方从 validated 抽样,同一 client_id 不跨子集 能
dev / test 规模由统计功效分析确定 能,但小语种的测试集可能只有几千条

5.6 五个坑

坑一:把录制时长当可用时长。 官方公告的 42,593 小时是录制量;真正能进训练的是各语种 validated 桶里的、再被抽进 train 的那一部分。汉语(中国大陆)包从 1,074.96 小时录制约到 240.11 小时校验通过,再约到 51,172 条进三个子集。

坑二:假设人口统计学字段已填。 汉语(中国大陆)包 852,410 条片段里带自报性别的是 61,671 条、带自报年龄的是 67,827 条。按这些字段分组评测,评的是"愿意填报的人"。

坑三:用旧版本复现新结果。 语料编号 cv-corpus-27.0-2026-09-11 与 cv-corpus-26.0-2026-06-12 之间片段有增删,还有人请求排除自己的贡献。论文里只写"Common Voice"而不写语料编号,复现时会直接对不上。

坑四:把数据打进自己的分发包。 条款禁止转存与再分发。要分发的是模型权重,不是原始音频与 TSV。

坑五:忽视句子域不匹配。 中文包句子 92.3% 来自维基百科,书面语与专有名词密集;拿它训面向日常对话的识别系统,文本侧的域差距比音频侧的噪声更致命。

§6 与库内条目的关系

6.1 关系图谱

库内数据集 它是什么 与 Common Voice 的分工
ua-speech 构音障碍语音的黄金基准 那一个是临床采集、有明确纳入人群、规模小;Common Voice 是众包、无临床信息、规模大。做病理语音用前者,做通用声学底座用后者
speech-commands 105,829 条 1 秒关键词音频 那一个是短命令词分类,任务封闭、样本极短;Common Voice 是整句朗读、转写开放。做唤醒词用前者
dementiabank-pitt 语音做阿尔茨海默检测的事实标准语料 那一个是自发口语加临床分组,样本量受限于招募;Common Voice 无临床分组。做认知障碍语音标志物用前者
bridge2ai-voice NIH 语音生物标志物数据集 那一个有临床医学背景与规范采集流程;Common Voice 是互联网众包。前者做临床验证,后者做预训练
b2ai-voice-pediatric 首个儿科嗓音生物标志物旗舰数据集 那一个限定儿科人群;Common Voice 无年龄下界保障、且自报年龄覆盖差
speech-accessibility-project 五类病因构音障碍语音,DUA 申请制 那一个需签数据使用协议;Common Voice 不需申请,只需邮箱与条款确认
torgo 构音障碍语音与 EMA 构音轨迹 那一个带生理轨迹同步;Common Voice 只有音频与文本
voiced 五秒一个啊音的病理性嗓音库 那一个是持续元音、便于声学分析;Common Voice 是连续语句
pc-gita 哥伦比亚西语帕金森语音 那一个限定病种与语种;Common Voice 覆盖西语但无疾病标注
coughvid 众包咳嗽音数据集 两者同为众包采集,但那一个是非语音音频事件、标注为众包投票;Common Voice 是语音加文本

6.2 检索路径

如果你的问题落在"某种疾病/某类人群的语音特征",本站的路由很清楚:先找临床采集的语音数据集,它们有纳入标准、有分组标签、有伦理审查,规模小但每个样本的信息量高。Common Voice 在这个方向上只能当预训练底座或对照组,不能当实验组。

如果你的问题落在"让机器听懂更多语言"“多语种预训练”“低资源语种冷启动”,Common Voice 是这条路上唯一在许可和语种数上同时到位的选项。

如果你的问题落在"众包数据本身的性质"——投票机制的可信度、自愿填报的偏差、社区动员的决定性作用——那么它同时也是研究方法论的对象,而不只是素材。

6.3 分工判据

判断问题 走向
需要临床分组或疾病标签? 是 → 不要用它,换临床语音数据集
需要词级/音素级时间对齐? 是 → 它给不了,需自行对齐或换带对齐的语料
需要可商用、免署名的许可? 是 → 它是首选
需要上百语种的统一格式底座? 是 → 它是首选
需要干净可控的录音条件? 是 → 它不合适
需要说话人身份或可回溯的人群信息? 是 → 既给不了也不合规
需要自然口语而非朗读? 是 → 用它的 Spontaneous Speech 部分,但规模只有 302 小时已校验

§7 质量评估与局限性

7.0 前置校正:先确认你读到的是哪一层数字

评估它之前必须先把三层数字分开:发布公告给的是录制量(约 42,593 小时),逐语种数据页给的是校验通过量(如英语 2,826.8 小时、汉语(中国大陆)240.11 小时、弗里西亚语 71.73 小时),TSV 给的是切分后的样本数(如弗里西亚语 train 3,941 条)。论文里写的"用了 Common Voice 多少小时",如果不指明是哪一层,就无法与别人的数字比较。

7.1 五维评分

维度 评价 依据
规模 高(汇总口径);因语种而异(单包口径) 全库 32,349,999 条;英语包 2,591,456 条、汉语(中国大陆)包 852,410 条、弗里西亚语包 159,767 条
语种覆盖 极高 Scripted Speech 295 种、Spontaneous Speech 80 种
标注粒度 低 只有整句转写与投票计数,无时间戳、无音素、说话人只有哈希 id
采集一致性 低 志愿者自带设备与环境中采集,官方不控制麦克风、房间、信噪比
许可清晰度 极高 CC0-1.0 明文写在数据页;另附两条禁止事项,措辞明确

7.2 标注的两层:采集层与校验层

第一层是采集层。贡献者看到句子、念出来、提交。这一层的失败模式是念错、漏读、改口、环境噪声过大、或者别人在旁边说话。

第二层是校验层。每条片段最多由三名贡献者听审,先得两票赞成判有效,先得两票反对判无效。这一层的失败模式是:听审者本人对"可否接受"的尺度和别人不一致,以及票数不足导致片段长期悬在未决桶里。

两层的叠加决定了最终质量的下限:采集层的错误要靠校验层筛掉,而校验层本身是众包的、没有金标准。官方在采集指南里给出的判断口径是"只要能听清并理解,通常就应通过",并特别提醒不要因为口音与自己不同而否掉片段——这条提醒反过来说明,实际执行中口音导致的误否是真实存在的。

7.3 可枚举的偏差

自愿填报偏差。 年龄、性别、口音、变体全靠自愿。汉语(中国大陆)包 852,410 条中带自报性别的 61,671 条、带自报年龄的 67,827 条;弗里西亚语包 159,767 条中带自报性别的 69,093 条、带自报年龄的 70,107 条。未填报不是随机缺失。

设备与人群的耦合偏差。 麦克风质量与贡献者的地区、职业、年龄相关,按口音或年龄切分评测时,设备差异会混进来。

文本域偏差。 中文包 92.3% 的句子来自维基百科,书面语与专有名词密集。句子主题域在 12 个官方域上的分布也极不均衡。

参与热情偏差。 语种包大小预测的是社区组织度而非使用人口(§4.3)。拉兹语一个季度涨 67%,靠的是有组织的动员,不是人口。

投票覆盖偏差。 未决片段往往远多于已决片段:汉语(中国大陆)包 602,622 条未决对 190,406 条有效;弗里西亚语包 102,272 条未决对 53,214 条有效。录进来的人和听审的人不是同一批,且后者更少。

7.4 外部验证

语料库论文给出过一个直接的下游验证:用 Mozilla DeepSpeech 工具包,从英语源模型做迁移学习,在十二种目标语言(德语、法语、意大利语、土耳其语、加泰罗尼亚语、斯洛文尼亚语、威尔士语、爱尔兰语、布列塔尼语、鞑靼语、楚瓦什语、卡拜尔语)上取得平均字符错误率改善 5.99 ± 5.48,且对其中多数语言而言,这是端到端语音识别首次公开发表的结果。

这个数字要连着它的标准差一起读:± 5.48 意味着各语种之间的差异幅度与平均改善幅度同量级,迁移效果高度依赖目标语种自身的数据量。它是"这条路径可行"的证据,不是"效果稳定"的证据。

7.5 为什么它仍在被用

答案不在数据质量,在三点:许可没有障碍,格式与切分口径跨语种完全一致,以及版本持续推进、句子与音频都在增长。对于一个要同时处理几十种语言的团队,“字段统一"这件事的价值往往超过单包质量的不足——它把工程成本从"每个语种一套适配"降到"一套适配跑到底”。

§8 生态位与历史

8.1 沿革

阶段 特征
2017–2018 从单一语种起步,随后向所有语言开放;确立"句子众包 + 录音众包 + 校验众包"的三段式
2019–2020 通过论文化,把采集协议、投票规则、切分口径与格式写成可引用的规范
23.0 前后 分发渠道迁移到 Mozilla Data Collective,原站点数据集页转为历史存档
2024 至今 新增 Spontaneous Speech 与 Delta Segments,从单一朗读语料扩展为多形态产品线

分发渠道的迁移是一个容易被忽略但很重要的节点。自 23.0 起,所有数据集只在 Mozilla Data Collective 上提供,原站点保留的是历史存档,且官方明确说存档版本"只应在特定研究场景下使用、不应拿去训练"。原因是有人请求把自己的贡献排除在外,而排除只在最新版生效。这意味着拿旧版训练不仅是版本问题,还是对贡献者意愿的违背。

8.2 与挑战赛的关系

多语种语音领域的评测活动普遍把 Common Voice 列入许可训练源。以 LRAC 2.0 挑战赛为例,官方数据集页把 Mozilla Common Voice Scripted Speech 的 v26.0 与 v27.0 同时列为可用训练源,并明确两者均以 CC0-1.0 分发、由 Mozilla Data Collective 按语种分别发布且各自接受条款;该页还说明 v27.0 是同一语料的延续而非新的采集,相对 v26.0 只增加了约 15 小时的增量贡献。

这类引用方式揭示了一个实用事实:版本之间片段 id 是稳定的。挑战赛的筛选、保留验证集与排除名单都以片段标识为键,跨版本通用。对做长期项目的人来说,这一条比"哪个版本更大"重要得多。

8.3 生态位

它占据的是"开放许可 + 广语种 + 中等质量"这一格。三个相邻格子各有主人:更高质量的是商业授权语音库与实验室采集库,更大规模的是爬取型弱监督语料,更强临床属性的是医院与研究机构采集的病理语音库。它不与任何一格正面竞争,因为它的价值函数是"能不能合法地、以统一格式拿到几百种语言的语音",而不是"单条质量有多好"。

8.4 谁在用

三类使用者。第一类是低资源语言技术从业者与语言社区本身,把数据集当作语言数字化的基础设施——拉兹研究所主席的说法是,这件事的意义首先是让社区成员第一次为书写、朗读、录制自己的语言而聚集。第二类是多语种 ASR 的工程团队,用它做预训练底座或语种扩展。第三类是做公平性与偏差研究的人,把它当作"众包数据偏差"的标准样本。

§9 使用指引

9.1 三种角色的路径

角色 路径 关键一步
低资源语言从业者 查该语种包规模 → 若太小则改做迁移 → 用 cv-corpus-27.0-2026-09-11 锁定版本 先看 validated 小时数,别看录制小时数
多语种预训练工程师 挑语种 → 逐包下载并接受条款 → 读 train.tsv → 按 client_id 检查切分 统一重采样到 16 kHz,按语种分别做文本归一化
偏差与数据质量研究者 用三个桶分析投票行为 → 用自报字段的覆盖情况分析填报偏差 明确写出使用的是哪一层数字(录制 / 校验 / 切分)

9.2 最短流程

import pandas as pd
import torchaudio

root = 'cv-corpus-27.0-2026-09-11/zh-CN'

#-- 第一步:读切分清单,先看规模而不是先看音频
tr = pd.read_csv(f'{root}/train.tsv', sep='\t')
dv = pd.read_csv(f'{root}/dev.tsv', sep='\t')
te = pd.read_csv(f'{root}/test.tsv', sep='\t')
print(len(tr), len(dv), len(te))

#-- 第二步:自检官方切分是否真的做到了说话人不跨子集
a, b, c = set(tr.client_id), set(dv.client_id), set(te.client_id)
print('train&dev', len(a & b), 'train&test', len(a & c), 'dev&test', len(b & c))

#-- 第三步:读一条音频并重采样
wav, sr = torchaudio.load(f'{root}/clips/{tr.iloc[0]["path"]}')
print(wav.shape, sr, tr.iloc[0]['sentence'])

三步走完,你手上就有了一个可训练的最小样本:一条音频、一句转写、一个说话人标识,以及一次切分泄漏自检。

9.3 引用方式

项 建议写法
数据集 Mozilla Common Voice,Scripted Speech v27.0
语料编号 cv-corpus-27.0-2026-09-11(比发布日期更不易出错)
语种包 写明 locale,如 zh-CN;并写明使用的是 train/dev/test 中的哪些
许可 CC0-1.0;同时说明已接受"不识别说话人身份、不转存再分发"的条款
规模 写明是录制小时数还是 validated 小时数,不要混用
官方页 https://commonvoice.mozilla.org/en/datasets

§10 AI 使用声明

项目 声明
文本生成 本文由 AI 辅助撰写,编辑把关结构与事实
数字来源 规模、结构、边界三类数字来自 Mozilla 官方站点、Mozilla Data Collective 逐语种数据页与 LREC 2020 语料库论文
文件核验 官方数据集页、v27 发布公告、英语 / 汉语(中国大陆)/ 弗里西亚语三个语种数据页经直接访问确认
不一致说明 站点首页写"现已支持 290 门语言",发布公告与数据页写 295 种;前者为平台界面支持语种数的展示口径,本文采用发布公告的 295
论文信息 LREC 2020 论文经摘要页核对,未逐段读全文
未核验内容 全库校验通过小时数(官方未汇总公布)、Delta Segments 的规模口径、Code Switching 数据集类型的发布状态
图像 无配图;封面为生成式提示词,不含真实人物
免责 本文不构成临床建议;数据使用须遵守 CC0-1.0 及下载条款中的两条禁止事项

常见误读(避坑清单)

说法 实际 证据
「它有四万小时可训练语音」 42,593 小时是录制量;可用的是各语种 validated 桶里再被抽进 train 的部分 逐语种数据页分别给出 recorded 与 validated 小时数
「CC0 意味着想怎么用就怎么用」 下载条款另有两条禁令:不得尝试识别说话人身份、不得转存再分发 数据页 Forbidden Usage 段
「年龄性别字段可以直接做公平性分析」 自愿填报,未填报占多数 汉语(中国大陆)包 852,410 条中带自报性别 61,671 条
「它是 290 种语言」 数据集 v27.0 为 295 种;290 是站点首页展示的口径 v27 发布公告与数据页
「Common Voice 就是朗读数据」 还有 Spontaneous Speech v5.0(80 语种、302 小时已转写校验)与 Delta Segments v27 发布公告
「它有音素级或词级对齐」 只有整句转写,无时间戳 字段清单只到句子级
「句子都是日常口语」 中文包 92.3% 的句子来自维基百科,书面语与专有名词密集 汉语(中国大陆)包句子来源表
「小语种包也能放心报指标」 弗里西亚语三个子集合计 10,313 条,test 只有 3,186 条 该语种数据页 Training splits 段
「版本之间差别不大,随便下哪个都行」 有人请求排除自己的贡献,排除只在最新版生效,旧版存档官方不建议用于训练 数据集页的存档说明
「它可以用来研究方言与疾病的关系」 无疾病标签,healthcare 只是句子主题域代码 12 个句子域的官方定义
「它和临床语音数据集可以互相替代」 前者无临床分组、无纳入标准;后者规模小但有分组 §6.1 关系图谱
「下载是匿名的」 需提供邮箱,并逐语种接受条款 数据集页的邮箱说明

FAQ

Q1:Common Voice 现在到底是什么版本,有多少种语言?
Scripted Speech v27.0,语料编号 cv-corpus-27.0-2026-09-11,平台标注发布日期 2026 年 9 月 17 日,覆盖 295 种语言、32,349,999 条片段、约 42,593 小时录制语音。同周期发布的 Spontaneous Speech v5.0 覆盖 80 种语言、89,754 条片段,其中 302 小时已转写并校验。站点首页显示的"290 门语言"是平台界面支持语种数的展示口径,与发布公告的数字不同,引用时以语料编号为准。

Q2:官方说的四万小时,我能全拿来训练吗?
不能。42,593 小时是录制量。片段要先经过社区投票:先拿到两票赞成才算有效,先拿到两票反对判无效,截止时票数不足的进未决桶。官方的 train/dev/test 只从有效桶里抽样。汉语(中国大陆)包录到 1,074.96 小时,有效 240.11 小时,三个子集合计 51,172 条。写论文时必须写明用的是哪一层数字。

Q3:CC0 是不是意味着可以随便分发?
不是。CC0 解决的是版权,下载条款另有两条硬约束:禁止尝试识别数据集中说话人的身份,禁止转存或再次分发该数据集。因此你可以用它训练模型并发布模型权重,但不能把原始音频与 TSV 打包进自己的分发物里。

Q4:为什么下载还要留邮箱?
官方给出的理由是日后可能需要就数据集的变更联系下载者,邮箱提供一个联系点。此外每个语种在平台上是独立的数据集页面,需要各自确认条款,所以拼多语种训练集要逐语种走一遍。

Q5:它能不能做病理语音或临床语音研究?
不能作为实验组。贡献者是自愿参与的网民,朗读的是随机公有领域句子,没有健康信息、没有纳入排除标准、没有伦理审查材料。它只能当通用语音的预训练底座或对照组;临床问题应改用有分组标签的临床语音数据集。需要提醒的是,healthcare 是句子主题域代码,指句子内容涉及医疗话题,与说话人的健康无关。

Q6:口音、变体、年龄、性别这些字段可靠吗?
可用但不可靠为"完整"。这些字段全部由说话人自愿填报,未填报占多数:汉语(中国大陆)包 852,410 条中带自报性别的 61,671 条、带自报年龄的 67,827 条。此外字段是否启用因语种而异,写代码时不能假设已填。用它们做分组评测是可以的,但评的是"愿意填报的人"。

Q7:朗读数据和即兴口语数据该选哪个?
取决于目标场景。朗读语音句子可控、音素覆盖稳定,适合建声学模型与做语种覆盖;即兴口语保留了迟疑、改口、变速等自然现象,适合缩小"朗读训练、真人口语部署"之间的落差。后者规模小得多:v5.0 只有 80 语种、89,754 条、302 小时已转写校验。

Q8:版本之间可以混用吗?
技术上可以,但不推荐。有人请求把自己的贡献排除在外,而排除只在最新版生效,因此官方明确说存档版本只应在特定研究场景下使用、不应拿去训练。好消息是片段标识跨版本稳定,做长期项目时可以按片段 id 维护筛选与排除名单。

Q9:小语种包值得用吗?
看 validated 小时数而不是录制小时数。有些语种包只有几十条片段、两三个说话人,端到端训练无从谈起,只能做迁移学习的目标域或评测集。反过来说,包的大小预测的是社区组织度而非使用人口——拉兹语一个季度增长 67%,靠的是有组织的动员。

Q10:它的音频规格对训练有什么实际影响?
单声道、16 比特、48 kHz MP3,平均片段时长在 4 到 5 秒量级(汉语(中国大陆)包 4.54 秒,弗里西亚语包 4.853 秒)。影响有三条:每条都要解码,训练前通常重采样到 16 kHz;一句话一个样本,不需要长音频切窗;采集发生在志愿者的浏览器里,信噪比跨度极大,噪声鲁棒性必须当成默认前提而不是特殊情况。

术语表

术语 解释
Common Voice Mozilla 基金会发起的众包多语种语音项目,包含朗读与即兴两条数据产品线
Scripted Speech 朗读语音数据集,志愿者照给定句子朗读
Spontaneous Speech 即兴口语数据集,志愿者回答开放性提示问题
Delta Segments 只含自上一版以来新增片段的增量通道
语料编号 形如 cv-corpus-27.0-2026-09-11 的版本标识,中段为版本号,末段为数据截止日
locale 语种的区域代码,如 zh-CN、fy-NL、en
clip 一条语音片段,对应 clips/ 下的一个 MP3 文件与 TSV 中的一行
client_id 说话人的匿名哈希 UUID,同一人跨片段一致
validated 先拿到两票赞成、被社区判定有效的片段桶
invalidated 先拿到两票反对、被社区判定无效的片段桶
other 版本截止时票数不足、未决的片段桶
sentence_domain 句子的主题域代码,官方共 12 个,如 healthcare、history_law_government
variant 语言变体字段,部分语种启用,如豪萨语的方言变体
accents 说话人自报口音字段,取值集合因语种而异
CC0-1.0 创意 Commons 公有领域贡献,可商用、无需署名
MPL 2.0 Mozilla 公共许可证,平台代码所用许可
ASR 自动语音识别,把语音转成文本
CER 字符错误率,语音识别的常用评测指标
强制对齐 把转写文本与音频在时间轴上逐词对齐
统计功效分析 用置信水平与误差幅度反推所需样本量的方法,官方据此定 dev/test 规模
迁移学习 在资源多的语种上预训练、再迁移到资源少的语种
Pontoon Mozilla 的本地化翻译平台,新语种上线的第一步在此完成

附录 A:核心数字核对表

项 值 出处
Scripted Speech 版本 v27.0,cv-corpus-27.0-2026-09-11 发布公告;逐语种数据页
Scripted Speech 语种数 295 v27 发布公告
Scripted Speech 片段总数 32,349,999 v27 发布公告
Scripted Speech 录制总时长 约 42,593 小时 v27 发布公告
Spontaneous Speech 版本 v5.0 v27 发布公告
Spontaneous Speech 语种数 80 v27 发布公告
Spontaneous Speech 片段数 89,754 v27 发布公告
Spontaneous Speech 已转写校验时长 302 小时 v27 发布公告
上一版本 v26.0,cv-corpus-26.0-2026-06-12,294 语种 外部挑战赛数据集页转引官方编号
英语包规模 2,591,456 条 / 3,795.9 小时录制 / 2,826.8 小时有效 / 100,546 说话人 / 1,723,245 句 英语语种数据页
汉语(中国大陆)包规模 852,410 条 / 1,074.96 小时录制 / 240.11 小时有效 / 7,601 说话人 / 60,191 句 汉语(中国大陆)语种数据页
弗里西亚语包规模 159,767 条 / 215.37 小时录制 / 71.73 小时有效 / 2,106 说话人 / 10,917 句 弗里西亚语语种数据页
汉语(中国大陆)三桶 有效 190,406 / 无效 59,382 / 未决 602,622 汉语(中国大陆)语种数据页
弗里西亚语三桶 有效 53,214 / 无效 4,281 / 未决 102,272 弗里西亚语语种数据页
汉语(中国大陆)切分 train 29,814 / dev 10,679 / test 10,679,覆盖有效桶 51,172 条 汉语(中国大陆)语种数据页
弗里西亚语切分 train 3,941 / dev 3,186 / test 3,186,覆盖有效桶 10,313 条 弗里西亚语语种数据页
平均片段时长 汉语(中国大陆)4.54 秒;弗里西亚语 4.853 秒 对应语种数据页
音频格式 单声道、16 比特、48 kHz MP3 LREC 2020 语料库论文
片段清单字段数 13 列 v27 语种数据页 Fields 段
句子域数量 12 个 v27 语种数据页 Text domains 段
投票规则 最多三人听审,先两票赞成判有效,先两票反对判无效 LREC 2020 语料库论文
许可 CC0-1.0(音频与文本);平台代码 MPL 2.0 语种数据页 Licensing 段
2019 年基线 29 种语言已发布、38 种在采集、逾 50,000 人参与、约 2,500 小时 LREC 2020 语料库论文摘要
迁移学习验证 12 种目标语言平均 CER 改善 5.99 ± 5.48 LREC 2020 语料库论文摘要

附录 B:数字的来源分层

第一层:官方发布公告与逐语种数据页。 版本号、语料编号、语种数、片段总数、录制总时长,以及英语、汉语(中国大陆)、弗里西亚语三个语种的片段数、小时数、说话人数、句子数、三桶计数、切分计数、平均片段时长、字段清单、句子域、许可与禁止事项。这些来自 Mozilla 官方站点与 Mozilla Data Collective 的公开数据页。

第二层:语料库论文。 音频物理规格(单声道 16 比特 48 kHz MP3)、投票规则、切分的统计功效依据、2019 年基线数字、迁移学习的 CER 改善。来源为 LREC 2020 论文,经摘要页核对。

第三层:外部转引与未核实。 v26.0 的语料编号与"v27 相对 v26 只增加约 15 小时"的判断,来自外部挑战赛的官方数据集页转引。全库校验通过小时数官方未汇总公布;Delta Segments 的规模口径、Code Switching 数据集类型的发布状态均未在官方页确认。正文中涉及这些的地方只做定性表述。

附录 C:完整参考文献

编号 文献 链接 用途
1 Mozilla Common Voice 官方数据集页 https://commonvoice.mozilla.org/en/datasets 下载方式、存档说明、邮箱与条款
2 Common Voice Scripted Speech v27 与 Spontaneous Speech v5 发布公告 https://community.mozilladatacollective.com/commonvoice-27 版本号、语种数、片段总数、录制时长、新增语种
3 Scripted Speech 27.0(汉语(中国大陆))数据页 https://mozilladatacollective.com/datasets/cmu5lcunh00qimh078sdd5so8 中文包的规模、三桶、切分、句子来源
4 Scripted Speech 27.0(弗里西亚语)数据页 https://mozilladatacollective.com/datasets/cmu5wsbsd00dwnq07h3qbbsz7 小语种包的规模、三桶、切分、口音变体
5 Scripted Speech 27.0(英语)数据页 https://mozilladatacollective.com/datasets/cmu5jplf300nwmh07iqvk9leo 最大语种包的规模与口音分组
6 Mozilla Data Collective 数据集检索页 https://mozilladatacollective.com/datasets?q=common+voice 逐语种页面与条款确认入口
7 Ardila 等,Common Voice: A Massively-Multilingual Speech Corpus,LREC 2020 https://aclanthology.org/2020.lrec-1.520/ 音频规格、投票规则、切分依据、2019 基线、CER 验证
8 LRAC 2.0 挑战赛数据集页 https://crowdsourcing.cisco.com/lrac-challenge/2026/datasets v26.0 语料编号与版本间差异的外部转引
9 Common Voice 项目常见问题(Mozilla 官方) https://commonvoice.mozilla.org/en/about 资金来源、使用方式、判断标准

附录 D:任务代码

任务一:多语种拼接前的一致性检查

import pandas as pd

LOCALES = ['zh-CN', 'fy-NL']
COLS = ['client_id', 'path', 'sentence', 'up_votes', 'down_votes',
        'age', 'gender', 'accents', 'variant', 'locale', 'segment']

frames = []
for loc in LOCALES:
    root = f'cv-corpus-27.0-2026-09-11/{loc}'
    df = pd.read_csv(f'{root}/train.tsv', sep='\t')

    #-- 不同语种包字段可能不齐,先补列再拼,避免静默丢字段
    for c in COLS:
        if c not in df.columns:
            df[c] = None
    df['locale'] = loc
    df['__root'] = root
    frames.append(df[COLS + ['__root']])

alltrain = pd.concat(frames, ignore_index=True)
print(alltrain.shape)
print(alltrain.groupby('locale').size())

任务二:用投票数过滤高置信度样本

import pandas as pd

root = 'cv-corpus-27.0-2026-09-11/zh-CN'
valid = pd.read_csv(f'{root}/validated.tsv', sep='\t')
other = pd.read_csv(f'{root}/other.tsv', sep='\t')

#-- 有效桶里再挑"零反对"的片段,作为高置信子集
hi = valid[(valid['down_votes'] == 0) & (valid['up_votes'] >= 2)]
print(len(valid), len(hi))

#-- 未决桶里票数偏正、只是没听满的,可当作补充样本
maybe = other[(other['down_votes'] == 0) & (other['up_votes'] >= 1)]
print(len(other), len(maybe))

任务三:按说话人做自定义切分,替代官方切分

import pandas as pd
from sklearn.model_selection import GroupShuffleSplit

root = 'cv-corpus-27.0-2026-09-11/zh-CN'
valid = pd.read_csv(f'{root}/validated.tsv', sep='\t')

#-- 官方切分只覆盖有效桶的一部分,样本不够时可以自己按 client_id 重切
gss = GroupShuffleSplit(n_splits=1, test_size=0.1, random_state=0)
tr_idx, te_idx = next(gss.split(valid, groups=valid['client_id']))
tr, te = valid.iloc[tr_idx], valid.iloc[te_idx]

a, b = set(tr.client_id), set(te.client_id)
print(len(tr), len(te), 'leak =', len(a & b))

附录 E:如果只记五件事

序号 记住什么 为什么
1 42,593 小时是录制量,不是可用量 官方三个子集只从 validated 桶抽样,量级差不止一档
2 语料编号比发布日期更重要 cv-corpus-27.0-2026-09-11 里的末段是数据截止日
3 CC0 之外还有两条禁令 不得识别说话人身份、不得转存再分发
4 自报字段覆盖不全,且因语种而异 按它们分组评的是"愿意填报的人"
5 语种包大小反映社区组织度,不是使用人口 拉兹语一季度涨 67% 靠的是动员

编辑说明

本文的核验时间为 2026 年 10 月 29 日。核对方式为直接访问 Mozilla Common Voice 官方数据集页、Mozilla Data Collective 的 v27 发布公告与英语 / 汉语(中国大陆)/ 弗里西亚语三个语种数据页,以及 LREC 2020 语料库论文的摘要页;参考文献中的外部挑战赛数据集页只用于转引 v26.0 语料编号,已在附录 B 中归为第三层。

有一处数字冲突需要说明:官方站点首页的展示文案写"现已支持 290 门语言",而 v27 发布公告与逐语种数据页写 295 种语言。前者是平台界面支持语种数的展示口径,后者是数据集发布口径,本文统一采用后者,并在正文中不再混用。

未覆盖的内容包括:全库校验通过小时数的汇总值(官方未公布)、Delta Segments 的规模口径、Code Switching 数据集类型的发布状态,以及各语种包在 12 个句子域上的具体片段数。这些需要下载全量后统计,本文按要求只写规模、结构、边界三类数字。本词条的站内地址以 __RID__ 作为 record_id 标记,发布流程会自动注入真实 rid。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • ua-speech — 共享标签:语音信号 / 自动语音识别 / 病理语音
  • speech-commands — 共享标签:语音信号 / 音频 / 关键词识别
  • dementiabank-pitt — 共享标签:语音信号 / 自发口语 / 临床语音
  • bridge2ai-voice — 共享标签:语音信号 / 生物标志物 / 多人语音
  • b2ai-voice-pediatric — 共享标签:语音信号 / 嗓音 / 儿科人群
  • speech-accessibility-project — 共享标签:语音信号 / 构音障碍 / 申请制获取
  • torgo — 共享标签:语音信号 / 构音障碍 / 多模态同步
  • voiced — 共享标签:语音信号 / 病理嗓音 / 持续元音
  • pc-gita — 共享标签:语音信号 / 帕金森 / 非英语语种
  • coughvid — 共享标签:众包采集 / 非语音音频 / 投票式标注

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。本词条自身链接写作 https://www.qianfanghub.com/ai-ready-dataset/common-voice/1814,发布时注入真实 record_id。

返回 AI-Ready 数据集