發行說明音樂影片
製作一部人們願意看、同時又能讓更新內容一目了然的影片。類型定義了音樂、視覺世界、字體排版和剪輯風格。實際的產品示範承擔了解說的功能;而歌曲和視覺笑料則讓它令人難忘。
使用 Suno 製作音樂,Gemini 比較錄音,OpenAI 影像生成製作靜態圖片,Dreamina/Seedance 進行動畫製作,Blender 處理 3D 與攝影機控制,Playwright 搭配 HTML Canvas 進行產品捕捉與合成,Demucs/Whisper/librosa 進行同步,以及 FFmpeg 進行混音與輸出。必要時加入 ElevenLabs 的效果。在製作前請閱讀工具與設定;它說明了各工具間的交接以及 Dreamina CLI 的工作流程。如果某個工具無法使用,請說明缺失的能力並協商替代方案,而不是默默地忽略它。
建立製作綱要
確定觀眾、截止日期、目標時長、預期的顯示格式、來源筆記、可用的工具與核准者。僅詢問那些會實質改變工作的遺漏資訊。直接採用對話中已有的選擇與授權。
- 公開發行說明: 功能宣稱必須是已發佈、可用且已針對目標觀眾驗證過的。僅有實作或合併的變更並不足以證明其可用性。
- 內部全員大會: 如果使用者已為該觀眾批准,且其狀態已明確說明,則可以包含計劃中的工作、實驗與指標。不要悄悄地將計劃當作已發佈功能。
- 格式: 預設為原始 1080×1350,4:5 的比例,適用於社群媒體。對於全員大會,確認顯示格式;16:9 可能更合適。基於此原因,內部集數的腳本需要
--aspect參數。除非要求多種格式,否則僅交付一種格式。 - 時長: 協商一個目標時長。對於公開集數,60-90 秒是實用的初始建議;內部更新可能需要不同的長度。從一開始就為選定的時長撰寫內容。
請在使用者自己的專案目錄中工作,絕對不要在這個技能的目錄內。在指令中,<skill> 代表此技能目錄的絕對路徑。使用 python3 <skill>/scripts/new_episode.py <project>/episodes/<date>-<slug> --audience public --duration 60 建立一個集數資料夾,或使用現有的專案佈局。
維持這些不變原則
- 使用真實的產品行為搭配虛構或已明確批准的資料。生產環境的螢幕截圖並不自動適用於外部服務或公開影片。
- 將憑證、Session 值、未公開的商業細節與個人參考媒體排除在分發的技能之外。使用使用者選擇的帳戶與已授權的工具。
- 將付費生成與發佈視為不同的動作。取得任何缺失的預算或發佈授權,並重複使用已授予相同範圍的授權。核准一首歌或一部影片並不等於獲得發佈它的許可。
- 保留已鎖定的歌詞與選定的歌曲。僅在使用者授權時才更改它們。藝術家參考是用來描述創作特質;請撰寫原創的歌詞與旋律。
- 在判斷演出表現之前,請先比較實際的音訊。測量、轉錄與聆聽判斷是不同的證據。
- 每個被唱出的字都必須同步。每個展示的功能都有一句可讀的能力說明句來說明;它不重複歌詞。
- 在開場的幾秒鐘內放入鉤子(Hook)。使用一個可識別的問題或引人注目的影像,並提供足夠的上下文讓觀眾知道影片在宣佈什麼。
- 角色與效果必須有出現的意義。產品鏡頭應顯示一個動作、有用的結果,以及在相關時顯示證據。
- 將分發技能與集數資料分開保存。不要整體封存或發佈工作目錄。
執行製作
使用以下流程,並根據已可用的工具與授權進行調整:
- 選擇故事。 驗證每個候選項目的來源視窗與狀態。偏好一個有意義的主要標題搭配支援性的能力,或一小組實質的更新。在鎖定之前,提出提議的故事以供核准。閱讀簡報與文案。
- 選擇音樂世界。 提出三種截然不同的方向,每個方向都包含一個可識別的參考、精確的聲音、開場影像、敘事者與格式笑點。讓使用者選擇。閱讀類型與故事。
- 鎖定歌詞。 草擬一首簡短完整的歌曲,包含具體細節、令人難忘的鉤子、以及服務於更新的笑點。指出每個主張的來源。在 Suno 中生成一批歌曲之前,先解決編輯問題。歌詞與錄音選擇:歌曲。
- 生成並比較錄音。 在授權的預算內,使用 Suno 製作意義上不同的編曲與演唱方式。當可存取且獲得許可時,讓最新的具備音訊能力的 Gemini 模型一起比較完整的錄音;如果沒有 Gemini,則使用其他可以在一次請求中聆聽數個完整錄音的模型。先確認可用性,而不是編造一個模型名稱。使用者的選擇優先於推薦。
- 建立時間資料。 保留選擇的原始檔案,記錄任何裁剪/淡入淡出,對齊歌詞,並建立節拍網格。閱讀同步並使用隨附的製作輔助工具進行節拍/起音分析與對齊。在接受時間軸之前,檢查每一個未解析的字詞。
- 規劃並建構畫面。 在填充動畫之前,先為整個時間軸製作分鏡腳本。使用 Playwright 捕捉產品示範,生成第一幀靜態圖片,並使用 Dreamina/Seedance 對選定的鏡頭進行動畫處理。對於需要受控 3D 幾何或攝影機運動的鏡頭,使用 Blender,無論是最終渲染還是動作參考。先建構產品說明,再加入類型世界、已批准的角色和有意的視覺荒誕元素。閱讀畫面。
- 混音、渲染與檢查。 使用輕柔且有目的性的音效。檢查每一個剪輯點、字幕、暫停點和片段邊界,然後導出全品質的審查版本。閱讀聲音與交付和品質檢查。
- 修改與交付。 處理回饋意見,但避免不必要地更改已鎖定的歌曲。獲得核准後,將已核准的位元組提升到穩定的最終檔案名稱。如果需要,製作獨立的無聲產品示範與發佈套件。記錄來源庫存並在清理前驗證封存。更新私有的類型/裝置歷史記錄,並在相關的參考資料中保存可重複使用的經驗教訓,但不要匯入私有的回饋記錄。
不要在未解決的故事、類型、歌詞或歌曲決定上進行,這些需要使用者的選擇。一旦做出決定,就在已核准的範圍內繼續進行,無需再次詢問。內部發佈與公開發佈仍是兩個不同的選擇。
可選公用程式
所有隨附的腳本都在本地執行,不需要任何服務憑證:
| 腳本 | 用途 |
|---|---|
scripts/new_episode.py | 建立集數資料夾、綱要與套件清單 |
scripts/inspect_media.py | 報告串流/尺寸/時長,並驗證無聲片段或預期的輸出 |
scripts/contact_sheet.py | 使用 FFmpeg 和 Pillow 製作帶有時間戳的聯絡表 |
scripts/build_posting_kit.py | 建立離線 HTML 套件和 ZIP,內含原始的無聲示範片段 |
scripts/analyze_audio.py | 擬合 kick 對齊的節拍網格或測量人聲的起音/包絡 |
scripts/align_lyrics.py | 對齊歌唱表,保留時間證據,並標記未解析的字詞 |
scripts/render.mjs | 在精確的歌曲時間捕捉集數的合成;渲染靜態圖片、無聲畫面和示範 |
scripts/master_audio.py | 複製畫面並使用測量到的單純增益來混入一個時長匹配的音軌 |
scripts/flicker.py | 標記稀疏聯絡表遺漏的空間閃爍、脈衝和波動 |
scripts/asset_manifest.py | 為還原的集數封存建立並驗證 checksum 庫存 |
代理使用 HTML Canvas 和 Playwright 創作集數的合成;隨附的渲染器會捕捉它,而 FFmpeg 則進行編碼與混合輸出。指令與輸入/輸出合約在製作輔助工具中。當使用者選擇其他編輯器時,請使用它。保留時間模型與原始素材資產,以便另一個代理可以重建該集數。