sfxwright 是做什麼的?
成果:每個音效都作為 sounds.json 列表中的一行,包含其事件、圖層、變體、長度、路線和狀態,而每個檔案都記錄了其來源、模型、提示詞、種子、授權和編輯。數字用來抓出錯誤;耳朵來決定好壞。說出哪些音效還沒有人聽過。
SFX 代表從此資料夾執行 python scripts/sfx.py(執行它,不要讀取程式碼;sfx_audio.py 和 sfx_synth.py 是其模組)。在需要時,閱讀對應步驟的參考文件。
步驟 0:新鮮度
讀取 evergreen.json。如果 contradiction 已設定,或今天在 next_due 當天或之後,請用一句話說明,執行該任務,然後執行 evergreen-refresh。如果 verify_at_use 為 true,則在依賴模型和授權聲明前重新檢查它們。ai-sfx 長青偵察兵會在存在時提供更新。
步驟 1:權利優先
- 來自知名電影或節目的音效,或著名的聲音商標(光劍、THX Deep Note、NBC 音效、Intel 提示音、MGM 獅吼、Netflix ta-dum):用一句話拒絕複製,並提供一個基於聲學特徵原創的聲音。不要將該標題或名稱放入提示詞或檔案中:references/rights.md。
- 列表中的
commercial決定允許哪些來源。如果使用者未指定,請設定--commercial yes(較嚴格的解讀),並用一句話說明;不要停下來詢問。 - 沒有已知授權的檔案不能進入商業專案。找到其來源或替換它。絕不猜測授權。
- 絕不使用 Sonniss、BOOM 或 A Sound Effect 的檔案來訓練模型,或將其送入訓練流程。
步驟 2:規劃
執行 SFX init sounds.json --project NAME --use game --commercial yes,然後為每個音效執行 SFX add。電影片段、遊戲設計或簡單描述最後都要在此彙整:references/plan.md。對於任何具有軸向(表面、力量、大小)的內容,請先執行 SFX plan --axis surface=6 --axis force=3 --variations 4 --budget 100,再提交檔案。格式參考:references/format.md。
步驟 3:選擇路線
根據工作、授權和硬體選擇:references/routes.md。執行 SFX doctor 一次。用一句話說明選擇及其原因。安裝節點、引擎或大型模型,以及任何付費 API 呼叫,都需要先取得使用者同意;同時使用現有資源。沒有可連接的資源不是錯誤:SFX synth 無需模型,而 SFX gen --workflow-out 會提供一個工作流程。
步驟 4:製作
SFX synth list # 所有配方、參數和材料
SFX synth footstep --param surface=gravel --takes 6 --out takes/ --name step
SFX gen "heavy wooden crate dropped on concrete, dead room" --seconds 2 --takes 4 --out takes/ --name crate
SFX library found.wav --licence cc0 --library Freesound --title "..." --url ...
SFX register sounds.json crate takes/crate_01.flac
提示詞應說明來源、材料、空間和時間,而非一個故事。要求的長度是最大值,因此請預期會有填補。在改變文字之前,先嘗試不同的種子。絕不要求模型生成一個走路循環:改為製作單一步驟,然後使用 SFX sequence。
步驟 5:編輯
SFX edit(整理、修剪、淡入淡出、增益、峰值、音高、拉伸、反轉、卷積、直流偏移)、layer、vary、sequence、loop、place、record-sheet(為有錄音路線的音效規劃)、tone(穩定的安靜拉伸,可選填充;與 check --tone-match 比較)、pop(添加或使用 --verify 驗證主幹音軌頭尾的 2 個爆音)。配方及每項編輯的成本:references/edit.md。音高預設為變速播放;拉伸會模糊衝擊感。編輯會向前傳遞來源資訊,而無衍生作品的來源會拒絕它們。絕不要手動複製或重新命名音效:側車檔案會遺留在原地。使用 edit、finish 或 synth --out 寫入最終名稱。
步驟 6:檢查每個批次
SFX check takes/*.flac --seconds 2 # 每個檔案的讀數和標記
SFX set takes/step_*.wav # 近似重複、離群值、電平分佈
SFX timing walk.wav # 太均勻,或一個樣本重複
SFX sheet takes/*.wav --out sheet.png # 查看波形
任何變體集合都必定執行 set。一個標記代表需要聆聽;它不是最終判決,而一個乾淨的結果並不代表音效就很好。根據需求豁免某些檢查(例如對爆裂聲使用 --waive CLICK)。每個數字的含義及其校準基準:references/thresholds.md。
步驟 7:聆聽
數字無法判斷音效是否適合其畫面,或者一個集合是否聽起來像一個整體。當存在 askwright 頁面時,將選取的音效放上去,進行電平匹配(SFX review --match)、盲測,並為影片配上畫面。否則,提供標記的檔案列表和簡單的問題。將聽到的內容記錄在該 take 的 heard 欄位中,並將選取的音效標記為 picked: true。
步驟 8:完成與記錄
SFX finish in out --dest game-sfx:僅調整增益,最後再編碼。未知的目標目錄是錯誤:需要詢問。當 musicwright 存在且整個混音需要目標響度時,使用 mw.py master。引擎和目標目錄:references/finish.md。
SFX doc sounds.json --kind cue|impl|credits,然後執行 SFX ship sounds.json。報告 BLOCKED、CHECK 或 CLEAR 狀態及其原因、需要歸屬的內容和商店揭露資訊。這是一份記錄,而非法律建議。
輸出
路線、列表路徑、每批次的標記、誰聽到了什麼,以及任何輸出時的 ship 答案。
規則
- 絕不能稱生成的音效為「錄製的」或「無 AI 參與」。
ship會列出需要揭露的項目。 - 帶有音符、調性和節奏的音樂交由 musicwright 處理;對話及其環境音交由 voicewright 或 cinewright 處理。
- 隨插件發布的樣本必須具有明確的權利。
工作期間:記錄學習
如果使用者糾正你、錯誤重複出現,或出現解決方法,請將其添加到 LEARNINGS.md。如果該情況證明某條規則有誤,請修正該規則,記錄在 CHANGELOG.md 中,並在 evergreen.json 中設定 contradiction。
維護
長青單元,等級 fast;狀態儲存在 evergreen.json 中。請參閱 MAINTENANCE.md、RESEARCH.md、TESTS.md、evals/。