SuperAPI AI 工具集

talking-head-analyzer

智能体与模型

查看项目

更新于 10-29 10:47

技能介绍

口播博主动作拆解

把一位真人口播博主的开头动作,拆成数字人能执行的文字规则。产出物是一个新的 skills/talking-head-<slug>/ 目录。

原则

只提炼动作、节奏和结构。不收录对方的长相、服装、场景细节和逐字台词;台词只记录句子功能(打招呼、痛点提问、承诺……),口头禅最多引用几个字说明句式

仓库只收开头片段。每条样本截开头 25 秒放进 samples/talking-head-<slug>/,文件名「序号_作品ID」;完整原片、音频、抽帧图、完整转写留在仓库外的工作目录(.gitignore 只放行 samples/ 下的 mp4)

不要把原视频当参考视频喂给生成模型,否则对方的脸、衣服、背景可能串进成片

只写可复现的具体动作:哪只手、什么形状、在什么高度、持续多久、卡在哪个词上。不写「自然」「丰富」「有感染力」这类模型无法执行的词

区分「观察」和「建议」:观察写进 references/samples.md,建议写进 SKILL.md 的「数字人生成建议」

流程

  1. 选片

选 4 条点赞最高的本人棚拍口播视频;跳过播客、外景探访、混剪、合拍

记录每条的链接、发布日期、采集时的点赞数、主题

  1. 准备素材(本地)

用平台允许的方式把视频保存到本地目录(例如 yt-dlp),然后:

scripts/prepare_clips.sh <原片目录> <工作目录> 25

得到开头 25 秒的片段、16k 音频和每秒 2 帧的总览拼图。

  1. 转写

用任意 ASR 转写 audio/*.wav,保留分句时间戳。例如本地 Whisper:

mlx_whisper audio/xxx.wav --model mlx-community/whisper-large-v3-turbo --language zh --output-format json

  1. 看整体结构

读每条的总览拼图,按秒标出画面状态:真人全屏 / 画中画(人在哪个位置、什么形状)/ 无人素材 / 花字。算出开头 20 秒里真人全屏的占比,写下开头结构(第一句是什么功能、什么时候切走、什么时候回来)。

  1. 看手势

只对真人全屏段做每秒 4 帧的细看图:

scripts/contact_sheet.sh clips/xxx.mp4 sheets/xxx_10.5s.jpg 10.5 6 4 6x4 400

对照转写稿,逐句记录:手势形状、单手还是双手、高度范围、持续时长、卡在哪个词上、表情和头部动作。

  1. 归纳

手势词汇表:反复出现的只有几个?给每个编号(作者首字母 + 序号)

范围:手的活动框(例如胸口到眉毛)、是否超出肩宽、肘部是否贴身

节拍:手势在什么时候切换,多久一次,是否对称

表情:第一帧表情、重音处的固定表情(眯眼、挑眉)

风险分档:低(手不入画、单手低位)/ 中(双手对称、手指不需精确)/ 高(双食指、捏合、五指张开、弯指)

开头结构类型:「先人后证据」还是「先证据后人」

  1. 写成 Skill

复制 templates/creator-skill-template.md 到 skills/talking-head-<slug>/SKILL.md 填写;样本表和观察写进 references/samples.md。然后:

把 clips/ 里的开头片段按「序号_作品ID.mp4」复制到 samples/talking-head-<slug>/

在 data/samples.csv 追加样本行(含 clip 列)

在仓库 README.md 的博主表里加一行

自查清单

手势词汇表里每一项都有:形状、触发台词类型、位置、时长

有「禁止动作」

开头结构模板里的台词只写功能,没有抄原句

没有描述对方的长相、服装和具体场景

仓库里只有 samples/ 下的开头片段,没有完整原片、音频、截图和完整转写

「生成描述示例」是原创的,能直接改成自己的