关于 academic-presentations
academic-presentations 是面向研究者的学术演示制作 Skill,根据用户提供的大纲将论文转为幻灯片,并可选生成旁白音频和演示视频。它由用户决定结构与视觉方向,Agent 负责执行各制作阶段。
主要功能
- 01按用户大纲起草逐页讲稿
- 02用 nanobanana 制作或编辑幻灯片
- 03可选生成逐页旁白音频
- 04可选用 ffmpeg 合成视频
- 05支持将 PPTX 转为图片
适用场景
- 01将研究论文内容整理成学术报告
- 02基于已有论文图表制作幻灯片
- 03为幻灯片批量生成旁白音频
- 04将幻灯片、音频和演示录屏合成为视频
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ boom5426/ nature-paper-skills --skill academic-presentations安装后在 Claude Code 中输入/academic-presentations确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/pptx-conversion.mdslide-generation.mdtts-engines.mdscripts/batch_tts_edge.pybatch_tts_kokoro.py详细介绍
学术演示文稿
根据研究论文制作幻灯片(也可选择制作带旁白的演示视频)。所有大纲和视觉设计决策均由人来把控,Agent 负责执行。
流程
[1] Script Draft ──→ [2] Slide Generation ──→ [3] TTS Audio (optional) ──→ [4] Video Assembly (optional)
Claude Code nanobanana /edit edge-tts / Kokoro / ElevenLabs ffmpeg
仅输出幻灯片时,跳过第 3–4 阶段。用户可以从任意阶段开始。
第 1 阶段:脚本 / 大纲
输入:论文 + 用户提供的大纲或幻灯片计划
输出:video-scripts.md 或 slide-outline.md——逐页内容和讲解要点
Agent 根据用户的大纲起草脚本。结构由用户决定——Agent 不决定幻灯片数量、顺序或重点内容。
第 2 阶段:生成幻灯片
工具:nanobanana(Gemini CLI 扩展)
优先顺序(优先编辑):
- 有论文插图 → 使用 nanobanana
/edit将其嵌入幻灯片框架 - 有现成幻灯片 → 使用
/edit进行调整 - 用户提供的参考(例如来自 NotebookLM,或用户制作的 PPTX)→ 使用
/edit进行完善 - 从头制作标题页 → 使用学术风格提示词生成
- 从头制作内容页 → 使用整套幻灯片风格前导文本生成
核心原则:优先使用 /edit 编辑现有的高质量论文插图,而不是从头生成。
整套幻灯片风格:每套幻灯片创建一次 deck-style.md,并将其附加到所有从头生成的提示词前。使用 /edit 时,风格会继承自基础图片。
deck-style.md 示例:
- Canvas: 1920x1080, white background
- Accent: #2563EB blue, text: #1e293b dark slate
- Clean sans-serif, flat design, no gradients/shadows
- Bottom bar: blue accent with white affiliation text
第 3 阶段:TTS 音频(可选)
完整参考:references/tts-engines.md
批处理脚本:scripts/batch_tts_edge.py、scripts/batch_tts_kokoro.py
输出:每张带旁白的幻灯片对应一个音频文件
引擎选择
| 引擎 | 质量 | 费用 | 延迟 | 最适合 |
|---|---|---|---|---|
| edge-tts(默认) | 很好 | 免费、不限量 | 约 6 秒/页(云端) | 快速生成、优质男声 |
| Kokoro | 很好 | 免费、不限量 | 约 1.5 秒/页(本地) | 离线使用、快速批处理、优质女声 |
| ElevenLabs | 高级 | 每月免费 1 万字符 | 约 3 秒/页(云端) | 最高音质、语音克隆 |
默认:除非用户要求离线使用或高级音质,否则使用 edge-tts。
快速开始(edge-tts)
import edge_tts, asyncio
async def tts_slide(text, output, voice="en-US-AndrewNeural"):
await edge_tts.Communicate(text, voice).save(output)
asyncio.run(tts_slide("Your slide text here", "slide_01.mp3"))
语音:AndrewNeural(男声,演讲者)、AriaNeural(女声)、GuyNeural(男声,温暖)、JennyNeural(女声,专业)
第 4 阶段:组装视频(可选)
工具:ffmpeg
输入:幻灯片 PNG + 音频文件 + 可选的演示录制
# Use symlink to avoid iCloud path spaces: ln -sfn "long path" /tmp/workdir
# Slide with audio:
ffmpeg -y -loop 1 -i slide.png -i audio.mp3 \
-c:v libx264 -tune stillimage -pix_fmt yuv420p \
-c:a aac -ar 44100 -ac 2 -shortest seg.mp4
# Silent slide (N seconds):
ffmpeg -y -loop 1 -i slide.png -f lavfi -i anullsrc=r=44100:cl=stereo \
-c:v libx264 -tune stillimage -pix_fmt yuv420p \
-c:a aac -ar 44100 -ac 2 -t N seg.mp4
# Concat (always re-encode, never -c copy):
printf "file 'seg1.mp4'\nfile 'seg2.mp4'\n..." > concat.txt
ffmpeg -y -f concat -safe 0 -i concat.txt \
-c:v libx264 -pix_fmt yuv420p -c:a aac -ar 44100 -ac 2 final.mp4
所有片段必须使用相同的采样率(44100Hz)、立体声和 AAC 编码。
PPTX 转换(如有需要)
如果从现有 PPTX 开始,先将幻灯片转换为 PNG 图片:
soffice --headless --convert-to pdf --outdir output/ presentation.pptx
pdftoppm -png -r 300 output/presentation.pdf output/slide
NotebookLM——仅供人类参考
Agent 不得自动调用 NotebookLM,也不得使用其输出指导幻灯片或脚本决策。 大纲、视觉编排和整套幻灯片的方向均由人决定。
推荐时机:仅当用户表示不确定幻灯片该放什么内容,或需要灵感时。
注意事项
- iCloud 路径中包含空格会导致 ffmpeg 出错——创建符号链接到
/tmp/ - 音频格式不匹配会导致拼接失败——始终使用
-ar 44100 -ac 2重新编码 - ElevenLabs 免费套餐——仅支持
mp3_22050_32,每月 1 万字符 - edge-tts 需要联网——离线时改用 Kokoro
- Kokoro WAV 文件约大 7 倍——组装视频前用 ffmpeg 转换为 MP3
- Kokoro 首次运行会下载约 350MB 的模型——确保虚拟环境中已安装 pip
/edit会扭曲插图——明确说明:“保持原始插图完全不变,只添加边框”- 幻灯片风格不一致——使用基础幻灯片通过
/edit编辑,或在前面附加共享的deck-style.md
依赖项
| 工具 | 阶段 | 安装 |
|---|---|---|
| Gemini CLI + nanobanana | 2 | gemini extensions install https://github.com/gemini-cli-extensions/nanobanana |
| LibreOffice + poppler | 2(PPTX) | brew install --cask libreoffice && brew install poppler |
| edge-tts | 3 | pip install edge-tts |
| Kokoro | 3(离线) | pip install kokoro soundfile |
| ElevenLabs | 3(高级) | pip install elevenlabs + ELEVENLABS_API_KEY |
| ffmpeg | 4 | brew install ffmpeg |