训练语音 / 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 依赖
工作流:
三个独立程序,按需运行:
discover.py— 自动发现新源。通过两个数据源(Apple Podcasts、Podcast Index)全网发现播客 RSS;默认只解析尚未爬过的 feed 并入库。另可用--backfill-published重扫已爬过的 feed(补published_at、顺带捞新剧集)。仅采集中英文播客。相当于”开拓新领地”。collect.py— 从已有固定源抓取。只跑config.py里配置好的来源(小宇宙、喜马拉雅等),抓取最新音频。相当于”巡逻老地盘”。main.py— 消费下载。从数据库取待下载 URL,批量下载到本地。
discover.py --loop → 搜新 feed → 只解析未爬过的 feed ─┐
discover.py --backfill-published → 重解析已爬 feed(补日期/捞新集)─┼→ audiospider.db → main.py → downloads/
collect.py → 抓 config 里固定来源 ─┘
数据来源
| 来源 | 类型 | 下载方式 | 说明 |
|---|---|---|---|
| 小宇宙 | 播客 | CDN 直链 | 最稳定,M4A 格式 |
| 通用 RSS | 播客 | 直链 | 标准协议,覆盖面广 |
| 喜马拉雅 | 有声书/播客 | 移动端 API | MP3/AAC/M4A 格式 |
| LibriVox | 有声书 | Archive.org | 英文公版有声书 |
| B站 | 有声书/相声/评书/演讲 | DASH 音频流 | M4A 格式,内容量大 |
