real-sound について
real-soundは、実録音または制作済みの音源でローンチ動画のサウンドトラックを作る、サウンド担当者やエージェント向けのワークフロースキルです。映像フレームとの同期、測定による品質確認、ライセンス監査、批評、マスタリングを扱い、音声自体は生成しません。
主な機能
- 01映像フレームに基づくキュー作成
- 02音源調達とライセンス監査
- 03音楽編集とサウンドデザイン
- 04ミックス測定と品質確認
- 05批評、マスタリング、クレジット、音声多重化
活用シーン
- 01製品ローンチ動画のサウンド設計
- 02効果音と映像イベントの同期
- 03音源ライセンスとミックスの確認
- 04マスター音声と動画クレジットの準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ leonxlnx/ earshot --skill real-soundインストール後、Claude Code で/real-soundを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/design-format.mdlicences.mdprocess.mdsound-design.mdtroubleshooting.mdscripts/analyze.pyarrange.pyaudit.pycredits.pylicences.pymaster.pymix.pymux.mjsqa.pyvariant.pytemplates/arc.jsonaudit_entry.jsoncues.jsondesign_fragment.jsonmanifest_entry.jsontemplates/prompts/critic_director.mdcritic_edges.mdcritic_masking.mdcritic_sync.mdcritic_tonal.mddesigner.mdfixer.mdlicence_audit.mdmusic_supervisor.mdsourcing.md詳細
real-sound
音が聞こえない映画のサウンドスーパーバイザーになりましょう。サウンドトラックは、実際に録音または制作されたプロ仕様の音声(ライセンス取得済みの音楽トラック1曲、実際のフォーリーと効果音、実際の環境音)のみで構成されます。決定論的なミキサーが映像のキューフレームに音を配置し、耳で聴くのではなく測定し、5つの視点で批評し、1つのエージェントが修正して、マスタリング、クレジット表記、ミックスを行います。コードで音を選択、トリミング、配置、音量調整、パンニング、EQ、リサンプリングによるピッチ変更、音楽のタイムストレッチ、マスタリングを行います。コードで音を生成することはありません。
目指す水準はプロ仕様のローンチ映像です。画面上のあらゆる音に発生源があり、素材の音色に一貫性があり、ヒーローの登場に音楽のドロップが重なり、それ以外の部分では控えめに仕上げ、ロゴを決着させて、余韻を残して無音へつなげます。ルール:
references/sound-design.md(および同梱の参照プロファイルについては、earshot リポジトリの docs/launch-video-sound.md:プロ仕様のローンチ映像7本)。
以下の <skill> はこのフォルダーを指します。Python: 以下の {{PY}}(およびすべてのプロンプトテンプレート内)は、numpy、scipy、soundfile、earshot パッケージを備えた1つのインタープリターです。earshot リポジトリの仮想環境(Windows では <earshot repo>/.venv/Scripts/python.exe、それ以外では <earshot repo>/.venv/bin/python)、または <python> -c "import earshot" が動作する任意の Python を使用します。Windows の python は Microsoft Store のスタブであることが多く、動作しません。コマンドを実行するときやサブエージェントにプロンプトを渡すときは、{{PY}} をフルパスに置き換えてください(その他のプレースホルダーは references/process.md に記載されています)。スクリプトは -I(分離モード:ダウンロードしたファイルがモジュールをシャドーイングすることはありません)を付けて実行してください。scripts/licences.py(audit.py と credits.py がインポートするライセンスポリシーモジュール)を除き、すべてのスクリプトで --help が表示されます。
プロセス
| 手順 | 担当 | 出力 | ゲート |
|---|---|---|---|
| 0. キューリスト | リード | out/cues.json | 映像コードから同期フレームを計算済み |
| 1. ブリーフ | リード | audio/SOUND_BRIEF.md | すべてのキューに音の必要性(または「なし」)がある |
| 2. 素材調達(カテゴリごとに並行) | 調達エージェント | audio/assets/<cat>/、マニフェスト | 各ファイルを測定し、使用するトリム部分について earshot の realness が「real or pro-produced」であること(「uncertain」は根拠があり、トリム単位で再確認した内容をマニフェストに記載する場合のみ) |
| 3. ライセンス監査 | 監査担当者 | audit.json | 映画で使用する素材について audit.py が終了コード0を返す |
| 4. 音楽編集 | 音楽スーパーバイザー | audio/design/music.json | グリッドを確認済み、登場にドロップが重なり、スプライスが自然 |
| 5. デザイン断片(カテゴリごとに並行) | デザイナー | audio/design/<cat>.json | 単独レンダリング+QAに問題なし |
| 6. 統合 | リード | サウンドトラック、ステム、レポート、トレース | マスターゲート(+-0.5 LU、<= -1.5 dBTP) |
| 7. QA+リスニング | リード | out/qa/qa.json、earshot のタイムライン/シート/批評 | QA失敗なし |
| 8. 批評(5つの視点、並行、読み取り専用) | 批評担当者 | 優先順位付きの問題+テスト済みの操作 | |
| 9. 修正 | 修正担当者1名 | デザイン | QA:リグレッションなし |
| 10. マスタリング、クレジット表記、ミックス | リード | CREDITS.md、説明文、映画 | クレジット処理の終了コード0、遅延0 |
各手順の詳細、役割、各批評担当者が測定する内容については、references/process.md を参照してください。各サブエージェント向けプロンプトは、すぐに記入して使えるブリーフとして templates/prompts/ にあります。
0. 映像からのキューリスト
すべての音は、映像コードが計算したフレームに配置します。接触フレーム、ポップインの50%フレーム、動きの速度ピーク、ライザーのヒット、ワードマークが読めるようになるフレームなどです。Cinetic の映像にはすでに out/cues.json があります(export-cues.ts)。それ以外の場合は、タイムライン定数から同じ形式(templates/cues.json)を作成してください。安定した ID(act:thing:n)を使うと、正規表現で動作クラスのルールに一致させられます。
1. ブリーフ
templates/SOUND_BRIEF.md を audio/SOUND_BRIEF.md にコピーします。内容は、コンセプト(音色パレット、音楽の展開、配置場所)、映像マップ(各キュー:画面上の内容、音の必要性)、環境音ゾーン、許可されるライセンス、品質基準、ファイル構成です。これはすべてのサブエージェントにそのまま渡す契約書です。ブランドの個性に合う行を選んでください(references/sound-design.md §3)。
2. カテゴリごとの素材調達(templates/prompts/sourcing.md)
一般的なローンチ動画のカテゴリ:ui(クリック、タップ、切り替え、ポップ)、keyboard、
motion(ヒュッ、上昇音)、impacts(見せ場のヒット、ロゴ)、ambience、music。キャラクターを扱う動画では、foley、登場する世界、オブジェクトも加えます。
Freesound(CC0/CC BY;HQ プレビュー cdn.freesound.org/previews/<id//1000>/<id>_<user>-hq.ogg)、Mixkit(WAV
assets.mixkit.co/active_storage/sfx/<id>/<id>.wav)、音楽には作曲家のライブラリを使用します。各アイテムのライセンスは個別のページで確認し(references/licences.md)、節度を守って順次ダウンロードします。すべてのファイルを測定します。
{{PY}} -I <skill>/scripts/analyze.py audio/assets/ui/* --png out/audio-review/ui --out out/audio-review/ui.json
{{PY}} -m earshot realness audio/assets/ui/ # gate: "real or pro-produced" (re-check trims: --start --end)
{{PY}} -m earshot rank "a single crisp trackpad click" audio/assets/ui/ --top 5
{{PY}} -m earshot match <file> "a soft cork pop" --alts "a gunshot" "a balloon burst"
{{PY}} -m earshot find <long take> "a single mechanical key press" --top 8 # trims; skip any marked head cut / tail cut
3. ライセンス監査(templates/prompts/licence_audit.md)
監査担当は各ページの記載内容(licence_seen、licence_confirmed)を
audio/assets/manifests/audit.json に記録します。スクリプトは残りの項目(分類、ID と URL の照合、ファイルのデコード、長さ、
クレジット表記)をチェックします。
{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json [--fetch]
使用可能:CC0、パブリックドメイン、CC BY 2.0-4.0、Mixkit の無料ライセンス、Pixabay。使用不可:NC、ND、SA、Sampling+、個人利用限定、独自ライセンス、係争中のライセンス。未確認のものはブロックされます。
4. 音楽(templates/prompts/music_supervisor.md)
動画の構成に合う、ライセンス済みのトラックを1つ選びます。動画の小節ごとの展開を記述し(templates/arc.json)、次を実行します。
{{PY}} -I <skill>/scripts/arrange.py audio/assets/music/<track> --film-bpm 120 --arc audio/arc.json --out out/audio-review/music/arrange.json
テンポに合わせて、グリッドを測定済みのアタックに合わせます(ビートトラッカーには20~50 msの遅れがあります)。ダウンビートの位相を提案し、最も有力なドロップ候補を動画の小節に固定して、小節線に沿ったセグメント(そのまま貼り付けられる music ブロック)を作成します。弱点はダウンビートです。LOW 信頼度と表示された場合(テストした2つのトラックのうち1つでは半小節ずれていました)、最初の音、セクションの入り、小節表のコード変化をもとに、表示された2つのグリッドから選び、--phase N を指定して再実行します。その後は判断に基づいて編集します。各つなぎ目でハーモニーが続くようにし、見せ場のフレームにドロップのダウンビートを合わせ、ロゴに最後のコードを合わせて、tail_fade で終わりまでフェードさせます。
5. カテゴリごとのデザインフラグメント(templates/prompts/designer.md)
audio/design/<category>.json にサンプル(トリミング)、スライス(複数のヒットを含むテイクを、1つずつのヒットに切り分けるもの)、プール、キューイベントのルール、自由配置、アンビエンスベッド、音楽ブロックを記述します。すべてのキーと実例については
references/design-format.md を、ローンチ動画の完成例については templates/design_fragment.json を参照してください(ファイル名は
mk-0000_mouse-click.wav のようなプレースホルダーです。マニフェスト内の実際の録音に置き換えるとレンダリングできます。それまでは、ファイルが見つからない場合に mix.py が停止し、不足ファイルを一覧表示します)。
単独で検証します。
{{PY}} -I <skill>/scripts/mix.py --only ui --dump out/audio-review/ui/dump # every trim as WAV + numbers
{{PY}} -I <skill>/scripts/mix.py --only ui --trace out/audio-review/ui/adds.json --out out/audio-review/ui/solo.wav
{{PY}} -I <skill>/scripts/qa.py --only ui --report out/audio-review/ui/solo_report.json --stems out/audio-review/ui/solo_stems --trace out/audio-review/ui/adds.json --out out/audio-review/ui/qa.json
{{PY}} -m earshot timeline out/audio-review/ui/solo.wav --cues out/cues.json
6-7. 統合、QA、試聴
{{PY}} -I <skill>/scripts/mix.py --root . --design audio/sounddesign.json --cues out/cues.json --trace out/qa/adds.json
{{PY}} -I <skill>/scripts/qa.py --layers # clicks, edges, audibility, harshness, loudness, coverage, sync, density
{{PY}} -I <skill>/scripts/qa.py --listen --realness --video out/film.mp4 # + earshot timeline, sheet, critique, realness
{{PY}} -m earshot critique out/audio/soundtrack.wav --video out/film.mp4 # scorecard vs professional launch films
{{PY}} -m earshot sheet out/audio/soundtrack.wav -o out/qa/sheet.png --video out/film.mp4 --cues out/qa/cues_sounded.json
qa.py は、すべての指摘を、その原因となったルールとサンプル(トレース)に結び付けます。モデルなしでも使用できます。
--listen を指定すると、earshot の文字起こし(out/qa/qa_timeline.txt)、注釈付きシート、スコアカードが追加されます。
8-9. 批評と修正
読み取り専用の批評担当が5つ並行して動作し、それぞれに専用のプロンプトがあります:critic_sync.md、critic_edges.md、critic_masking.md、
critic_tonal.md、critic_director.md。それぞれが独自のフォルダー内で修正をバリアントとしてテストします。
{{PY}} -I <skill>/scripts/variant.py --ops out/audio-review/critic_tonal/ops_v1.json --out out/audio-review/critic_tonal/v1 --render --qa
そして、正確な操作内容と変更前 -> 変更後の数値を添えて、優先順位付きの問題一覧を返します。次に、1つの修正担当(fixer.md)が操作を統合し、競合を解決し、統合したバリアントを直前の qa.json と照合して確認してから適用します(variant.py --apply。元のファイルはバックアップされます)。意図的な例外として確認済みのものは、"qa_ok": "<reason>" で明示します。少なくとも1回実施し、レベルまたは音楽の編集を変更した場合は2回目も実施します。
10. マスター、クレジット、MUX
mix.py は master.py を使ってマスタリングします(-14 LUFS、トゥルーピークリミッター、上限0.77 linear、ゲート +-0.5 LU、かつ <= -1.5 dBTP)。
{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json # exit 0
{{PY}} -I <skill>/scripts/credits.py --root . --design audio/sounddesign.json --audit audio/assets/manifests/audit.json
node <skill>/scripts/mux.mjs --video out/film.mp4 --audio out/audio/soundtrack.wav --out out/film_sound.mp4
{{PY}} -m earshot timeline out/film_sound.mp4 --cues out/qa/cues_sounded.json # the finished file, heard
CREDITS.md と out/CREDITS_description.txt(動画の説明欄に貼り付けます。CC BY のクレジット表記は説明欄に記載する必要があります)。
mux.mjs は映像をストリームコピーし、AAC 音声を映像の長さに合わせてカットします。
ローンチ動画:サウンドマップ
| 映像 | 音 | タイミング |
|---|---|---|
| カーソルの移動、ホバー、スクロール、進捗、ストリーミングテキスト | なし(音楽で表現します) | |
| クリック/タップ | 映画全編で使う実際のクリック音を1つ。押した音の約85 ms後に離した音を入れ、毎回同じ音量にします | 押したフレーム |
| タイピング | 実際のキーボードを1つ録音して編集します。1秒あたり約12キー以下、25 chars/sを超える場合は単語ごとに1音。音楽を6-10 dB下げます | 音を鳴らす各文字 |
| カード/チップ/バッジの出現 | 柔らかな実音のポップ音またはティック音。連続する場合は徐々に高くします | 移動量の50 % |
| トグル、ロック確定、カウンターの最終値 | 実音のラッチ音/クリック音/鮮明なティック音 | 接触/ロックのフレーム |
| カメラのスケール移動、素早いパン、ズーム(映画1本につき約2回) | 実音のスウィッシュ音。速度のピークに音の頂点を合わせます | 速度のピーク |
| ハードカット | なし | |
| リビールまでの緊張感 | 音楽の盛り上がり、またはヒットの30-250 ms前に終わる実音のライザー | ヒット |
| ヒーローのリビール | 音楽のドロップ(ダウンビートがここに来るようにトラックを編集します)+任意で実音のインパクト音を1つ | フレーム |
| ロゴ/ロックアップ | 小節線で音楽を止めるか、フィルターで音量を下げ、0.2-0.7 sのほぼ無音を挟み、キーに合う柔らかな音を1つ鳴らして、余韻を無音まで伸ばします | ワードマークが読めるフレーム |
レベル:-14 LUFS、AAC後のトゥルーピークは<= -1 dBTP、LRAは5-9 LU。最も大きな音はドロップ(全体の30-60 %地点)に置き、ロゴの音量はその8-20 dB下にします。設計した効果音は約10秒につき5つとし、ドライで中央に配置します。測定基準と、安っぽさが出る典型例:
references/sound-design.md。
ツール
| 用途 | ツール |
|---|---|
| 録音の測定(フォーマット、ノイズフロア、帯域幅、オンセット、スパイク、テンポ/キー)+スペクトログラムPNG | scripts/analyze.py |
| 録音を聴く:実音か合成音か、どのような音か、最適な候補、長いファイル内の最良テイク | {{PY}} -m earshot realness / describe / match / rank / find / compare / ab |
1つのファイル、またはその一部分(--start --end)のレベル/明るさ/オンセット | {{PY}} -m earshot measure(Python:from earshot import api; api.measure(...)、同様にapi.find、api.realnessなど) |
| ライセンス+ファイルの監査 | scripts/audit.py(ポリシーはscripts/licences.py) |
| 音楽のグリッド、ダウンビート、小節線での編集案 | scripts/arrange.py |
デザインのレンダリング(--onlyで単独再生、--dumpでトリミング、QA用の--trace) | scripts/mix.py |
| マスタリングとラウドネス測定 | scripts/master.py(--measure) |
| 配置に基づく客観的なQA | scripts/qa.py(--layers、--listen、--realness) |
| 評論家のバリエーション、修正ツールによる適用 | scripts/variant.py |
| CREDITS.mdと動画の説明欄に記載するクレジット | scripts/credits.py |
| サウンドトラックを映像に合わせる | scripts/mux.mjs |
| ミックス全体/映画を聴く、注釈付き映像、ローンチ動画のスコアカード | {{PY}} -m earshot timeline / sheet / critique |
ファイル
audio/SOUND_BRIEF.md the contract (templates/SOUND_BRIEF.md)
audio/assets/<category>/ downloaded recordings (<source>-<id>_<slug>.<ext>; never commit or publish them)
audio/assets/manifests/<cat>.json one entry per recording (templates/manifest_entry.json)
audio/assets/manifests/audit.json licence audit (templates/audit_entry.json)
audio/sounddesign.json top level: includes, buses, master (templates/sounddesign.json)
audio/design/<category>.json one fragment per designer (templates/design_fragment.json)
out/cues.json the picture's cue events (templates/cues.json)
out/audio/soundtrack.wav, stems/ the master and its stems
out/qa/ mix_report.json, adds.json, cues_sounded.json, master.json, qa.json
out/audio-review/ per-category and per-critic work, variants, dumps (the audit trail)
CREDITS.md, out/CREDITS_description.txt
参考資料
references/process.md:役割、手順、各評論家の測定項目、しきい値とその情報源、バリエーション、ラウンド。references/design-format.md:すべてのデザインキー、デフォルト値、処理順、出力、実例。references/sound-design.md:ローンチ動画と映画のサウンドルール、レベル、同期、変化、チューニング、選定、安っぽさが出る典型例。references/licences.md:許可/禁止事項、サイトごとの確認方法、帰属表示、Content ID。references/troubleshooting.md:エラーと対処法。- Cineticの映画:earshotリポジトリ内の
docs/INTEGRATION.md(キューファイル、タイムライン、レビューループの連携方法)。