影片解說員
用旁白製作一支 3Blue1Brown 風格的解說影片,主題不限。視覺效果使用 Manim(社群版)。旁白使用 Kokoro-82M,這是一個本機的文字轉語音模型,可在機器上執行,無需 API 金鑰。每一行旁白決定了與之搭配的動畫時序。
工作分為兩個部分:
- 你撰寫
script.md:每一行旁白以及播放時畫面上顯示的內容。你擁有上下文,因此由你來撰寫腳本。 - 一個子代理根據
script.md建構影片。它會撰寫場景、渲染場景、檢查佈局,並進行最終渲染。
建構過程大約會進行 20 次工具呼叫,每次呼叫都會再次傳送完整的上下文。新的子代理的上下文較小,因此建構過程更便宜且更快。子代理也會在背景執行,因此使用者可以繼續與你互動。
explainer 指令會完成其餘的工作。它必須在 PATH 環境變數中。關於設定,請參閱 https://github.com/pranav7/video-explainers。執行 explainer -h 檢視指令列表。
0. 設定(每台機器一次)
執行 explainer doctor。它會安裝 Homebrew 套件、字型、TinyTeX、Python 環境和圖示,然後測試 Kokoro 和 LaTeX。重複執行是安全的。如果某個指令因缺少依賴項而失敗,請執行此指令。
1. 規劃
- 位置。 如果對話是關於一個有自己文件資料夾的專案,請將影片放在該專案內的
videos/<slug>/資料夾。否則,請使用~/Movies/explainers/<slug>/。 - 受眾與長度。 僅在請求未明確指出時才詢問。預設值:對該主題沒有背景知識的好奇成年人,長度 2 到 4 分鐘。
- 腳本長度。 Kokoro 每分鐘約可說 170 個單詞,因此 3 分鐘的影片約需 500 個單詞的旁白。每個章節對應 30 到 45 秒。
選擇適合主題的形式。
對於一個概念(例如演算法、數學或科學中的想法):
- 以一個具體的問題或謎題開場,而不是定義。
- 用一個觀眾能看到的具體例子建立直覺。
- 歸納總結,然後才展示公式。公式為觀眾已經看到的東西命名。
- 以一張圖呈現關鍵概念作為結尾。
對於一種情況(例如執行失敗的事件、事故、設計、工作進度回顧):
- 以發生的事件開場,並帶入真實數字。
- 逐步展示導致該情況的機制。
- 展示改變了什麼:修正方案、決定或下一步。
- 以一張顯示整個系統以及變更位置的圖作為結尾。
2. 撰寫 script.md
在影片目錄中撰寫 script.md,格式如下:
# 為什麼訂單頁面這麼慢
提供給團隊中的工程師。大約 3 分鐘。
## 調色盤
| 概念 | 顏色 |
| --- | --- |
| API 伺服器 | SKY |
| 資料庫 | VIOLET |
| 緩慢、浪費的工作 | CORAL |
| 修正方案 | MINT |
## 1. 鉤子:五十筆訂單,五十次查詢
- 「載入五十筆訂單需要四秒鐘。」
- 一個瀏覽器卡片,顯示珊瑚色的「4.1 秒」,以及一份 50 個訂單標籤的清單。
- 「伺服器針對每筆訂單向資料庫詢問一次。」
- 一個 API 伺服器卡片和一個資料庫卡片。封包在兩者之間傳輸,每次代表一筆訂單。
每個章節標題都是 ## <數字>. <場景名稱>: <章節標題>。建構器會為每個章節建立一個場景類別。章節標題會成為影片中的章節標記。
建構器無法看到此對話。請將所有出現在畫面上的名稱、數字、標籤和數值都放入腳本中。
旁白會完全按照所寫的內容朗讀:
- 撰寫口語形式:例如「x 平方」、「二派 r」、「P O 編號」、「v 二」。不要在旁白中加入 LaTeX、符號或程式碼。
- 每行寫一個句子,最多兩個。每行代表一個視覺變化。
- 如果 Kokoro 發音錯誤,請在行內提供其音素:
[Kokoro](/kˈOkəɹO/)。 - 預設聲音為
af_heart。如果使用者在意聲音,請執行explainer voices讓他們聽看看(afplay voice-samples/<name>.wav)。
在每一行下方,描述畫面,而不是投影片。命名物件、它們顯示的內容以及移動的方式。為每個概念從調色盤中指定一種顏色。
從工具包的強調色中選取調色盤顏色:SKY、MINT、AMBER、CORAL、VIOLET、AQUA、ROSE、PEACH、LIME。工具包也有用於非概念元素的 neutrals 顏色:SUBTLE、FAINT、INK。工具包包含卡片、標籤、表格、程式碼視窗、管線、序列圖、時間軸、樹狀圖、標註、圖表、大數字和 Lucide 圖示。請描述使用它們的畫面。
直接顯示每個數字。不要要求一個從零開始計數的數字。
3. 移交建構工作
以子代理的身分啟動建構器。如果你的說明指定了用於建構工作的代理類型或模型,請使用它們。給予此提示:
建構 <目錄>/script.md 的解說影片。執行 `explainer guide` 並遵循其指示。回報影片路徑、其持續時間,以及你保留在影片中的每個佈局警告及原因。
如果使用者要求字幕,請在提示中加入「用 --captions 參數渲染。」。
告知使用者影片正在處理中,然後繼續其他工作。如果你無法啟動子代理,請自行執行 explainer guide 並完成其步驟。
4. 交付
當建構器回報時,開啟 <目錄>/video.mp4(在 macOS 上,使用 open)。告訴使用者:
- 檔案路徑和持續時間。
- 影片包含章節標記。
- 建構器留下的任何問題。
詢問需要修改什麼。若要進行修改,如果你的工具可以向同一個建構器傳送訊息,請將修改發送給它,因為建構器會保留其上下文。否則,使用修改後的內容啟動一個新的建構器。如果修改會影響旁白,請先編輯 script.md。