mcpField
A
audio-reactive-video-composition

audio-reactive-video-composition

github.com/calesthioクリエイティブ・メディア219111 回インストール15 週間前に更新
リポジトリ

audio-reactive-video-composition について

許諾済み音源から、記録可能なキューマップと決定的なビジュアルタイムラインを作る制作スキルです。音響特徴の慎重な解釈、確認済みアンカー、アクセシビリティ、権利、レンダリング検証を重視します。

主な機能

  1. 01音源と分析設定の記録
  2. 02信頼度を含むキューマップの作成
  3. 03リズム型・非リズム型素材の振り分け
  4. 04キューを制限付き視覚表現に反映
  5. 05キューのフレームへの決定的な割り当て
  6. 06アクセシビリティ・権利・出力の確認

活用シーン

  1. 01安定したテンポの曲でビジュアライザーを制作
  2. 02ルバートや朗読音声に映像を構成
  3. 03複数の画面比率で再現可能なタイムラインを準備
  4. 04字幕、動き、フレーム同期を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/calesthio/generative-media-skills --skill audio-reactive-video-composition

インストール後、Claude Code で/audio-reactive-video-compositionを入力して読み込まれたか確認します。

同梱ファイルEVAL.md

詳細

オーディオに反応する映像合成

このスキルを使って、承認済みの音声ソースから監査可能なキューマップを作成し、範囲を限定した視覚表現へと変換します。基本となる契約は次のとおりです。

$$ \text{音声ソース} \rightarrow \text{測定済みの特徴量} \rightarrow \text{信頼度付きキュー} \rightarrow \text{レビュー済みアンカー} \rightarrow \text{決定論的なビジュアルタイムライン} $$

検出器の出力を編集上の意味と同一視しないでください。オンセットは自動的にビート、カット、ドロップ、または歌詞のアクセントになるわけではありません。音響的なまとまりも、自動的にヴァースやコーラスになるわけではありません。

エビデンスの姿勢

  • 文書化された事実: 公式の解析ライブラリ、規格、または引用された研究で示されている動作です。
  • 制作上のヒューリスティック: トラックと視聴者に対してテストする必要がある、実践的なマッピングです。
  • 実証的な観察: 提供された音声、アナライザーの実行、レンダリング、または再生から測定された結果です。

解析アルゴリズム、デフォルト設定、モデルの動作は変わりやすいものです。事実は2026-07-12に検証済みです。各制作で使用するデコーダー、ライブラリ、モデル、パラメーター、乱数シードを固定してください。

スコープ

このスキルが扱うのは、ソースの管理、解析ポリシー、信頼度の解釈、リズム性/非リズム性に基づく振り分け、キューの昇格、特徴量からビジュアルへのマッピング、フレームの合理的な位置合わせ、アクセシビリティ、レンダリングの品質確認です。

ミュージックビデオの物語やアーティストのブランディング、音楽生成、マスタリング、音源分離、文字起こし、作詞、またはHyperFrames/Remotion/FFmpeg固有の実装は扱いません。

音声の契約を確定する

解析の前に、次の項目を記録します。

  • ソースのパス/URI、SHA-256、取得元、権利の根拠、制限事項。
  • 選択したストリーム、コーデック、ネイティブサンプルレート、チャンネル/レイアウト、開始タイムスタンプ、再生時間。
  • デコーダー/リサンプラーとそのバージョン。
  • 標準PCM形式、チャンネル/ダウンミックスのポリシー、解析サンプルレート、ウィンドウ/ホップサイズ、センタリング、パディング。
  • アナライザー/ライブラリ/モデルのバージョン、事前分布、しきい値、乱数シード。
  • トリムのオフセットとソースの時間原点。
  • マスター出力のフレームレート(有理数として)。
  • 文字起こし/歌詞のソース、言語、タイミングの根拠、レビュー状況、別途確認した権利の根拠。

可能な場合は、サンプルインデックスを主要な解析クロックとして使います。導出した秒数で、正確なソース位置を置き換えないでください。

特徴量を慎重に解釈する

文書化された事実:

  • librosa.beat.beat_track はオンセット強度からテンポを推定し、それと整合するビート位置を選択します。較正済みのビート信頼度は返しません。
  • librosa.onset.onset_detect はオンセット強度エンベロープからピークを選択します。オンセットはイベントのアタックを推定するものであり、意味的なアクセントを示すものではありません。
  • 優勢な局所パルスはテンポの変化をモデル化できますが、あくまで推定値です。
  • Essentiaの信頼度値はアルゴリズム固有のもので、普遍的な確率ではありません。また、一部の方法では利用できないゼロの信頼度が返されます。
  • ビート評価では、一般的に許容誤差を用い、厳密な一致ではなく、テンポの半分/倍の拍節的な曖昧さを考慮します。
  • 構造上の境界の検出と構造ラベルの付与は別のタスクです。A/B/Cのようなクラスタラベルだけでは、ヴァース/コーラスの意味は確定しません。
  • RMSはエネルギーの尺度です。EBU R128のラウドネスは、定義された重み付けとウィンドウを使用します。いずれも感情を直接評価する指標ではありません。
  • スペクトル重心、帯域幅、コントラストはスペクトルの分布を表すもので、幸福感、緊張感、品質を示すものではありません。
  • 無音検出は、明示された基準値としきい値に対する相対的なものです。
  • pYINの有声音判定はピッチの周期性を示すものであり、人が話している、または歌っている証拠ではありません。

生の候補と、人が昇格させたアンカーは区別して保持してください。

キューマップの契約

各キューには、次の項目を含めます。

{
  "id": "accent-014",
  "type": "onset",
  "time_samples": 417312,
  "time_seconds": 9.46399,
  "value": 0.82,
  "units": "normalized-onset-strength",
  "analyzer": "record exact library and algorithm",
  "confidence": null,
  "confidence_semantics": "not supplied by analyzer",
  "profile_hash": "sha256:...",
  "status": "promoted-anchor",
  "editorial_role": "single visual accent",
  "reason": "reviewed strong transient before section change"
}

区間特徴量については、正確な終了サンプル/時刻を含めます。却下した候補も、証拠を削除せずに記録してください。歌詞、メタデータ、または人によるレビューで機能的なラベルが裏付けられるまでは、音響的なセクション名を中立的に保ってください。

振り分けモードを選択する

リズミカル

選択したトラッカーに有用な根拠があり、局所的なテンポが十分に安定していて、ビートとオンセットの結果が一致する場合に使用します。周期的な動きはビートに追従させられます。選択した強いアクセントや、レビュー済みのセクション変更をカットの根拠にすることもできます。

信頼度が混在

信頼できるリズムウィンドウではリズムを使用します。それ以外では、オンセット、トランスクリプトのフレーズ、エネルギー、無音、または手動アンカーに切り替えます。失敗した区間をまたいでグリッドを外挿しないでください。

非リズミカル

レビュー済みの発話・歌詞フレーズ、無音、エネルギーの輪郭、スペクトル変化、手動で確認したマクロアンカーを使用します。ルバート、アンビエント作品、スポークンワード、疎な録音、フリーインプロヴィゼーションに適しています。

特徴を視覚的な振る舞いに対応付ける

制作時のヒューリスティクス:

  • 各特徴に割り当てる視覚的な役割を限定します。
  • 連続値は、極端な最大値ひとつではなく、トラック単位またはセクション単位のロバストな統計量で正規化します。
  • 状態を切り替える前にノイズを平滑化し、ヒステリシスを使用します。
  • すべてのパラメーターに上限と下限を設け、値が欠落または無効な場合のニュートラルな動作を定義します。
  • すべてのイベントでカットするのではなく、マクロのセクションアンカー、中程度のフレーズアンカー、まばらなアクセントを使用します。
  • 低エネルギーまたは無音の区間は、静止、読解、リセット、視覚的な余白のために確保します。
  • 歌詞の行や重要なボーカルフレーズが、競合するカットやオーバーレイに妨げられないようにします。
  • アスペクト比が変わっても単一のキューマップを維持し、タイミングではなくレイアウトを組み替えます。

誤った測定値を示唆する、定量的に見えるマッピングは避けてください。エネルギーをスケールに対応付ける場合は、正確な制限範囲を定義し、それを感情とは呼ばないでください。

決定論的なフレームタイミング

$30000/1001$ のような正確なフレームレートは、有理数のまま扱います。各キューに丸め方針を定義してください。保守的な視覚応答方針では、音声イベントの時刻以降に表示される最初の出力フレームにキューを割り当てます。

$$ f = \left\lceil t_{event} \cdot \frac{fps_{num}}{fps_{den}} \right\rceil $$

元のイベント時刻と、対応付けられたフレームの両方を記録してください。エンコーダーは固定フレームレート出力を満たすためにフレームを複製またはドロップすることがあるため、エンコード後に実際のフレーム表示タイムスタンプを確認してください。

フレーム $f$ の視覚状態は、壁時計の再生時間ではなく、キューデータとフレーム時刻から導出する必要があります。分散レンダリングの前に、プロシージャルマッピングのシードを固定し、アナライザーの出力を凍結してください。

歌詞、ボーカル、字幕

トランスクリプトまたは歌詞のタイミングは、独立した根拠のストリームとして扱います。ピッチの有声音判定をボーカル検出に使用しないでください。名前、歌詞、行の境界、タイミングがタイポグラフィを制御する前に、人間がレビューしてください。

意味のある発話を含む、事前録音済みの同期メディアには、正確な字幕が必要です。必要に応じて、字幕には意味のある非発話音も含めてください。様式化された歌詞レイヤーが、アクセシブルな字幕やトランスクリプトの代わりになるとは限りません。

安全性、権利、出所情報

WCAG 2.2 SC 2.3.1 では、一般的な閾値または赤色点滅の閾値を下回る場合を除き、1秒間に3回を超える点滅が制限されています。ループを使用する場合はループ再生中に、また想定される最大スケールでテストしてください。視差効果を抑えた設定にしても、安全でない点滅が安全になるわけではありません。

大きな変位、ズーム、揺れ、または高密度のイベント応答が不快感を引き起こす可能性がある場合は、動きの少ないバージョンを用意してください。出力 FPS だけでなく、イベントの密度と移動量を減らします。

楽曲、歌詞、録音物には、それぞれ別個の権利が伴う場合があります。ファイルを所有していても、同期、翻案、配布の権利が得られるわけではありません。ソースと変換の出所情報を記録し、メタデータが真正性や許諾を証明すると主張しないでください。

QA

  1. 同一の入力/構成を再実行し、正規化されたキューマップのハッシュを比較します。
  2. クリック音を付けた候補アンカーと、採用済みアンカーを試聴します。
  3. 拍レベルの曖昧さと、信頼度判定に失敗した区間を確認します。
  4. ソースのタイミングを、デコード/トリミング済みのマスターおよびゼロ以外のタイムスタンプと照合します。
  5. すべてのマクロアンカーの直前、該当フレーム、直後のフレームを確認します。
  6. アスペクト比のバリエーション間で、キュー ID とフレーム割り当てが共通していることを確認します。
  7. 出力フレームの PTS、長さ、音声との同期を調べます。
  8. 字幕/歌詞、動きを抑えた表示、フラッシュの安全性を確認します。
  9. ソースハッシュ、プロファイル、キューマップ、マッピングテーブル、レンダリングバージョン、承認記録を保持します。

例 1:一定テンポのエレクトロニックビジュアライザー

これは完全な例であり、必須の手順ではありません。

意図: 許諾を得た 44.1 kHz ステレオのインストゥルメンタル音源から、30 fps の 9:16 および 16:9 のビジュアライザーを 30 秒間制作します。

アプローチ: 文書化されたアナライザーで安定したテンポを確認し、局所的なパルスを調べます。ビート/オンセットの候補はすべて保持します。4 拍ごとのビートを中程度の振り付けに、強度が高く確認済みのトランジェントを控えめなアクセントに、繰り返しの変化を確認済みのものをマクロトランジションに採用します。ビートの位相は 1.000 から 1.035 の範囲でのみスケールを制御し、低域のエネルギーは制限付きの奥行きを制御します。スペクトル重心はテクスチャ密度の狭い範囲を制御します。エネルギーが低い 6 拍分の区間ではタイトル表示を維持します。

すべてのアンカーを、サンプル時刻以降で最初のフレームに割り当てます。両方のアスペクト比で同一のキュー ID を使用します。QA ではクリックトラック、ハッシュの再実行、PTS、長さ、最終サイズでのテキスト、全画面での点滅を確認します。

起こりやすい失敗: テンポが半分または倍に解釈される曖昧さです。検出結果そのものは書き換えず、視覚的な周期性に選んだ拍子レベルを記録して修正します。

例 2:ルバートの朗読詩

これは完全な例であり、必須の手順ではありません。

意図: アンビエント音源を背景にした 75 秒の詩を、24 fps で制作します。

アプローチ: 全体的なビートトラッカーの結果が一致しないため、非リズム方式を使用します。確認済みの文字起こしにおける各行の開始/終了を主要なアンカーとし、休止でフィールドをリセットし、持続的なラウドネスの上昇で控えめな拡張を制御します。音響変化の候補は確認用のプロンプトとして残します。各連で安定した視覚フィールドを確立し、句読点に合わせて動きを収束させます。ビートに合わせたカットや、単語ごとのスケーリングは行いません。

縦型のバリエーションではテキストを再配置しますが、タイミングは維持します。QA では、音声を消した字幕で内容を理解できるか、音声のみで明瞭か、すべての行の境界、呼吸に隣接する無音区間、動きを抑えた表示、点滅、テキストと録音それぞれの権利を確認します。

起こりやすい失敗: 音響上の境界が文の途中に来ることです。信頼度の低いイベントとして保持し、編集上のアンカーとしては採用しません。

参照元

2026-07-12 に確認:

コメント