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

