AfriSpeech Selector
收藏资源简介:
AfriSpeech Selector 提供142种非洲语言的语音数据,总计2267.9小时,覆盖35个国家,用于训练文本到语音(TTS)和自动语音识别(ASR)模型。数据包括对齐的转录文本和音频文件,支持多种格式导出。
AfriSpeech Selector provides speech data for 142 African languages, totaling 2267.9 hours across 35 countries. It is designed for training Text-to-Speech (TTS) and Automatic Speech Recognition (ASR) models. The dataset includes aligned transcriptions and audio files, and supports export in multiple formats.
AfriSpeech Selector 数据集详情
AfriSpeech Selector 是一个面向非洲语音的数据集选择与导出工具,提供对 142种语言、2267.9小时 的语音数据访问,覆盖 35个国家。数据为带有对齐文本的清晰朗读语音,主要适用于 TTS(文本转语音) 和 ASR(自动语音识别) 模型训练。
核心特点
- 数据规模: 142种语言,总计2267.9小时,35个国家。
- 语音类型: 清晰的朗读语音,带有对齐的转录文本。
- 主要用途: 自然适用于TTS模型(如LJSpeech、Piper、VITS、MeloTTS),也可用于补充低资源ASR任务。
- 导出格式: 支持导出为WAV音频 + 元数据清单,格式包括LJSpeech、Piper、VITS、MeloTTS等TTS框架格式,以及Hugging Face Dataset格式(disk、parquet、zip、csv)。
- 筛选功能: 可根据语言、音频时长(小时数)、国家、剪辑时长等条件进行灵活选择。
数据集内容
数据集的语音是清晰的朗读语音,转录文本会原样保留,不做任何文本归一化或清理。
输出数据列
| 列名 | 含义 |
|---|---|
audio |
解码后的音频波形(HF Audio格式) |
text |
转录文本 |
language |
语言标签 |
country |
国家ISO 3166-1 alpha-2代码 |
length |
音频剪辑时长(秒) |
iso |
ISO 639-3语言代码 |
subset |
来源配置(可追溯性) |
主要功能
语言选择
- 按语言名称选择: 使用
--languages参数指定具体语言(如twi_twi)。 - 按强度/排名选择: 使用
--top N选择录音时长排名前N的语言。 - 国家平衡: 使用
--max-per-country N限制每个国家最多选择的语言数量。 - 池过滤: 使用
--min-hours、--max-hours、--min-clips、--countries等参数过滤语言池。
音频导出
- TTS框架导出: 支持导出为LJSpeech、Piper、VITS、MeloTTS等格式,生成WAV文件和对应的元数据清单(如
metadata.csv、filelist.txt)。 - ASR导出: 支持导出为Hugging Face的
disk、parquet、zip、csv格式,或直接使用流式stream_dataset()接口。 - 音频参数控制: 可设置目标采样率(
--target-sr,默认22050Hz)、剪辑时长窗口(--min-clip-sec/--max-clip-sec,默认3-15秒)等。 - 音频总量控制: 通过
--total-hours设置总音频时长,或通过--per-language设置每种语言的剪辑数量。
其他功能
- 预览模式: 使用
--dry-run或--list-langs在下载前预览选择计划或匹配的语言列表。 - 无安装运行: 可直接使用
python3 -m afrispeech_selector ...命令。 - 交互式UI: 提供可选的本地浏览器界面(需安装
[ui]依赖),用于探索语言和构建命令。 - 作为库使用: 支持以编程方式在Python脚本中调用,例如
build_dataset()、stream_dataset()、export_tts()等函数。
数据来源与再分发
- 来源: 数据来自公开的数据源,工具负责选择和导出。
- 再分发政策: 允许构建本地工作集用于个人训练。不推荐将音频重新分发到公共仓库(如使用
--push)。
语言目录(部分示例)
| 排名 | 语言 | ISO | 国家 | 小时数 | 剪辑数 |
|---|---|---|---|---|---|
| 1 | Malagasy | mlg | Madagascar | 61.32 | 20287 |
| 2 | Kabuverdianu | kea | Cabo Verde | 58.07 | 19728 |
| 3 | Shona | sna | Zimbabwe | 53.30 | 17996 |
| 4 | Kabiye | kbp | Togo | 53.19 | 18211 |
| 5 | Twi | twi | Ghana | 50.32 | 17140 |
| ... | ... | ... | ... | ... | ... |
完整目录包含142种语言,按录音时长(小时数)从大到小排序,并包含对应国家和ISO代码。每种语言有一个特定的 --languages 值(如 twi_twi),用于在命令行中指定。
安装与使用
安装
通过Git克隆仓库并安装:
git clone https://github.com/AfriSpeech/afrispeech-selector.git cd afrispeech-selector python3 -m venv .venv && source .venv/bin/activate pip install -e .
安装后可获得 afrispeech-select 命令。
快速开始(单语言TTS示例)
以下命令选择Twi语言,导出约5小时、格式为LJSpeech的TTS数据集:
afrispeech-select --languages twi_twi --total-hours 5 --out data/twi --format ljspeech
命令行参数总览
--top N: 按小时数选择前N种语言--languages a,b,c: 手动指定特定语言子集--max-per-country N: 限制每个国家的语言数量(平衡)--min-hours / --max-hours / --min-clips: 按强度过滤语言池--countries GH,NG: 仅限特定国家--total-hours H: 所选语言的总音频时长,均匀分配--per-language N: 每种语言的最大剪辑数--max-hours-per-lang H: 每种语言的时长预算--min-clip-sec / --max-clip-sec: 剪辑时长窗口(默认3-15秒)--target-sr HZ: 目标采样率--format …: 导出格式(ljspeech/piper/vits/melo/hf格式等)--dry-run / --list-langs: 预览或列出匹配的语言-y / --yes: 跳过确认提示





