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–2 個替代方案。
- 字型: 該列的配對對比 2 個替代方案,需有明確的風格對比(無襯線主體 + 襯線/斜體關鍵字,或粗體無襯線關鍵字 + 斜體襯線重點)。
- 調色盤: 影片適應的列調色盤對比影片衍生調色盤,或使用者提供的品牌色。
- 視覺密度: 簡潔(字幕 + 2–3 張卡片) · 平衡(字幕 + 4–6 張卡片/B-roll) · 豐富(更多 MG + B-roll)。
- 音樂: 從
$PY $S/assets.py music "<mood>"列出 3 個授權候選(id · 標題 · 標籤),或無。 - 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、計畫、風格預覽
- 撰寫
$WD/spec.json(參見 references/spec.md):依口說順序的字幕、對應正確句子的卡片、音訊。 $PY $S/engine.py $WD --plan→ 透過編輯 spec 修正每個 ISSUE(縮短或合併節拍、移動或刪除卡片下的字幕),然後重新規劃直到沒有 ISSUE 或只剩下可接受的。$PY $S/engine.py $WD --frames t1,...使用 10–15 個時間點:每張卡片的中心點和結束前 0.3 秒,以及每條字幕結束前 0.1 秒。查看$WD/styleframes.jpg並修正任何被裁切、擁擠、對齊錯誤或偏離調色盤的部分。- 向使用者展示風格預覽,並附上一行訊息(「可以渲染嗎?」)。僅針對他們標記的部分迭代。
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。