ホーム / 全スキル / コンテンツ制作 / captions-and-music-bed
コンテンツ制作 · saranambiar/hyperframes-video-agent-skills

captions-and-music-bed

字幕の生成、スタイル適用、プレビュー、焼き込みを行うとともに、ダッキング、ループ/テイル選択、フェードアウト、末尾の無音保持を含むBGM・パーカッションベッドを構築します。字幕の追加、字幕のズレ修正、スタイル承認、BGMとナレーションの干渉解消、指定タイミングでの音楽の開始・終了が必要な場合に使用します。

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ファイル書き込みDual-pass Audit
Author saranambiarGitHub saranambiar/hyperframes-video-agent-skills ↗Stars 48License Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0;GitHub API license.spdx_id = Apache-2.0)Commit f6b043d9fd
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

開始条件の厳格化:ナレーションタイムラインが確定した後にのみ実行し、audio-sync-assemblyとのタイミング主導権の競合を回避。

skills/captions-and-music-bed/SKILL.md
Use this skill after the narration timeline is stable.
目的:「字幕およびBGMのタイミング基準は確定済みのナレーションである」ことを前提条件として固定化。同一ファミリーの構成スキルにおいても、字幕生成はナレーション単体マスターの作成後に配置されています。

二重の信頼できる情報源(SoT)の分離:テキスト文面はユーザーの台本原本から、表示タイミングは最終版の無音BGMナレーションマスターから取得し、両者を混同・代替しない。

skills/captions-and-music-bed/SKILL.md
- Use the user's script as wording source. - Use the final narration-only master as timing source.
目的:中核となる判定基準。「何を表示するか」と「いつ表示するか」の参照元を分けることで、文字起こしテキストによる勝手な文面変更や、台本の行数による不正確なタイミング推定を防止します。

字幕タイミングの鉄則:先頭の単語と同時に表示、常に1行のみ表示、句読点と大文字小文字を維持、無音のフックや無音CTAには字幕を出さない。

skills/captions-and-music-bed/SKILL.md
Start the caption when the first word is spoken.
目的:最も頻発する「数語遅れて表示される」不具合(failure-modesにも「Captions start several words late.」として記載)をハードルール化し、復旧手順(遅延発生時 → アライメント元の確認、無音区間による全体タイムラインのズレ確認)を明示。

スタイル変更時は全編焼き込み前に必ず単一フレームプレビューを実施:最も視覚的密度の高いフレームを抽出し、フォントサイズ、背景ボックス透明度、マージン、横幅を調整した上で全編焼き込みを実行。

skills/captions-and-music-bed/SKILL.md
Preview style before burning the full video when style changes.
目的:「スタイルは主観的な要素であり、全編焼き込み後の修正コストは極めて高い」という経済的判断をフローに組み込み。references/caption-rules.mdでも「Preview on a visually busy frame before full burn-in」を再徹底。

BGMベッドの合格基準は「ストリームの存在」ではなく「実際に聴こえること」:ダッキングパラメータとミキシングチェーンを提示し、技術的に存在していても聴こえない場合はベッド音量を上げるか閾値を下げることを明記。

skills/captions-and-music-bed/SKILL.md
If music is "technically there" but inaudible, raise bed or reduce ducking threshold.
目的:「probeでは音声トラックが確認できるが、人間の耳には聴こえない」という技術的合格・体験的失格のパターンに対する具体的な修正アクションを提示。

音源テイル戦略:原曲が動画より先に終了する場合は、音楽的に意味のある後半セクションから再開し、最終拍を切り落とさない十分な長さを確保、緩やかにフェードアウトさせ、ユーザー指定の末尾無音を保持。

skills/captions-and-music-bed/SKILL.md
If the music source ends early, restart from a musically useful tail section.
目的:ループやテイルの選択を機械的なリピートではなく音楽的判断として処理し、末尾の無音区間を明示的に残すよう要求(failure-modesのテイル関連の3つの不具合に対応)。

主観的な音量判断を網羅した10ステップのベッド構築手順(ソースオフセット、フック音量、ナレーションベッド音量、密な説明区間の音量、ポーズ時のダッキング維持、CTA音量、終了位置、フェードアウト、リミッターミキシング)。

skills/captions-and-music-bed/SKILL.md
1. Probe source music duration. 2. Pick source start offset.
目的:BGMベッドにおける最大の難所である「どの区間をどの音量にするか」を10の個別決定項目に分解し、単一のamixフィルターで曖昧に済ませることを防止。

2コア機能

01ASS字幕スタイルの起点:リポジトリルートのテンプレートに準拠した1920x1080、下部中央揃え(Alignment=2)、Arial 44、半透明黒背景ボックス、MarginV=56のCaptionスタイル
02字幕チャンク分割規則:自然なフレーズ、息継ぎ、句読点、最大行長、画面の複雑さに基づいて分割。文脈を改変せず、台本にない句読点は追加しない
033段階のタイミング参照優先順位(最終ナレーションマスターの単語レベルアライメント > ユーザーまたは文字起こしフレーズタイムスタンプ > シーンレベルの既知時間に基づく手動推定)。編集前の古い音声によるタイミング設定は厳禁
04実行可能なFFmpeg音楽ダッキングチェーン:aresample/aformat/asplitによるナレーションとサイドチェーンの分離、パラメータ化されたsidechaincompress、amix、後段のalimiter
05セグメントごとの音量階層化戦略(ナレーションのないフックは音量大、序盤ナレーションは抑制、密な説明区間はさらに下げて短いポーズでもポンピングさせない、末尾CTAは持ち上げてからフェードアウト)
06字幕トラブルシューティング(遅延・過大サイズ)およびBGMヒアリングQAポイント(冒頭5秒、ナレーション開始時、密な説明区間、長めのポーズ、テイル再開部、ラスト5秒)

3外部依存関係

KindDependency / Endpoint
cliffmpeg 滤镜链(aresample / aformat / asplit / sidechaincompress / amix / alimiter)用于旁白与音乐床的 ducking 混音
packageASS(Advanced SubStation Alpha)字幕格式与样式头,由 templates/caption-style.ass 提供起点
package仓库根脚本 scripts/build_ass_captions.py(把 JSON/CSV 的 start/end/text 事件展开为单行 ASS,默认每行 ≤58 字符)——本 skill 只点名样式模板未点名该脚本,脚本归属在仓库层
package输入素材:用户提供的脚本文本、最终旁白母版、音乐源文件(本地资产,非外部服务)
package字体 Arial(写死在 ASS 样式行的 Fontname 字段;渲染机无此字体会被 libass 替换字体,影响观感)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: (ホストエージェントによる実行)ffmpeg:字幕焼き込みおよび音声ミキシングチェーン(aresample/aformat/asplit/sidechaincompress/)
  • 本地工作目录: ファイルの読み書きと成果物出力: captions/ 配下の ASS 字幕ファイル
監査ノート: スキルディレクトリ内には SKILL.md + references/{caption-rules,music-ducking}.md のみ(純粋なインストラクション)が存在します。実行インターフェースはローカルCLI(ffmpeg によるダッキング/ミキシング/字幕焼き込みフィルターチェーン)およびローカル読み書き(captions/*.ass、プレビュー用静止画、ミキシング済み完成動画、proof frame)に限定されており、青(Blue)ランクに適合します。**素材を外部サービスへ送信することはありません**:スキルディレクトリ全体をスキャンしても、http(s):// エンドポイント、fetch/requests 呼び出し、token/env の読み込み、アップロードや外部生成APIの呼び出しは一切存在しません。音楽ソースおよびナレーションはすべてユーザー提供のローカルファイルであり、スキルが音源の推薦、ダウンロード、アップロードを行うことはありません。同族の9つのスキルとも判定基準は完全に統一されています:ディレクトリ内は SKILL.md(および references)のみ、挙動面はローカル読み書きとローカルCLIに限定され、エンドポイント、認証情報、素材の外部送信は一切含まれていません。

5二重目の独立検証

  • [ok] 「无外部依赖、素材不出网」是否成立 — 本目录正则扫描零命中 URL/fetch/token;音乐源与脚本均声明为用户提供(Music source rules 只讲 offset/duck/tail)。无上传、无生成服务、无账号额度消耗,不构成橙档。
  • [ok] ducking 片段是否是可执行 filter_complex — music-ducking.md 给的是四行完整链(asplit 出 narr/side 经 sidechaincompress 得 ducked 再 amix inputs=2 duration=first 后 alimiter=limit=0.95),参数(threshold=0.028:ratio=4:attack=18:release=260)具体非占位,可原样拼接。
  • [ok] ASS 模板能否被仓库脚本直接复用 — templates/caption-style.ass 结构与 scripts/build_ass_captions.py 的 header_from_template 期望一致:脚本取 Dialogue: 之前的部分当 header;模板 [Events] Format 行的字段数(Layer,Start,End,Style,Name,MarginL,MarginR,MarginV,Effect,Text)与脚本输出的 Dialogue 行匹配。
  • [discrepancy] 「本 skill 负责生成 ASS」是否被 SKILL.md 声明 — SKILL.md 只给样式起点与规则,未点名 scripts/build_ass_captions.py;把字幕文件从哪来写进脚本清单的是 render-qa-and-surgical-changes 与仓库 README。若只加载本件,agent 需自行决定生成方式(手写 ASS 或调仓库脚本)。
  • [discrepancy] 字体依赖是否被声明 — ASS 样式行写死 Fontname=Arial,但 SKILL.md 与 references 均未提示字体缺失风险;Linux 渲染机常无 Arial,libass 会回退替换字体,字号与行宽观感与预览不同。该风险真实存在但文档未覆盖。
  • [ok] QA 判据是否可自动验证 — SKILL.md 把听觉/视觉可读列为主判据(Check music is present and audible, not merely technically in the stream.),并给 probe 音频流作为辅助——即承认脚本只能验一半,另一半需人耳/人眼预览。

6結論

  • 二重のSoT(文面は台本、タイミングはナレーションマスター)により、字幕制作で最も破綻しやすい2要素を完全に切り分けて管理
  • 主観的なスタイル調整はすべて「プレビュー先行・全編反映は後」を徹底し、手戻りコストを1フレーム分に抑制
  • BGMの合否基準をaudible(聴こえること)と定義し修正手順を明記することで、「probeは通るが聴こえない」偽合格を排除
  • FFmpegのミキシングチェーンが具体的パラメータ(閾値、レシオ、アタック/リリース、リミッター)付きでそのまま実行可能
  • QAチェックリストとして直ちに使用可能な失敗モード一覧(音楽5項目+字幕4項目)を完備
  • 最適な用途: 適合用途:ナレーションタイムラインが確定したプロジェクトにおける「字幕レイヤー+音楽レイヤー」の構築——字幕の生成・スタイル調整・プレビュー・焼き込み、字幕の遅延やサイズ過大の修正、ナレーションに合わせたBGMのダッキング、特定タイミングでのBGM発音・停止、末尾無音の保持、密な説明区間やポーズに応じた音量カーブ制御が必要な場合。
    不向きな用途: 非適合用途:① ナレーションのタイミングが未確定の場合(まずは audio-sync-assembly でタイムラインを確定させてください。本スキルはそれを前提としています)、② ユーザーに代わる選曲や音楽のダウンロード(スキル内に音源取得の仕組みやエンドポイントは含まれません)、③ シーンの画面デザインやモーション構築(motion-design-systems / hyperframes-scene-builder を使用)、④ 複数行表示やカラオケ風のワード単位ハイライト字幕が必要な場合(デフォルト規則は1行1エントリーであり、ワード単位スタイルはASS拡張が必要で本スキルの基準対象外となります)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-28
    Option A · Direct DownloadDownload captions-and-music-bed.tar.gz
    sha256: 07c0b567449820c1…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit f6b043d9fd.