Communitygithub.com

sonorizar

動画編集イマージョンの第4ステップ。BGMと数個の効果音を追加し、音声を前面に出しつつミックスし、-14 LUFSの最終動画とクレジットを出力します。

sonorizar とは?

このスキルは、動画編集ワークフローの第4ステップ「sonorizar」を実行します。ユーザーが「/sonorizar」と入力するか、音楽や効果音の追加を依頼した際に、既にインサート済みの動画(`sequencia/3-insercoes.mp4`)に対して、1つのBGMと少数の効果音を追加します。音源は基本的に`marca/sons/`フォルダから選びますが、ユーザーが明示的に依頼した場合のみEpidemic Soundから取得できます。音声を最前面に保ち、BGMは音声の下に下がり、効果音は画面上のイベントに合わせて配置されます。最終的に`sequencia/4-final.mp4`として-14 LUFSで出力し、クレジットも生成します。Claude Codeのカスタムスキルとして動作し、提供されたPythonスクリプト群(sons.py, sonorizar.py, entregar.py)を活用します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AosJunior/imersao-edicao/tree/HEAD/.claude/skills/sonorizar

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

/sonorizar · ステップ 4

ユーザーは既にインサート済みの動画(sequencia/3-insercoes.mp4)を持っています。あなたは1つのBGMと少数の効果音を選び、サウンド一覧を表示し、許可を待ち、ミックスしてsequencia/4-final.mp4を出力します。

全ての音源はmarca/sons/から取得します:BGMはtrilhas/、効果音はefeitos/にあり、creditos.mdには各BGMの雰囲気と各効果音を使用すべきタイミングが記載されています。外部の音源は、ユーザーが明示的に依頼した場合のみ、次の2つの方法で追加できます:ユーザーがファイルをフォルダに配置して出典を伝えるか、Epidemic Soundをリクエストするかです(下記「Epidemic Sound」セクション参照)。依頼がない限り、フォルダ内の既存の音源のみを使用します。効果音は録音済みファイルをそのまま使用します。コードで音を生成(トーン、ノイズ、合成)しないでください。金属的な音になります。

音声が優先されます:BGMは音声よりもかなり小さくし、ユーザーが話すときに自動的にさらに下がります。効果音はアクセントとして、画面上で何かが起こったときにのみ、それぞれに理由を付けて使用します。

イマージョンフォルダから実行します。初回使用時の挨拶と話し方については、フォルダ内のCLAUDE.mdを参照してください。 sequencia/som/som.jsonが既に存在する場合は修正です:ステップ5に進んでください。

1. 動画と音源を読み込む

  • 動画:sequencia/insercoes/final-insercoes.mp4。ステップ3が実行されていない場合は、sequencia/decupagem/final.mp4を使用し、動画はインサートなしであることを1行で伝えてください。

  • 音声:sequencia/decupagem/palavras-corte.json。パーツ:sequencia/insercoes/insercoes.json(各camadas[]はid、de、ateを持つ)。

  • 音源:

    uv run .claude/skills/sonorizar/scripts/sons.py marca/sons
    

    およびmarca/sons/creditos.mdのテーブル(列:Clima、Quando usar)。

動画の雰囲気を一文で書き留め、イベントのリスト(各パーツが入るタイミング、および必要に応じて音声の切り替わりや締めくくり)を自分用にメモしてください。

2. 選択

  • BGM:動画の雰囲気に合うもの(Clima列による)。1つだけ、最初から最後まで使用します。
  • 効果音:入ってくるパーツごとに1つ(フックは無音:最初の1秒には何もなし)、最大で締めくくりに1つ。同じ種類のイベントには同じ音を使用します。20秒の動画であれば、2~3個の効果音です。

Epidemic Sound(ユーザーが依頼した場合のみ)

ユーザーが「Epidemic Soundを使って」「EpidemicからBGMを取得して」などと書いた場合に有効です。

  1. この会話にコネクタが存在するか確認します:ツールはSearchRecordings、DownloadRecording、SearchSoundEffects、DownloadSoundEffectです。存在しない場合、Epidemic Soundは彼女のアカウントをClaudeに接続する必要があること(設定 › コネクタ)を1行で伝え、フォルダ内の音源で続行することを提案します。

  2. BGM:動画の雰囲気を英語にしてSearchRecordings、vocals: false、雰囲気に合ったbpm範囲で検索します。1つ(彼女が選択肢を求めた場合は2つ)選び、タイトルと作者、選んだ理由を伝えます。

  3. 効果音:音の名前でSearchSoundEffectsを実行します。そのまま、イベントの長さにカットして使用します。

  4. リンクの有効期限が数分しかないため、すぐにダウンロードします(DownloadRecordingまたはDownloadSoundEffect、WAV形式):

    uv run .claude/skills/sonorizar/scripts/sons.py --baixar "<link>" "marca/sons/trilhas/<short-name>.wav"
    

    効果音はmarca/sons/efeitos/に配置します。

  5. 音源をmarca/sons/creditos.mdに、該当するテーブルの新しい行として追加します:ファイル名、タイトル、作者、出典Epidemic Sound、トラックID、ライセンスEpidemic Sound、接続されたアカウントのサブスクリプション(ファイルの再配布不可)、雰囲気。この行がないとsonorizar.pyはその音源を拒否します。

  6. フォルダ内の他の音源と同様に、音源一覧に進みます。ユーザーに、このBGMは彼女のサブスクリプションに基づくものであり、サブスクリプションが有効な間は彼女の動画で使用でき、ファイルは再配布できないことを伝えます。

3. 音源一覧

sequencia/som/som.jsonを作成します:

{
  "video": "../insercoes/final-insercoes.mp4",
  "palavras": "../decupagem/palavras-corte.json",
  "insercoes": "../insercoes/insercoes.json",
  "legenda": "../decupagem/legenda.srt",
  "sons": {
    "trilha": {"arquivo": "marca/sons/trilhas/groove.mp3"},
    "pop": {"arquivo": "marca/sons/efeitos/pop.flac"},
    "whoosh": {"arquivo": "marca/sons/efeitos/whoosh.flac"}
  },
  "trilha": {"som": "trilha", "de": 0, "abaixo_da_voz": 16, "fade_in": 0.5, "fade_out": 1.5},
  "efeitos": [
    {"camada": "titulo", "som": "pop", "volume": 0, "motivo": "タイトルが頭の上に表示される"},
    {"camada": "etapas", "som": "whoosh", "volume": 0, "motivo": "4つのステップのパネルが入ってくる"}
  ]
}
  • パーツの効果音は"camada"を使用(insercoes.jsonのid);音声上の効果音は"em"でアンカーを指定(例:"F6:Comenta")。volumeは0~+5(0は音声と同じレベル)。
  • 各音源のタイトル、作者、ライセンスはmarca/sons/creditos.mdから自動的に取得されます。
  • その他のフィールドについてはreferencia.mdを参照してください;必要な場合のみ読んでください。

確認:

uv run .claude/skills/sonorizar/scripts/sonorizar.py "videos/<pasta>/sequencia/som/som.json" --resumo

エラーなくBGMと効果音が一覧表示されれば準備完了です。「前の効果音から5秒未満」という警告は、20秒の動画に2つのインサートがある場合に予想されます:パーツごとに1つの効果音を維持し、近くに別の効果音を追加しないでください。

チャットで以下を送信してください:BGM(タイトルと作者)とその選定理由、および効果音ごとに1行(秒数 · 音 · 理由)。そして質問:「ミックスしてもよろしいですか?」

4. ミックスと出力

許可(「ミックスしてください。」)を得たら:

uv run .claude/skills/sonorizar/scripts/sonorizar.py "videos/<pasta>/sequencia/som/som.json"

動画1分あたり15秒~1分かかります。「Pronto」と表示され、最終音量が-14 LUFSから1以内であり、「Trilha embaixo da fala」が20以上であれば完了です。20未満の場合は、abaixo_da_vozに4を加えて再度ミックスしてください。

その後:

uv run .claude/skills/sonorizar/scripts/entregar.py "videos/<pasta>"

これにより、動画がsequencia/4-final.mp4にコピーされ、クレジットがsequencia/creditos.mdにコピーされ、動画が開かれます。

最終動画の場所と、クレジットが同じ場所にあることを1行で伝えてください。entregar.pyがRECADO DA IMERSÃOブロックを出力した場合は、ブロックのテキストをそのまま、応答の最後に転記してください。

5. 修正

ユーザーがリクエストした内容のみをsom.jsonで変更し、再度ミックスして出力します(ステップ4):

リクエスト変更内容
「フォルダ内の別のBGMに変更」BGMのarquivo:sons.pyの一覧で次のものに;どのBGMになったか伝える(タイトルと作者、creditos.mdから)
「Epidemic SoundのBGMを使用」ステップ2の「Epidemic Sound」セクション;その後BGMのarquivoを変更
「5秒目の効果音を削除」その秒に該当する効果音の行を削除(--resumoが時間を表示)
「音楽をもっと小さく」abaixo_da_voz + 4
「音楽をもっと大きく」abaixo_da_voz − 3、12を超えないこと;Trilha embaixo da fala行を確認(20以上)
「音楽の開始位置を変更」BGMの"inicio"(秒単位)

制限事項

  • 動画ファイル自体に音声が含まれている必要があります;BGMと効果音はその下に追加されます。
  • 音声には軽いフィルターのみ適用されます。背景ノイズ、エコー、風切り音はそのまま残ります。
  • BGMが動画より短い場合は、最初から再生し直します。
  • このステップは機械的です:労力は低〜中程度です。

関連スキル