Communitygithub.com

uday629/talking-head-short

直式談話頭短影音(Reels、TikTok、Shorts)的專業編輯工具。從原始影片中轉錄、刪除不良片段與靜音、辨識內容類型(24 種主題矩陣),詢問使用者風格選項,最後產出流暢專業的成品,包含黃金比例動態字幕、語意導向動態圖形、授權 B-roll、音樂、音效與字型、色彩校正與品質檢測。

talking-head-short 是什麼?

這個技能是專為直式談話頭短影音(如 Reels、TikTok、Shorts)設計的全自動編輯工具。使用者只要提供原始影片(如談話、Podcast 片段、教練、創辦人、UGC 或解說影片),技能就會自動完成轉錄、去除填充詞與不良片段、辨識 24 種主題類型、詢問使用者風格偏好,最後產出專業級成品。支援多種平台,包括 Claude Code、Cursor、Codex 等可執行 shell 腳本的環境。其運作流程分為六個階段:環境設定、分析、風格選項詢問、素材收集、規格撰寫與預覽、最終渲染與品質檢測。關鍵資產(字型、音樂、B-roll)均來自授權來源(Google Fonts OFL、Mixkit CC0),並有完整備援機制以應對沙盒環境的網路限制。此技能適合任何需要快速產出高品質直式短影音的使用者,無論是內容創作者、行銷人員還是企業團隊,都能藉此大幅縮短編輯時間並確保輸出品質。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/uday629/talking-head-short-skill/tree/HEAD/talking-head-short

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Talking-Head Short — 專業編輯器

回覆精簡,不要重複轉錄文稿或長篇日誌。使用「編輯」工具修改 spec.json,不要重寫。每個腳本都會輸出簡潔報告;閱讀、行動、繼續前進。

S=<此技能目錄>/scripts,WD=<原始影片旁的工作目錄>/ths_<名稱>。

0. 設定(每台機器/沙盒執行一次)

bash $S/setup.sh → 使用輸出的 PY=。它會從 PyPI 安裝所有套件,如果沒有 ffmpeg 也會安裝靜態版本。 每個下載都有自動備援。沙盒(claude.ai 程式執行,無論免費或付費)通常會封鎖 HuggingFace、Mixkit 和 Google Fonts API,但允許 GitHub:

  • 轉錄模型:HuggingFace → GitHub 鏡像(whisper-base,再降級至 whisper-tiny)
  • 音樂/音效:Mixkit → GitHub 鏡像 CC0 套件(編號類似 pack:lofi_chill)
  • 字型:Google Fonts 儲存庫 → jsDelivr → GitHub 鏡像 OFL 套件(32 種字型家族)→ 系統字型
  • B-roll:Mixkit → 無(使用卡片,或請使用者上傳片段) 如果設定印出「無網路」/ pip 失敗:表示沙盒的網路傳輸已關閉。請明確告知使用者(一次訊息): 「claude.ai → 設定 → 功能 → 程式執行 → 網路存取:所有網域(或新增:pypi.org、files.pythonhosted.org、github.com、objects.githubusercontent.com、release-assets.githubusercontent.com、api.github.com、raw.githubusercontent.com、cdn.jsdelivr.net、huggingface.co、mixkit.co、assets.mixkit.co),然後開始新對話並再次執行 /talking-head-short。」如果沒有 numpy/ffmpeg 就不要嘗試編輯。 僅在所有來源都失敗時:要求貼上轉錄稿 → $PY $S/align_text.py $WD transcript.txt。資產會快取在 ~/.ths_assets。

1. 分析

$PY $S/analyze.py RAW $WD 它會輸出解析度、眼睛位置、淨長度、自動移除的填充詞/結巴/重複、CHECK(軟性填充詞、低信心度字詞、長停頓),以及每 8 個字附帶時間戳記的 TEXT。

  • 自行判斷不良片段。 移除錯誤的開頭、未完成的句子、「你知道就類似 對啊」、「差不多」。保留修辭性的重複。使用 --remove '[[s,e],...]'(來源秒數)重新執行。轉錄內容會快取。
  • 只有在眼睛位置或構圖有疑慮時,才查看 $WD/frames.jpg。

2. 摘要(在心中,然後對使用者說 4 行)

寫出:主題 · 核心訊息 · 情緒曲線(鉤子 → … → 結尾) · 主題列(從 NICHES) · 語調(冷靜/平衡/活力) · 原始構圖(寬鬆或緊密)。 然後執行 $PY $S/style.py RAW "<niche>" --out $WD/style.json。它會提供適應後的調色盤(附原因)、字型、MG/B-roll/音樂/音效方向以及重要備註。 閱讀 references/craft.md 一次(規則)和 references/spec.md(規格格式)。

3. 在建立前先詢問(絕不先渲染)

如果可用,使用 AskUserQuestion;否則使用一條精簡的編號訊息。每次推薦選項 1。

  1. 風格: 偵測到的主題 + 語調(例如「自我成長 · 冷靜反思」)對比 1–2 個替代方案。
  2. 字型: 該列的配對對比 2 個替代方案,需有明確的風格對比(無襯線主體 + 襯線/斜體關鍵字,或粗體無襯線關鍵字 + 斜體襯線重點)。
  3. 調色盤: 影片適應的列調色盤對比影片衍生調色盤,或使用者提供的品牌色。
  4. 視覺密度: 簡潔(字幕 + 2–3 張卡片) · 平衡(字幕 + 4–6 張卡片/B-roll) · 豐富(更多 MG + B-roll)。
  5. 音樂: 從 $PY $S/assets.py music "<mood>" 列出 3 個授權候選(id · 標題 · 標籤),或無。
  6. B-roll: 是(符合逐字內容的授權素材)/否。 跳過使用者已回答的問題。等待答案。

4. 收集資產

  • 字型:$PY $S/assets.py font "Family" ...
  • 音樂、音效、影片:執行 assets.py music|sfx|video "<query>" 列出,然後執行 assets.py get <kind> <id> $WD。
    • 音效依語調:冷靜 →「air woosh」、「chime」;平衡 →「whoosh」、「pop」;活力 →「swoosh」、「impact」(每個只用一次)。
  • 被封鎖的來源會自動使用備援(套件編號)。assets.py pack 列出整個離線 CC0 套件。

5. 撰寫 spec.json、計畫、風格預覽

  1. 撰寫 $WD/spec.json(參見 references/spec.md):依口說順序的字幕、對應正確句子的卡片、音訊。
  2. $PY $S/engine.py $WD --plan → 透過編輯 spec 修正每個 ISSUE(縮短或合併節拍、移動或刪除卡片下的字幕),然後重新規劃直到沒有 ISSUE 或只剩下可接受的。
  3. $PY $S/engine.py $WD --frames t1,... 使用 10–15 個時間點:每張卡片的中心點和結束前 0.3 秒,以及每條字幕結束前 0.1 秒。查看 $WD/styleframes.jpg 並修正任何被裁切、擁擠、對齊錯誤或偏離調色盤的部分。
  4. 向使用者展示風格預覽,並附上一行訊息(「可以渲染嗎?」)。僅針對他們標記的部分迭代。

6. 渲染、混音、品質檢測

  • bash $S/render.sh $PY $WD 並行渲染各部分並串連(在筆電上約每分鐘影片 5 分鐘)。在有單一指令時間限制的沙盒中,每個部分執行一次 $PY $S/engine.py $WD --render --part i/N,然後執行 --concat N。
  • $PY $S/mix.py $WD → final.mp4(語音清理、與結尾對齊的音樂降低、音效、-14 LUFS)。
  • $PY $S/qa.py $WD → 查看 qa_endframes.jpg。每個節拍和卡片的結尾必須顯示完整的文字和動畫。閃爍幀必須為零。
  • 交付檔案路徑,加上 3 行說明你選擇了什麼以及為什麼。提及任何無法下載的資產。

不可妥協的事項(原因:每一項都曾被指出是業餘表現)

  • 字幕絕不被裁切。主體 ≤ 關鍵字寬度且位置靠近。兩種對比字型風格符合黃金比例。絕不為單獨的填充詞加字幕。
  • 動態圖形展現語意,在場景切換前完成,且維持統一的視覺系統。沒有火柴人或剪貼畫。
  • 流暢:經過緩動、鎖定眼睛的縮放跨鏡頭切換;無閃爍幀;多樣化轉場。
  • 僅色彩校正。僅使用授權資產(Mixkit / Google Fonts OFL),並在 $WD 中保留 LICENSES.txt。

相關技能