# Podcast Transcribe

播客/小宇宙 → 下载 → 转录 → 存为 Markdown 的完整工作流。 支持 RSS 批量下载、单集链接转录。

- Repository: https://github.com/chubbyguan/chubbyskills (1292 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-14
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add chubbyguan/chubbyskills --skill podcast-transcribe -g -a claude-code -y`
Codex: `npx skills add chubbyguan/chubbyskills --skill podcast-transcribe -g -a codex -y`
Cursor: `npx skills add chubbyguan/chubbyskills --skill podcast-transcribe -g -a cursor -y`
Gemini CLI: `npx skills add chubbyguan/chubbyskills --skill podcast-transcribe -g -a gemini-cli -y`

## Description

播客/小宇宙 → 下载 → 转录 → 存为 Markdown 的完整工作流。 支持 RSS 批量下载、单集链接转录。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 播客转录 Skill

将播客音频下载并转录为 Markdown。支持小宇宙、喜马拉雅、直接音频地址、本地音频和 RSS 批量流程。

默认在本地使用 SenseVoice-Small（与视频类技能共用的 `chubby_common/funasr.py` 封装）。可选云端后端为阿里云百炼 DashScope 的 `qwen3-asr-flash` 和 Groq 的 `whisper-large-v3-turbo`，用户明确选择后才启用；音频会发送至云端并可能计费。

## 环境要求

以下命令在本 skill 目录运行，建议使用 Python 3.11 或更新版本：

```bash
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
# macOS: brew install ffmpeg
# Ubuntu: sudo apt install ffmpeg
```

本地模型首次使用时需要下载。仅使用云端后端不需要 funasr 本地依赖；不支持的音频容器转换仍可能需要 `ffmpeg`。云端密钥通过安全环境配置，不能写入命令参数、转录稿或版本库。

## 单集与批量

```bash
python3 scripts/transcribe.py "https://www.xiaoyuzhoufm.com/episode/xxxxx" ./output \
  --provider local
python3 scripts/transcribe.py "/你的音频目录/episode.mp3" ./output \
  --provider local --language zh
python3 scripts/batch_transcribe.py --rss-url "替换为实际 RSS 地址" \
  --output ./output --count 10 --provider local
```

将示例地址替换为实际来源。单集页面会尝试提取音频链接，提取失败时改用直接音频地址或本地文件。标准输出最后一行是成功生成的 Markdown 路径。

自动下载仅接受公网 HTTP(S) 直连地址，禁用代理和重定向，拒绝本地/私网地址。需要跳转或代理的来源，请先自行下载音频，再传入本地文件路径。

## 本地模型选择：SenseVoice-Small vs Qwen3-ASR-0.6B

`--provider local` 支持两个本地模型：`SenseVoiceSmall`（默认）和 `qwen3-asr-0.6b`：

```bash
python3 scripts/transcribe.py "/你的音频目录/episode.mp3" ./output --provider local
python3 scripts/transcribe.py "/你的音频目录/episode.mp3" ./output --provider local --model qwen3-asr-0.6b
```

`qwen3-asr-0.6b` 是可选重依赖，不在默认安装内，需自行 `pip install qwen-asr transformers torch`。

以下对比数据来自 2026-10 在 MacBook Pro（Apple M3 Pro，纯 CPU）上对 5 分钟中文播客的实测：

| | SenseVoice-Small（默认） | Qwen3-ASR-0.6B（可选） |
|---|---|---|
| 速度 | RTF 0.11（5 分钟音频约 33 秒） | RTF 0.80（约 4 分钟，慢约 7 倍） |
| 专有名词 | 一般（"岩茶"误作"盐茶"，人名前后不一致） | 更稳（"岩茶"、人名识别一致） |
| 主要风险 | 输出混入情感标签，正式文稿需清洗 | 有幻觉式改写风险（"黄金加工厂"→"皇帝家族"）；无 ITN，数字输出为全文字 |
| 长音频 | VAD 自动分段，稳定 | 整段进模型；本后端已把 `max_new_tokens` 调到 4096 避免截断 |
| 适用场景 | CPU 默认选择，长播客友好 | GPU 机器，或对专名/人名准确性敏感的内容 |

两者质量互有胜负、没有代差。CPU 场景请保持默认 SenseVoice-Small；有 GPU 或专名敏感时再选 Qwen3-ASR-0.6B。

## 可选云端转录

The rest: https://github.com/chubbyguan/chubbyskills/blob/HEAD/podcast-transcribe/SKILL.md
