name: podcast-summarizer description: 播客/音频内容自动总结工具 - 使用 Whisper 转录 + summarize 技能总结,支持完整流程和分步操作 metadata: { "openclaw": { "emoji": "🎧", "requires": { "bins": ["bash", "python3"], "skills": ["whisper", "summarize"] } }
}
Podcast Summarizer 🎧
自动总结播客、音频内容和语音备忘录的工具。使用 Whisper 转录音频,然后使用 summarize 技能生成结构化摘要。
概述
podcast-summarizer 让你可以:
- 转录音频文件(支持 MP3, WAV, M4A 等)
- 总结长文本内容
- 执行完整流程(转录 + 总结)
- 管理和查看所有摘要
- 支持多种输出格式
设置
前置要求
必需技能:
- whisper: 本地语音转文字(无需 API key)
- summarize: 内容总结技能
必需工具:
- Bash: 脚本运行
- Python 3: JSON 解析和文件处理
安装
- 复制脚本到你的 workspace:
cd ~/clawd
mkdir -p scripts
cp [path/to]/podcast-summarizer.sh scripts/
chmod +x scripts/podcast-summarizer.sh
- 确保目录存在:
mkdir -p memory/podcast-summaries
mkdir -p memory/podcast-logs
使用方法
转录音频文件
./scripts/podcast-summarizer.sh transcribe \
-i podcast.mp3 \
-o episode1
总结文本内容
./scripts/podcast-summarizer.sh summarize \
-i "这是要总结的长文本..." \
-o summary1
完整流程(推荐)
./scripts/podcast-summarizer.sh process \
-i podcast.mp3 \
-o episode1
这将自动执行:
- 使用 whisper 转录音频
- 使用 summarize 总结转录文本
- 保存摘要到
memory/podcast-summaries/episode1.md - 记录日志到
memory/podcast-logs/episode1_{timestamp}.log
列出所有摘要
./scripts/podcast-summarizer.sh list
显示摘要详情
./scripts/podcast-summarizer.sh show episode1
命令选项
transcribe - 转录音频
-i, --input <file>: 音频文件路径(必需)-o, --output <name>: 输出名称(默认:时间戳)-m, --model <model>: Whisper 模型(默认:base)- 可选:
tiny,base,small,medium,large
- 可选:
summarize - 总结文本
-i, --input <text|file>: 文本内容或文件路径(必需)-o, --output <name>: 输出名称(默认:时间戳)-l, --length <length>: 总结长度(默认:medium)- 可选:
short,medium,long
- 可选:
process - 完整流程
-i, --input <file>: 音频文件路径(必需)-o, --output <name>: 输出名称(默认:时间戳)-m, --model <model>: Whisper 模型(默认:base)-l, --length <length>: 总结长度(默认:medium)
输出格式
摘要以 Markdown 格式保存到 memory/podcast-summaries/{name}.md:
# 摘要名称
**来源:** podcast.mp3
**转录时间:** 2026-02-06 10:30:00
**总结时间:** 2026-02-06 10:35:00
**音频时长:** 45:30
## 摘要
这里是总结的内容...
## 关键点
- 关键点 1
- 关键点 2
- 关键点 3
## 转录文本
这里是完整的转录文本...
使用场景
场景 1: 播客学习
# 总结技术播客
./scripts/podcast-summarizer.sh process \
-i tech-podcast-ep42.mp3 \
-o tech-podcast-ep42
# 快速回顾关键点
./scripts/podcast-summarizer.sh show tech-podcast-ep42
场景 2: 会议录音整理
# 转录会议录音
./scripts/podcast-summarizer.sh transcribe \
-i meeting-20260206.m4a \
-o meeting-20260206
# 提取关键决策
./scripts/podcast-summarizer.sh summarize \
-i memory/podcast-summaries/meeting-20260206.md \
-o meeting-20260206-decisions
场景 3: 语音备忘录
# 快速总结语音备忘录
./scripts/podcast-summarizer.sh process \
-i voice-note-idea.mp3 \
-o idea-001
场景 4: 网络课程学习
# 总结在线课程音频
./scripts/podcast-summarizer.sh process \
-i course-lecture5.mp3 \
-o lecture5-summary
最佳实践
1. 音频质量
- 使用清晰的音频文件(采样率 ≥ 16kHz)
- 避免背景噪音
- 对于嘈杂音频,考虑使用 larger Whisper 模型
2. 文件命名
- 使用有意义的名称(如:
podcast-name-ep42) - 包含日期或标识符
- 避免空格和特殊字符
3. 模型选择
- tiny/base: 快速,适合短音频,准确性一般
- small: 平衡速度和准确性
- medium/large: 高准确性,适合长音频和专业内容
4. 工作流优化
- 先用
tiny模型快速转录 - 如果质量不够,用 larger 模型重新转录
- 保存高质量转录文本供后续使用
与 OpenClaw Cron 集成
定期处理播客内容:
# 每天凌晨 2 点处理新播客
openclaw cron add \
--name "process-podcasts" \
--schedule "0 2 * * *" \
--command "./scripts/process-new-podcasts.sh"
process-new-podcasts.sh 示例:
#!/bin/bash
cd ~/clawd/podcasts
for file in new/*.mp3; do
name=$(basename "$file" .mp3)
~/clawd/scripts/podcast-summarizer.sh process -i "$file" -o "$name"
mv "$file" processed/
done
故障排除
转录失败
- 检查音频格式是否支持
- 确认 whisper 技能已正确安装
- 尝试不同的 Whisper 模型
总结质量差
- 尝试更长的总结长度(
-l long) - 检查转录文本质量
- 考虑分段总结长文本
文件找不到
- 使用绝对路径或相对于 workspace 的路径
- 检查文件权限
- 验证目录存在
技术细节
Whisper 模型大小
- tiny: ~39 MB
- base: ~74 MB
- small: ~244 MB
- medium: ~769 MB
- large: ~1550 MB
支持的音频格式
- MP3
- WAV
- M4A
- FLAC
- OGG
- 其他 FFmpeg 支持的格式
示例工作流
完整的播客处理流程
# 1. 下载播客
wget https://example.com/podcast-ep50.mp3
# 2. 转录和总结
./scripts/podcast-summarizer.sh process \
-i podcast-ep50.mp3 \
-o podcast-ep50
# 3. 查看摘要
./scripts/podcast-summarizer.sh show podcast-ep50
# 4. 提取关键引语
grep -A 2 "关键引语" memory/podcast-summaries/podcast-ep50.md
贡献
欢迎改进!请在 GitHub 上提交 issue 或 PR。
仓库
https://github.com/90le/openclaw-skills-hub
作者
Created by Xiaoqiu (小丘) - OpenClaw AI assistant
让学习更高效! 🎧