AudioSpider:为语音大模型训练准备数据的开源爬虫框架

训练语音 / TTS 模型,最大的瓶颈往往不是模型,而是数据——几百万条、上百万小时干净规整的语音从哪来?

AudioSpider 就是为解决这个问题而生的开源框架:自动从播客、有声书、B站等来源发现语音 URL,去重后并发下载,并统一转码成可直接用于训练的格式。MIT 协议,已开源。

🔗 项目地址:https://github.com/yinhao0214/AudioSpider

整个流程分三步走:发现搜集 → 入库去重 → 下载转码。

  • 发现 & 搜集:discover.py 从 Apple Podcasts 和 Podcast Index(400 万+ 播客)全网发现新源;collect.py 则从小宇宙、喜马拉雅、B站、RSS、LibriVox 等固定来源抓增量更新。
  • 入库去重:所有 URL 存入 SQLite,经过 URL、source_id、内容指纹三层去重。
  • 下载转码:main.py 异步并发(默认 20 线程)从库中取 URL 下载,并自动转码输出。

发现与下载解耦,可同时运行,一边扩充 URL 池,一边持续下载。

三个关键特性

1. 覆盖广、量级大 支持 5 大来源(小宇宙 / RSS / 喜马拉雅 / LibriVox / B站),实测数据库已攒到 220 万+ 条 URL、约 138 万小时语音待下载,覆盖英、中、西、日、韩等多语种。

2. 直接产出可训练格式 所有音频统一转码为 Opus · 24kHz · 单声道 · 32kbps——这是 WenetSpeech 等数据集与主流 TTS 模型的标准选择。1 万小时仅约 140GB,比 WAV 节省约 91% 存储。训练时 torchaudio.load() 一行加载。

3. 工程细节完善 三层去重、断点续传(中断重启不丢进度)、完整反爬策略(UA 轮换 / 限速 / 代理)、异步并发下载、交互式数据库查看器。

架构:

AudioSpider/
├── discover.py         # 自动发现新源(Apple Podcasts + Podcast Index,两源全覆盖)
├── collect.py          # URL 搜集器(从已有固定源抓取最新音频链接)
├── main.py             # 音频下载器(从数据库取 URL 并下载)
├── config.py           # 全局配置(目录、超时、爬虫参数、Podcast Index API Key)
├── storage.py          # SQLite 存储(URL 去重、状态追踪、指纹去重)
├── downloader.py       # 异步下载引擎(并发、断点续传、元信息生成)
├── anti_crawler.py     # 反爬工具(UA 轮换、延时、代理、限速)
├── convert_audio.py    # 批量音频格式转换(→ Opus 24kHz mono 32kbps)
├── db_viewer.py        # 数据库交互式查看器
├── spiders/            # 各来源爬虫
│   ├── base.py         # 爬虫基类
│   ├── xiaoyuzhou.py   # 小宇宙播客(CDN 直链)
│   ├── ximalaya.py     # 喜马拉雅(移动端 API)
│   ├── podcast_rss.py  # 通用播客 RSS
│   ├── librivox.py     # LibriVox 有声书
│   └── bilibili.py     # B站(DASH 音频流)
└── requirements.txt    # Python 依赖

工作流:

三个独立程序,按需运行:

  1. discover.py — 自动发现新源。通过两个数据源(Apple Podcasts、Podcast Index)全网发现播客 RSS;默认只解析尚未爬过的 feed 并入库。另可用 --backfill-published 重扫已爬过的 feed(补 published_at、顺带捞新剧集)。仅采集中英文播客。相当于”开拓新领地”。
  2. collect.py — 从已有固定源抓取。只跑 config.py 里配置好的来源(小宇宙、喜马拉雅等),抓取最新音频。相当于”巡逻老地盘”。
  3. main.py — 消费下载。从数据库取待下载 URL,批量下载到本地。
discover.py --loop              → 搜新 feed → 只解析未爬过的 feed ─┐
discover.py --backfill-published → 重解析已爬 feed(补日期/捞新集)─┼→ audiospider.db → main.py → downloads/
collect.py                      → 抓 config 里固定来源            ─┘

数据来源

来源类型下载方式说明
小宇宙播客CDN 直链最稳定,M4A 格式
通用 RSS播客直链标准协议,覆盖面广
喜马拉雅有声书/播客移动端 APIMP3/AAC/M4A 格式
LibriVox有声书Archive.org英文公版有声书
B站有声书/相声/评书/演讲DASH 音频流M4A 格式,内容量大