speech-to-attention-video
Skill0 starsChanged 29 days agoMITView on GitHub
把中文会议、访谈、讲座或播客的单机位、多机位、PPT 与音频素材,转成可追溯的完整叙事版、主题版、注意力切片、章节版、字幕、说话人标识、封面和可上传交付包。用户提到“按关键词剪视频”“关键帧”“去语气词”“摘金句”“爆款逻辑”“speech to attention”“长视频剪短”“多机位”“PPT 切屏”“会议视频加字幕”“主题切片”“视频封面”,或启动 09-video-production 数字员工时使用。兼容 Qwen Code 与 Codex;不要只写计划,在用户授权制作后要真实渲染并完成 QA。
Files
Speech to Attention Video
把语音素材转成一组可解释、可复查、可继续修改、可直接交付的视频产品。注意力不是简单寻找高频关键词,而是寻找一句话在叙事中的功能:它是否提出问题、制造张力、给出具体判断、带来转折,或者完成收束。
运行模式
本 Skill 可以独立使用,也可以由 digital-employees/09-video-production/00-bootstrap.md 编排。
- 独立模式:从用户给出的媒体与逐字稿开始,在项目旁建立独立分析目录。
- 员工模式:先遵守 09 的 task、状态、handoff 和输出归属,再运行本 Skill。
- Qwen Code:canonical Skill 通过
~/.qwen/skills/speech-to-attention-video发现,可显式运行/speech-to-attention-video。 - Codex:从可用 Skill 列表调用;如果运行时没有发现它,直接读取 canonical
SKILL.md,工作流与产物契约不变。
不要根据模型名称假设它能看完整视频。大文件用 ffprobe、转录、抽帧、波形、EDL 和渲染结果逐层缩小;模型原生多模态能力只能作为补充证据。
开始前
- 确认输入视频或音频、逐字稿(如有)、目标平台和期望时长。
- 查找当前目录及祖先目录的
QWEN.md、AGENTS.md、项目状态文件;项目规定优先。 先运行只读运行时检查,再检查单个媒体:
bash scripts/runtime-preflight.sh bash scripts/preflight.sh "/absolute/path/input.mp4" "/absolute/path/transcript.docx"- 明确发布边界。录制许可不自动等于公开许可;不确定时把输出标记为
internal-review-only。 - 用户说“先不要剪”时,只产出计划、候选时间段与 EDL 草案,不渲染成片。
工作流
1. 建立可追溯语料
- 用
ffprobe记录媒体时长、分辨率、帧率、音频采样率和声道。 - 优先使用用户提供的逐字稿;保留原文件,不在原件上覆写。
- 将
.docx等格式抽取为 UTF-8 文本,再与本地 Whisper 的词级或句级时间戳对齐。 - 每条话语至少保留:
speaker、source_in、source_out、text_raw、text_clean、confidence。 - 无法可靠识别的词用待确认标记,不凭上下文悄悄改写专名。
2. 去语气词,但保护人的语义
把删除分为三类:
safe_remove:孤立且不承担语义的“嗯、呃、那个、就是、然后”等,以及明确重复起音。review_remove:与停顿、情绪、强调或话轮切换相连的语气词,需要试听。keep:承担否定、转折、节奏、人物气质或关键语义的口语成分。
剪口原则:优先在呼吸、静音和完整词边界切割;保留 80–180ms 自然余量;过密跳切、吞字或音色突变时回退。去语气词不是把口语改成书面语。
3. 识别金句与注意力结构
先理解主题,再评分。关键词仅用于召回候选,不直接决定入选。每个候选句记录 0–5 分:
| 维度 | 判断 |
| 命题清晰度 | 是否能独立表达一个判断 |
| 具体性 | 是否有人、行动、场景、数字或可感知细节 |
| 张力 | 是否包含反差、冲突、风险、意外或未解问题 |
| 新信息 | 是否改变观众此前的理解 |
| 可引用性 | 脱离上下文后是否仍基本准确 |
| 叙事功能 | 是否能作为钩子、背景、推进、转折、证明或收束 |
| 伦理与证据 | 是否忠于说话者,是否避免夸大和断章取义 |
同时给候选标注叙事角色:hook、context、tension、turn、proof、payoff。短视频不是把最高分句子堆在一起,而是至少形成”钩子 → 理解 → 转折/证据 → 收束”。
3b. 关键帧 OCR 补充(可选,MiniCPM-V)
Whisper 转录只覆盖说的话,不覆盖画面上的文字。MiniCPM-V 8B 可作为补充信号源,从关键帧中提取 PPT 标题、章节卡文字和烧录字幕,扩增金句候选池。
什么时候值得跑:
- 视频大量使用 PPT 或章节卡(文字在画面上而非口播中)
- 烧录字幕与语音转录不一致(后期修改、翻译版等)
- 需要从 PPT 中提取演讲大纲作为章节分割参考
不需要跑的情况:
- 纯人物对谈/口播,画面上没有额外文字信息
- 已有人工校准的完整逐字稿
工作流(补充层,不改动核心 pipeline):
- 从视频中按时长均匀抽取关键帧(默认每 30 秒一帧,或按 PPT 切换节奏调整):
mkdir -p stage-keyframes
DUR=$(ffprobe -v quiet -print_format json -show_format “$INPUT” | jq -r '.format.duration')
INTERVAL=30 # 每 30 秒一帧
for ((t=5; t<${DUR%.*}; t+=INTERVAL)); do
ffmpeg -y -v quiet -ss “$t” -i “$INPUT” -vframes 1 -q:v 2 “stage-keyframes/$(printf '%04d' $t)s.jpg”
done- 对每帧调用 MiniCPM-V,使用描述型 prompt(避免直接文字提取触发隐私护栏):
payload = {
“model”: “minicpm-v:8b”,
“prompt”: “请描述这张视频截图的画面内容。画面中有什么文字或标题?”
“这些文字是字幕、PPT标题、还是章节卡片?请逐条写出文字内容。”,
“images”: [base64.b64encode(img).decode(“ascii”)],
“stream”: False
}- 将 OCR 提取的文字作为候选信号(不是事实),注入现有金句评分流程:
- 被 OCR 读出的 PPT 标题/论点 → 与 Whisper 转录段落做时间窗对齐
- 章节卡文字 → 作为
hook或context候选 - 所有 OCR 来源标注
source: “keyframe-ocr”,与source: “transcript”区分
- 对齐后进入步骤 3 的七维评分系统,与转录金句一视同仁。
约束:
- 关键帧 OCR 结果不自动等于金句,必须经过评分系统。
- 不用于量化测量(Logo 大小、标签位置等——这些用 FFprobe + 渲染模板校验)。
- 低置信度文字标注为待确认,不自作主张修正专名。
4. 先写 EDL,再渲染
使用 references/artifact-contract.md 的字段,生成机器可读 EDL 和人类审阅表。至少输出:
- 原始时间码、清理后的文字和删改原因;
- 章节、段落主题、叙事角色和注意力评分;
- 目标版本及排序理由;
- 预计成片时长和发布状态。
每个非线性重排版本都必须能追溯到原始时间码。不要为了叙事顺滑而拼接出说话者没有表达过的因果关系。
对于多人或多机位项目,同时建立 source-register.json、speaker-registry.json 和 camera-register.json。先区分事实、自动推断和人工覆盖;声纹或人脸判断不能悄悄升级为已确认身份。
5. 建立版本梯度
默认提供四层,按用户需求裁剪:
- 完整叙事版:覆盖主要主题并允许有证据的重组;时长由素材密度决定,90 分钟讲座可以是 30–80 分钟,不强压到 10–20 分钟;
- 主题版:聚焦一个组织、议题或方法,通常 5–12 分钟;
- 注意力入口:一个清晰命题,通常 60–90 秒;
- 章节版:每个主题独立成片,便于分发和重组。
注意力入口应在前 3–8 秒交代冲突或核心命题,不依赖“震惊、必看”等空洞标题。
6. 字幕与手机画面
- 字幕以人工校准文本为事实源,最多两行,按意义组切分,不按固定字数硬切。
- 人名、机构名、专有概念和数字进入发布前校对清单。
- 横版手机观看时,一级标题、分段主题和字幕分层;避免遮挡人脸和原画面关键信息。
- 白字必须在全片明暗背景上可读。可以利用原有黑色安全带、双向细阴影或稳定底色;不要只在单一抽帧上判断。
- 字幕应另存
.srt,即使已烧录,方便继续校字与平台上传。 - 不假设 FFmpeg 含
subtitles或drawtext。先读取 references/subtitle-rendering.md 并按 preflight 的实际能力选路。 - 默认优先复用 WAIC 已验证的透明 PNG → qtrle →
overlay路径;多语言字体只影响字形选择,不应触发加黑边或改变画幅。
7. 多机位、PPT 与说话人
- 先同步所有媒体并记录偏移,不要按文件名猜同步关系。
- 镜头选择同时考虑当前说话人、嘴部/手势活动、PPT 指代、画面可用性和切换节奏。
- 讲到 PPT 中的具体图表、关键词或结构时优先展示 PPT;泛泛谈论时回到人物或全景。
- 避免单一机位贯穿长片,也避免为了“有变化”而机械频繁切换。
- 说话人姓名来自 registry;低置信短话轮应隐藏姓名,明显错误用带理由的时间段 override 修正。
- 详细规则见 references/multicam-distribution.md。
8. 确定性渲染
- 使用 FFmpeg/ffprobe 做切割、拼接、音视频编码和检查;不要让模型“想象”成片结果。
- 参数、输入顺序和输出路径写进脚本或 manifest;避免只留一条聊天命令。
- 路径一律正确引用;不要依赖未解析的 glob 或当前目录偶然状态。
- 原始素材只读,输出写入独立 stage 目录;中间产物与交付成片分开。
- 先渲染一个短预览或联系表确认视觉,再跑长片。
- 字幕任务先做 10–15 秒样片;失败时先读完整错误并检查滤镜能力,禁止不改变条件地重复运行。超过 60 秒没有进展时报告状态并检查进程,不静默等待或启动额外 Agent。
9. 封面与分发包
- 封面默认作为独立 JPG/PNG sidecar 交付,不把静态封面硬插进视频开头占用注意力时间。
- 为跨平台复用,默认提供竖版 1080×1440 与横版 1920×1080;标题、人物和品牌信息放在共同安全区。
- 主题版和切片的文件主名、字幕、封面、manifest 条目保持一致,降低上传配对错误。
- 每个包附上传说明,明确哪些姓名/字幕仍是自动状态,哪些已经人工确认。
10. QA 与交付
每条成片至少检查:
ffprobe的时长、分辨率、视频/音频编码;- 全片空解码通过:
ffmpeg -v error -i output.mp4 -f null -; - 首、中、尾及章节边界抽帧;
- 字幕错字、遮挡、断句、口型漂移和最后一句是否被截断;
- 音量峰值、明显爆音、硬切和长静音;
- 成片、独立字幕、manifest、审片页或联系表齐全;
- 只有在执行并回读
open成功后,才说已经在 Finder 或浏览器打开。
员工模式下还要按 references/employee-contract.md 完成 outputs 索引、handoff、report 和 task 归档;不要让成片只留在临时 Downloads 路径。
Qwen Code / Codex 运行约定
- 两种运行时都负责分析、生成 EDL、维护项目脚本并调用本地工具;音视频判断必须有转录、波形、抽帧或实机结果支撑。
- 大文件不读入模型上下文;用
ffprobe、分段转录、JSON 摘要与抽帧逐层缩小范围。 - 当前模型若不支持音频/视频输入,使用本地 Whisper + FFmpeg,不把能力缺失误报为无法完成任务。
- 先复用项目已有脚本与 manifest。修改前读取,修改后做结构校验和真实最小运行。
- 从 Qwen Code 可显式调用
/<skill-name>,即/speech-to-attention-video。 - Skill 的 canonical 源是 706-skills;
~/.qwen/skills/和~/.codex/skills/只使用符号链接,避免多份副本漂移。
输出语言
默认用中文说明判断和交付结果;文件名使用稳定、可排序、跨工具兼容的名称。对事实、推断和待确认项明确分开。
In this repository40 other files it gives its agents.
- 706-audio-transcribe-archiveSkill
- 706-ghostwriterSkill
- 706-long-article-distillingSkill
- 706-notion-writerSkill
- author-style-mimicrySkill
- binance-4h-signalSkill
- browserSkill
- content-intelligence-searchSkill
- debotton-chen-nan-rewriteSkill
- debotton-chen-nan-writeSkill
- gdocs-mcpSkill
- harness-goal-runnerSkill
- image-ocrSkill
- image-to-htmlSkill
- lark-docx-editorSkill
- literature-searchSkill
- md-to-pdf-songtiSkill
- media-ingestSkill
- medium-research-report-harnessSkill
- moments-work-diarySkill
- panel-curatorSkill
- personal-decision-harnessSkill
- prewritingSkill
- resume-from-evidenceSkill
- resume-hr-reviewSkill
- rhetorical-structure-harnessSkill
- scholar-analyst-rewriteSkill
- skill-creatorSkill
- skill-optimizerSkill
- task-distributionSkill
- task-syncSkill
- video-downloadSkill
- wechat-article-smart-archiveSkill
- wechat-designSkill
- wechat-image-archiveSkill
- wechat-publish-2.0Skill
- wechat-publishSkill
- wechat-slidesSkill
- xhs-copywriterSkill
- xiaohongshu-posterSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

