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
累計下載
1889
星標
-
全站排名
#4,503
全站前 89% · 「設計創意」前 89%
平台累計安裝累計下載星標評論
ClawHub ↗20871--
SkillHub ↗4511889-—

各平台的計數口徑不同,統計時間不一致。

這個技能是做什麼的

它準備幻燈片圖像和文字,以 whisper-cpp 轉寫音訊,按主題變化及特徵關鍵詞對齊頁面,再用 ffmpeg 渲染。需相應媒體/PDF 工具與轉寫模型;除非明確要求,不均分頁面時長。不確定邊界會標記供複核,轉寫、大綱和時序檔案用於後續修訂。

資料釋出於 2026-10-27

可以用來做什麼

  • 把講解錄音和課件製作成同步影片

什麼時候用

  • 音訊缺少可用的幻燈片畫面,需要製作課件影片時

示例提示詞

以下是根據技能文件生成的示例,不代表實際執行結果。

準備頁面圖像和轉寫,按主題變化提出時序方案,渲染前標出不確定的切頁邊界。

月度資料趨勢

累計下載1889
552127019882026-03 · 累計下載 6512026-05 · 累計下載 9922026-06 · 累計下載 11062026-07 · 累計下載 13452026-08 · 累計下載 14912026-09 · 累計下載 188926-0326-09
星標-
0112026-03 · 星標 -2026-05 · 星標 -2026-06 · 星標 -2026-07 · 星標 -2026-08 · 星標 -2026-09 · 星標 -26-0326-09

2026-09 起統計方法調整:同名技能按作者分別統計,並覆蓋全部技能。圖中虛線為調整前的月份,與之後的資料不直接比較,也不計算跨越調整的增長。

月份累計下載環比星標
2026-091889—-
2026-081491+10.9%-
2026-071345+21.6%-
2026-061106+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),按月更新。口徑說明見資料方法。