Zhaofeng

PPT Audio To Video

设计创意v0.1.0
作者:Zhaofeng更新于 2026-05-11ppt-audio-to-video@clawhub_lzfxxx/ppt-audio-to-video
视频处理音频处理#Audio#PDF

据 AlphaMoat 统计,截至 2026-09,PPT Audio To Video 累计下载 1,889 次、获 0 个星标,在全部 5,078 个 AI 技能中排名第 4,503 位,在「设计创意」分类(512 个)中排名第 452 位。

累计安装
451
累计下载
1,889
星标
-
全站排名
#4,503
全站前 89% · 「设计创意」前 89%
平台累计安装累计下载星标评论
ClawHub ↗20871--
SkillHub ↗4511,889-—

各平台的计数口径不同,统计时间不一致。

这个技能是做什么的

它准备幻灯片图像和文本,以 whisper-cpp 转写音频,按主题变化及特征关键词对齐页面,再用 ffmpeg 渲染。需相应媒体/PDF 工具与转写模型;除非明确要求,不均分页面时长。不确定边界会标记供复核,转写、大纲和时序文件用于后续修订。

资料发布于 2026-10-27

可以用来做什么

  • 把讲解录音和课件制作成同步视频

什么时候用

  • 音频缺少可用的幻灯片画面,需要制作课件视频时

示例提示词

以下是根据技能文档生成的示例,不代表实际运行结果。

准备页面图像和转写,按主题变化提出时序方案,渲染前标出不确定的切页边界。

月度数据趋势

累计下载1,889
5521,2701,9882026-03 · 累计下载 6512026-05 · 累计下载 9922026-06 · 累计下载 1,1062026-07 · 累计下载 1,3452026-08 · 累计下载 1,4912026-09 · 累计下载 1,88926-0326-09
星标-
0112026-03 · 星标 -2026-05 · 星标 -2026-06 · 星标 -2026-07 · 星标 -2026-08 · 星标 -2026-09 · 星标 -26-0326-09

2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。

月份累计下载环比星标
2026-091,889—-
2026-081,491+10.9%-
2026-071,345+21.6%-
2026-061,106+11.5%-
2026-05992—-
2026-03651—-

SKILL.md 原文

以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。

4.9 KB · ClawHub v0.1.0
---
name: ppt-audio-to-video
description: Convert narration audio plus slide decks into a narrated video. Use when the user has an audio-only `mp4/m4a/mp3/wav` and a `ppt/pptx/pdf` deck, and needs slide images, transcript extraction, slide timing planning, or final `mp4` rendering with `whisper-cpp` and `ffmpeg`.
---

# PPT Audio To Video

Use this skill when the source video has narration audio but no usable slide visuals, and the final deliverable should be a slide-based lecture video.

Resolve bundled scripts relative to this skill directory. If the runtime has already opened this `SKILL.md`, prefer paths like `scripts/extract_slide_outline.py` and `scripts/render_from_timing_csv.py` instead of machine-specific absolute paths.
展开全部(共 114 行)

## Core workflow

1. Inventory inputs.
   - Confirm which of these exist: audio-only `mp4/m4a/mp3/wav`, `ppt/pptx`, `pdf`, and any pre-rendered slide images.
   - Prefer an existing `pdf` or image directory for rendering. Treat `pptx` as the source of slide text and as a fallback for export.

2. Prepare tools.
   - Required for deterministic steps: `ffmpeg`, `ffprobe`, `pdftoppm`.
   - Required for transcription: `whisper-cli` from `whisper-cpp` plus a multilingual model such as `ggml-small.bin`.
   - If only `pptx` exists and no `pdf/images` exist, prefer `Keynote` or `PowerPoint` export on macOS. Use `soffice` only as fallback because profile or rendering issues are common.

3. Produce slide images.
   - If `pdf` exists, render it to images:
     ```bash
     pdftoppm -png -r 200 "$PDF" "$OUTDIR/slide"
     ```
   - If only `pptx` exists, export to `pdf` or slide images with `Keynote` or `PowerPoint`, then continue from `pdf`.
   - Keep slide filenames ordered and stable, such as `slide-01.png`, `slide-02.png`, ...

4. Extract slide text.
   - Run:
     ```bash
     python3 scripts/extract_slide_outline.py \
       --pptx "$PPTX" \
       --out "$WORKDIR/slide_outline.csv"
     ```
   - Use the output to identify slide titles, distinctive keywords, and section changes.

5. Extract clean audio for ASR.
   - For audio-only `mp4`, extract mono `wav`:
     ```bash
     ffmpeg -y -i "$AUDIO_MP4" -ar 16000 -ac 1 -c:a pcm_s16le "$WORKDIR/audio.wav"
     ```
   - If the source is already `wav/mp3/m4a`, convert to the same mono `wav` form if needed.

6. Transcribe with `whisper-cli`.
   - Example:
     ```bash
     whisper-cli -ng \
       -m "$MODEL" \
       -f "$WORKDIR/audio.wav" \
       -l zh \
       -ocsv -osrt -of "$WORKDIR/transcript"
     ```
   - Prefer `transcript.csv` for downstream parsing. `transcript.srt` is useful for manual review.
   - If GPU allocation fails on macOS, retry with `-ng` to force CPU mode.

7. Build `slide_timings.csv`.
   - Do not average slide durations unless the user explicitly asks for it.
   - Read the transcript and slide outline together, then create a monotonic timing plan by topic changes, section boundaries, and unique keywords.
   - Use this schema:
     ```csv
     slide,start_sec,end_sec,duration_sec,reason
     1,0.000,15.000,15.000,opening title and agenda
     2,15.000,100.000,85.000,architecture overview starts here
     ```
   - Keep slide numbers sequential and ensure `duration_sec = end_sec - start_sec`.
   - Validate that the last `end_sec` matches the audio duration or is within a small tolerance.

8. Render the final video.
   - Run:
     ```bash
     python3 scripts/render_from_timing_csv.py \
       --images "$SLIDE_IMAGES_DIR" \
       --timings "$WORKDIR/slide_timings.csv" \
       --audio "$WORKDIR/audio.wav" \
       --output "$OUT_VIDEO"
     ```
   - The script generates an `ffconcat` file, validates timing continuity, and calls `ffmpeg` to encode the final `mp4`.

9. Verify and iterate.
   - Check output duration with `ffprobe`.
   - If a slide cuts too early or too late, edit only the affected rows in `slide_timings.csv` and rerun the render script.
   - Keep the transcript, outline, and timing CSV as reproducible working files.

## Heuristics for timing alignment

- Use section-divider slides briefly. These slides usually hold for 5-20 seconds.
- Use the first segment that clearly switches topic as the next slide start.
- Prefer exact topic transitions over title-word matching. ASR often distorts proper nouns and product names.
- Let the model infer timings, but keep the render step deterministic through `slide_timings.csv`.
- When confidence is low, produce a first-cut video and tell the user which slide boundaries likely need review.

## Common commands

Install dependencies on macOS if missing:
```bash
brew install ffmpeg poppler whisper-cpp
```

Typical multilingual model download:
```bash
mkdir -p .models
curl -L 'https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin' -o .models/ggml-small.bin
```

## Bundled scripts

- `scripts/extract_slide_outline.py`
  Extract slide text from `pptx` into CSV or JSON for timing analysis.
- `scripts/render_from_timing_csv.py`
  Validate a timing CSV, generate an `ffconcat`, and render the final video with `ffmpeg`.

「设计创意」分类下的热门技能

Zhaofeng 的其他技能

数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。