lili d91d857c17
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
feat(polaris): 《夜市一条街》厨房音效 CC0 真采样——6 事件换公有领域采样(创始人拍夜市采样)
创始人拍夜市 SFX 走 CC0 真采样(烤肉滋滋/收银声真录音比合成贴)。7 个真实世界 foley 事件:6 换核验过的
CC0/公有领域真采样、1(切菜 chop)如实退回合成(无干净 CC0、Commons 搜空/freesound 要 OAuth,不硬凑)。
采样(逐个机读 Wikimedia Commons license 字段核验、下载+定稿两次复核,只收 CC0/PD 弃 CC-BY/CC-BY-SA):
烤肉滋滋 sizzle(PD)/收银钱箱 cash(PD,选硬币落金属钱箱真声)/金币叮当 coin(PD)/下单铃 bell(CC0)/
顾客满意 applause(PD)/失败差评 buzzer(CC0);curl 直下→ffmpeg 裁≤2s 单声道淡入淡出→mp3 96k,共 106KB。
授权逐文件留痕 assets/audio/sfx/manifest.json+批次二音效CC0采样台账.md(clean-room/备案证据链)。
接线:采样懒加载(首手势后 decodeAudioData 不进首屏)、缺文件/解码失败/node 无 fetch 逐事件回落合成不崩。
证据:回归 logic-smoke 95/tree-check 15/单测 30 零倒退+两本账不破门(总 4.336MB≤10MB/首屏 1.13MB 一字不差、
采样懒加载不计首屏);成本 ¥0。真播听感待 mini-desktop 窗口人耳评。抽象/UI/设计音 20 类保留合成。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 17:41:39 -07:00

56 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 音效 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/wavffmpeg 裁到两秒以内的活跃窗口(连续声如煎炸、鼓掌取最响的一段,脉冲声如落币、铃响、蜂鸣取起音到自然衰减),下混单声道 44.1kHz,首尾各加几十毫秒淡入淡出消除裁剪爆音,最后 libmp3lame 96k 编码。六个文件合计 106 KB加清单 111 KB。
## 采样 vs 合成的分布
真实世界 foley 事件换采样,抽象与 UI 反馈音保留合成——后者本就是设计音,没有“真录音更贴”的诉求。
- **改播采样6 类事件 → 6 个样本)**:下锅 `order`(下单铃 + 起锅滋滋两层走采样)、收银三档 `cash_low/mid/high`(高档额外叠一层散币叮当)、小费 `tip`、好评 `praise`、差评 `blame`
- **保留合成(切菜 chop1 类)**:见下节,如实退回。
- **本就合成、不在采样范围**:翻台、连击、断链、进货、缺货、解锁号角、升级、研发、雇佣、技能、潮汐、评论家登场、雨声、任务、成就 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-smoke95 断言,纯逻辑核) | exit 0全过 |
| tree-check15 静态可达查) | 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 过同款路径),接线正确性有据。