# 音效 CC0 真采样台账 · 批次二(2026-07-07) 《夜市一条街》的真实世界厨房 foley 从分层合成换成 CC0/公有领域真采样。起因是创始人 2026-07-06 拍定夜市 SFX 走真采样而非合成——烤肉的滋滋声、收银的钱箱声,真录音的质感比振荡器合成贴得多。本批把七个经营内容事件逐个去找干净、可核验授权的真录音,找得到就换采样,找不到就如实退回合成,绝不为了凑齐而糊弄授权。 机器可读的逐文件授权清单是采样目录里的 `manifest.json`(源页 URL、直链、license、作者、字节、裁剪窗全留痕);本页是给人看的一页数与决策留痕。 ## 采样来源与授权(逐条核验) 七个目标里六个拿到了干净的 CC0 或公有领域真录音,全部来自 Wikimedia Commons(其 license 字段可经 API 机器核验,`extmetadata.LicenseShortName` + `License` 两栏在下载当刻复核过一次,不是笼统的“免费”)。授权口径只收 CC0 与 Public domain(免授权、免署名);过程中命中的几个 CC-BY / CC-BY-SA 素材(一段现成的 “Cha Ching” 收银机、一段掌声、一个压电蜂鸣器)因为要求署名,一律不取。 | 音效 | 文件 | 采样内容 | License | 作者 | 源页 | 字节 / 时长 | |---|---|---|---|---|---|---| | 烤肉滋滋 | `sizzle.mp3` | 油锅煎炸 | **Public domain** | ezwa | [Frying fries…ogg](https://commons.wikimedia.org/wiki/File:Frying_fries_going_in_and_out_of_oil.ogg) | 22.3 KB / 1.79s | | 收银钱箱 | `cash.mp3` | 硬币落入金属钱箱 | **Public domain** | ezwa | [Coins…metallic moneybox.ogg](https://commons.wikimedia.org/wiki/File:Coins_dropped_in_metallic_moneybox.ogg) | 17.0 KB / 1.35s | | 金币叮当 | `coin.mp3` | 硬币落入木钱箱 | **Public domain** | ezwa | [Coins…wooden moneybox.ogg](https://commons.wikimedia.org/wiki/File:Coins_dropped_in_wooden_moneybox.ogg) | 13.5 KB / 1.05s | | 下单铃 | `bell.mp3` | 自行车铃清脆一响 | **CC0 1.0** | qubodup | [Bell-ring.flac](https://commons.wikimedia.org/wiki/File:Bell-ring.flac) | 17.8 KB / 1.40s | | 顾客满意 | `applause.mp3` | 鼓掌加欢呼 | **Public domain** | starlite | [Clapping hurray.ogg](https://commons.wikimedia.org/wiki/File:Clapping_hurray.ogg) | 24.8 KB / 2.00s | | 失败差评 | `buzzer.mp3` | 蜂鸣器 | **CC0 1.0** | David Pride | [Buzzer.wav](https://commons.wikimedia.org/wiki/File:Buzzer.wav) | 11.0 KB / 0.85s | 四个来自 pdsounds.org 早年释入公有领域的现场录音(ezwa、starlite),两个来自 freesound 与 Cotswold Jam 的 CC0 释出(qubodup 的自行车铃、David Pride 的蜂鸣器),均经 Wikimedia Commons 转存并保留原始出处。收银用的其实是“硬币落金属钱箱”的真声——比一段合成 cha-ching 更贴夜市小摊那种把零钱往铁盒里一撂的动作,也正好对上工单里“收银 cha-ching/钱箱”的口径。 每个文件下载后统一走一道加工:curl 直下原始 ogg/flac/wav,ffmpeg 裁到两秒以内的活跃窗口(连续声如煎炸、鼓掌取最响的一段,脉冲声如落币、铃响、蜂鸣取起音到自然衰减),下混单声道 44.1kHz,首尾各加几十毫秒淡入淡出消除裁剪爆音,最后 libmp3lame 96k 编码。六个文件合计 106 KB,加清单 111 KB。 ## 采样 vs 合成的分布 真实世界 foley 事件换采样,抽象与 UI 反馈音保留合成——后者本就是设计音,没有“真录音更贴”的诉求。 - **改播采样(6 类事件 → 6 个样本)**:下锅 `order`(下单铃 + 起锅滋滋两层走采样)、收银三档 `cash_low/mid/high`(高档额外叠一层散币叮当)、小费 `tip`、好评 `praise`、差评 `blame`。 - **保留合成(切菜 chop,1 类)**:见下节,如实退回。 - **本就合成、不在采样范围**:翻台、连击、断链、进货、缺货、解锁号角、升级、研发、雇佣、技能、潮汐、评论家登场、雨声、任务、成就 fanfare、图鉴、UI 点击、弹窗、广告位金光,以及出餐 `serve_ready`。这些是设计音或抽象反馈,合成足够。 接线上采样是懒加载:首个用户手势解锁 AudioContext 后才 fetch 解码六个样本,不进首屏字节账;解码完成前、文件缺失或加载失败,对应事件自动回落到原有合成声部,一行都没删,缺音不崩的红线不破。node 与 headless 环境没有 fetch 与 AudioContext,整条采样加载跳过,纯逻辑与门的契约不变。 ## 未竟:切菜 chop 退回合成(如实) 切菜没找到干净的 CC0 真录音,退回合成。Wikimedia Commons 搜遍 chopping / cutting / cleaver / knife-cutting-board 全部落空;freesound 上确有 CC0 的切菜录音,但其原文件下载要 OAuth token,内网凭据档里没有,不硬凑;OpenGameArt 的 CC0 合集要逐层下钻且难以在无法试听的机器上核验音色。唯一现成的公有领域近似物是一段 “Knocking on wood or door”,但它是连续几下敲击、带空心门腔体的共鸣、没有切割的嘶声,在 6c6g 上没法试听确认它读起来像不像“刀落砧板”——按诚实协议,音色不可核验的样本不采。保留的合成 chop 本来就是照刀落砧板建模的(短噪声穿切 + 低频木墩 thock),比一段敲门声更贴,作为这一个音的兜底站得住。 结论:七个目标,六个真采样、一个合成兜底。 ## 成本 零采买。六个样本都是 CC0 或公有领域,无授权费、无素材费。开销只有下载与转码的本机算力和时间,没有调用任何付费模型或接口(本批音效线与批次二美术线的 mmx 生图预算无关,不占其额度)。 ## 验收 | 门 | 结果 | |---|---| | logic-smoke(95 断言,纯逻辑核) | exit 0,全过 | | tree-check(15 静态可达查) | exit 0,全过 | | 单测(30 用例:经济骨架/九门 driver/富三门/M2 系统/M3 注入缝) | 30 pass / 0 fail / 0 skipped | | 构建 + 两本包体账 | build exit 0;账一总 4.336 MB ≤ 10 MB(过),首屏 1.13 MB ≤ 2 MB(过) | 采样落在 `assets/audio/` 下,构建记账里本就归 BGM 同级的懒加载项、不计首屏,所以首屏字节与改动前一字不差(1.13 MB),总账只多了这 111 KB。三个纯逻辑门与单测都不碰音效模块,零倒退。 浏览器里真实的 decodeAudioData 播放与听感未在本机验证——6c6g 禁 chrome,音频真播归 mini-desktop 的 CDP 窗口,与 M4 换装的九门回归一并排。样本文件本身由 ffmpeg 编码、ffprobe 复核为合法 MP3,路径解析沿用 Phaser 既有的相对 `assets/…` 惯例(M2 CDP 已 ACCEPT 过同款路径),接线正确性有据。