Communitygithub.com

SonuSV7719/real-sound

為使用 Remotion、HyperFrames、three.js、GSAP 等工具製作的程式碼影片和動畫,打造基於真實授權錄音的專業級高品質配樂。

real-sound 是什麼?

此技能專為需要為程式生成的影片或動畫增添真實聲音的開發者或 AI 代理而設計。它模擬一個完整的聲音監督工作流程,從分析畫面建立提示列表開始,然後透過專門的代理進行音源搜尋、授權審核、音樂剪輯、音效設計、混音、客觀品質保證、多角度評論、修復、最終母帶處理和封裝。其核心理念是『只使用真實音源』:所有聲音(音效、環境音、音樂)都必須來自真實的錄音或經過專業製作,而非程式生成的合成音。它支援多種平台,並透過一套明確的 Python 腳本(mix.py, qa.py, audit.py 等)和 `earshot` 套件來實現可重現、可測量的音訊處理流程,確保最終成果達到專業級水準,如 -14 LUFS 響度和精確的畫面同步。

相容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/SonuSV7719/ai-video-studio/tree/master/skills/real-sound

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

real-sound 是做什麼的?

您是您無法聽見的影片的聲音監督。配樂僅由真實、專業錄製或製作的音訊組成(一首獲得授權的音樂曲目、真實的 Foley 音效和 SFX、真實的環境音),由確定性混音器放置在畫面的提示影格上,透過測量而非聆聽來評估,經過五個角度的評論,由一個代理修復,最後進行母帶處理、標註來源並封裝。程式碼負責選擇、修剪、放置、調整音量、聲像、均衡、透過重採樣調整音高、拉伸音樂時間並進行母帶處理;程式碼絕不產生聲音。

標準是專業的發佈影片:螢幕上每個動作都有其對應的聲音,使用同一種材質調色板,音樂在主角登場時達到高潮,其他地方保持克制,一個收尾的標誌,最後歸於寂靜。規則:references/sound-design.md(以及 earshot 儲存庫中的 docs/launch-video-sound.md,其中包含參考設定檔:7 部專業發佈影片)。

<skill> 以下是此資料夾。Python: {{PY}}(以及在每個提示模板中)指的是單一一個包含 numpy、scipy、soundfile 和 earshot 套件的直譯器:即 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 或 pro-produced」(「uncertain」需附上證據及在清單中重新檢查修剪層級)
3. 授權審核審核員audit.jsonaudit.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. 修復一個修復者設計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;高品質預覽 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/                  # 關卡:"real 或 pro-produced"(重新檢查修剪片段:--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   # 修剪;跳過任何標記為 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)

一首符合影片結構的授權曲目。根據影片標準撰寫起伏(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 毫秒),建議下拍相位,將影片高潮錨定在最強烈的高潮候選點上,並在小節線處草擬段落(一個可直接貼上的 music 區塊)。下拍是弱點:當它顯示 LOW 信心(在測試過的兩個曲目中,有一個會差半小節)時,根據第一個音符、段落開頭和條表格中的和弦變化,從印出的兩個網格中決定,然後用 --phase N 重新執行。然後根據判斷進行編輯:和聲在每個拼接處連續,下拍的低音在主角影格上,最後的和弦在標誌上,tail_fade 直到結束。

5. 設計片段,依類別(templates/prompts/designer.md)

audio/design/<category>.json 包含樣本(修剪)、切片(將一個包含多次撞擊的長錄音切成單次撞擊)、音源池、關於提示事件的規則、自由放置、環境音基底、音樂區塊。參考每個鍵值和真實範例: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        # 每個修剪片段為 WAV + 數值
{{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                      # 點擊、邊緣、可聽度、刺耳度、響度、覆蓋率、同步、密度
{{PY}} -I <skill>/scripts/qa.py --listen --realness --video out/film.mp4   # + earshot 時間軸、圖表、評論、真實性
{{PY}} -m earshot critique out/audio/soundtrack.wav --video out/film.mp4    # 與專業發佈影片比較的評分卡
{{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. 評論和修復

五個唯讀的評論者並行運作,每個都有自己的提示: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

並回傳排序後的問題,以及確切的操作和前後對比數據。然後由一個修復者(fixer.md)合併操作、解決衝突、檢查合併後的變體與先前的 qa.json,並套用它(variant.py --apply,原始檔案會備份)。對已確認的故意例外情況,用 "qa_ok": "<reason>" 標記。至少進行一輪;當音量或音樂剪輯有變更時進行第二輪。

10. 母帶、來源、封裝

mix.py 使用 master.py 進行母帶處理(-14 LUFS、真實峰值限制器、上限 0.77 線性;閘控 +-0.5 LU 且 <= -1.5 dBTP)。

{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json            # 結束碼 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          # 完成檔案,聽過

CREDITS.md + out/CREDITS_description.txt(貼到影片說明中:CC BY 來源必須放在那裡)。mux.mjs 會串流複製畫面,並將 AAC 音訊裁切至與畫面相同的長度。

發佈影片:聲音地圖

畫面聲音位於
游標移動、懸停、滾動、進度、串流文字無聲(由音樂承載)
點擊 / 輕敲影片中一個真實的點擊音色,按下 + 釋放約 85 毫秒後,每次音量相同按下的影格
打字一個真實的鍵盤,切片;最多約每秒 12 個鍵,超過約每秒 25 個字元時每個字一個鍵;音樂降低 6-10 dB每個發聲的字元
卡片 / 晶片 / 徽章出現一個柔和的真實爆裂聲或滴答聲,在一串中逐漸升高其移動的 50% 處
切換、鎖定、計數器的最終值一個真實的鎖扣 / 點擊 / 清脆的滴答聲接觸 / 鎖定影格
相機縮放移動、揮動、縮放(每部影片約 2 次)一個真實的颼颼聲,最高點在速度峰值速度峰值
硬切無聲
緊張到揭示音樂的漸強,或一個真實的上升音效在撞擊前 30-250 毫秒結束撞擊
英雄揭示音樂的 DROP(剪輯曲目使其下拍落在這裡)+ 可選的一個真實撞擊影格
標誌 / 鎖定音樂在小節線處停止或濾波,0.2-0.7 秒接近無聲,一個符合調性的柔和音符,尾奏歸於寂靜商標可閱讀的影格

音量:-14 LUFS,AAC 後真實峰值 <= -1 dBTP,LRA 5-9 LU,最大聲的時刻在高潮(影片 30-60% 處),標誌比其低 8-20 dB,每 10 秒約 5 個設計音效,音效乾燥且置中。測量標準和廉價的跡象:references/sound-design.md。

工具

需求工具
測量錄音(格式、底噪、頻寬、起音、峰值、節奏 / 調性)+ 頻譜圖 PNGscripts/analyze.py
聆聽錄音:真實 vs 合成、聽起來像什麼、最佳匹配、長檔案中的最佳片段{{PY}} -m earshot realness / describe / match / rank / find / compare / ab
測量一個檔案或其一段區間的音量 / 亮度 / 起音(--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 修剪、--trace 用於 QA)scripts/mix.py
母帶及響度量測scripts/master.py(--measure)
與放置相關的客觀 QAscripts/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                 合約              (templates/SOUND_BRIEF.md)
audio/assets/<category>/             下載的錄音檔     (<source>-<id>_<slug>.<ext>;切勿提交或發布)
audio/assets/manifests/<cat>.json    每個錄音檔一個條目   (templates/manifest_entry.json)
audio/assets/manifests/audit.json    授權審核             (templates/audit_entry.json)
audio/sounddesign.json               頂層:包含、匯流排、母帶 (templates/sounddesign.json)
audio/design/<category>.json         每個設計師一個片段             (templates/design_fragment.json)
out/cues.json                        畫面的提示事件              (templates/cues.json)
out/audio/soundtrack.wav, stems/     母帶及其分軌
out/qa/                              mix_report.json, adds.json, cues_sounded.json, master.json, qa.json
out/audio-review/                    每個類別和評論者的工作、變體、傾印(稽核軌跡)
CREDITS.md, out/CREDITS_description.txt

參考資料

  • references/process.md:角色、步驟、每個評論者測量的內容、閾值及其來源
  • references/sound-design.md:發佈影片聲音標準、材質調色板、規避的大忌、廉價的跡象
  • references/design-format.md:設計 JSON 格式、所有鍵值(含類型)、真實範例
  • references/licences.md:每個來源(Freesound / Mixkit / 作曲者)如何閱讀授權資訊,哪些被允許/禁止
  • 每部發佈影片的參考設定檔:earshot 儲存庫中的 docs/launch-video-sound.md

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能