Files
rhinelab-ui/verification/AUDIO-DESIGN.md
T

9.4 KiB
Raw Blame History

声音重设计与验证

日期:2026-09-09。交付为原创配乐「Observatory / 观测室」、16 种程序合成音效、原片短音重构的逐字输入音效及实际终端集成。

依据和边界

查看本地《明日方舟》特别映像 [莱茵生命:访问] 的 6.76–40 秒画面联系表及现有逐帧记录;从原文件提取并测量同段声音。当前代理不能直接听辨音频,因此这些结果是画面观察、音轨数值分析与原创编配,不是对原曲旋律、乐器或 BPM 的听写。后续根据用户复刻逐字输入音效的要求,单独引入三个 38ms 原片短音,详见下文。

设定参照 PRTS 收录的赫默档案、克丽斯腾图鉴,以及项目既有 reference/LORE-SOURCES.md。将科研秩序、探索与独行感转译为精细脉冲、开放和声和稀疏动机,是本次声音设计的解释,并非官方对莱茵生命音乐风格的规定。

原片为 25 fps、48 kHz 双声道 AAC。scripts/analyze-reference-audio.mjs 将左右声道各取 0.5,解码为 24 kHz 浮点 PCM 后按视觉段落计算 RMS;输出见 reference/audio-analysis.json。验证段 11.12–22.76 秒约 −25 dBFS RMS,欢迎页 22.76–26.92 秒约 −15.92,阵列 26.92–30.68 秒约 −13.05。由此保留「克制验证 → 欢迎渐强 → 阵列展开 → 特写收敛」的动态结构;音乐不直接照搬原片的峰值响度。

编配

  • 原创 72 BPM、4/4、16 小节、53⅓ 秒循环。72 BPM 是本次选择,不是原片测定速度。
  • Dmaj9、Bm11、Gmaj9、Asus2 的开放和声,后半段以轻微配音变化回答;音符与休止直接写在生成脚本中。
  • atmosphere.ogg:低饱和度、缓慢交叠的和声;motif.ogg:带衰减谐波的键音及交错延迟;pulse.ogg:稀疏低频呼吸与设备点击。
  • 所有音符尾音和早期反射按环形缓冲叠加,三轨使用同一音频时钟启动、同一循环长度。场景切换只改变声部音量,不重启音乐。
  • 浏览状态三轨比例为 0.9 / 0.72 / 0.65;详情为 0.72 / 0.36 / 0.12;模型查看为 0.8 / 0.24 / 0.28。启动段随原片时间 22.76、26.92、34.3 秒调整编配,约 0.9 秒过渡。
  • 总输出有余量与压缩保护;抽取、欢迎、阵列和拆组时音乐短暂降低到 65%,约 0.9 秒恢复。

音效

操作 声音构成
窗口打开 / 关闭 180ms 轻空气上扫与低音抬升 / 130ms 下扫收束
标签切换 / 系统操作 52ms 无长共鸣的电子点击
启动标志 约 720ms 低频 D–A 和声逐层点亮,缓起音与轻空气声
整块文字显现 64ms 低音量的数据脉冲,每块一次
输入 原片截取的三个 38ms 短音轮替,保留原攻击与频谱
上下切档 1.68 kHz 主共鸣,短促清脆的薄玻璃轻碰
左右切列 稍低的玻璃碰击与很轻的第二次接触,按方向轻微左右定位
抽取 / 返回 较长、明亮的悬起余音 / 阻尼更强、收束更快的落定声
确认 640 / 960Hz 两次电子短音,作为授权及保存的标识
权限扫描 轻扫声与四次等距电子脉冲
欢迎 / 阵列 缓起音的开放和声 / 错开的薄玻璃碰击
特写读取 两次极短的同频电子脉冲
拆解 / 重组 三次渐高的玻璃分离声 / 渐低、短尾的接合声

键音至少间隔 24ms,以通过 25fps 输入的连续触发;切档与切列至少 55ms、其他同类事件至少 120ms;活动音效组限制为 10。冻结、倒退或跳转超过 0.3 秒不补播历史事件;离开启动时停止残留启动音效。

设置与生命周期

系统设置提供音效、音乐各自的开关与音量,自动保存。旧版本关闭界面声音的用户升级后继续保持静音;首次使用会在首次点击或按键后解锁声音。浏览器禁止无交互自动播放时,先点击页面,再重播启动即可听到完整流程。

隐藏页面、离开页面或全部静音时暂停音频上下文,音乐保留位置。重新开启串行等待先前的 suspend 完成,修复快速切换造成的 resume / suspend 竞争。音乐加载期间再次关闭不会迟到起播;载入失败可在下一次交互重试,音效独立工作。音量拖动只保存声音偏好,不触发画质重建。

验证结果

  • TypeScript 与 Vite 生产构建通过;原有大 bundle 提示仍存在。
  • reference/audio-check.html 的浏览器检查全部通过:17 音效的有限样本、非静音、峰值与尾端归零;三轨解码时长和双声道接缝;启动事件;冻结与倒退;快速输入;切场景保留音乐;音乐独立开关;连续开关后的三轨恢复;全静音暂停和音效清空。
  • 解码后每声道循环边界差值小于 0.01,时长误差小于 2ms;不把该数值结论等同于主观无缝听感。
  • 在真实主界面检查了独立开关、音量控件和设置布局,并操作切档、切列、读取、模型拆解与重组。
  • 完整开场实机播放结束后:输入声 71 / 71,进入详情、残留音效为 0,恢复原静音设置;再次含配乐重播时恰好启动三轨,中途停止后恢复静音、上下文暂停、轨道与音效均为 0。
  • 听感尚未由代理人工试听确认,最终需要用户以耳机和扬声器试听。试听页提供 17 种音效按钮、配乐播放器和原片对照播放器。

2026-09-09 · 玻璃质感修订

用户进一步明确:交互对象像玻璃,声音应该清脆。当前音效按这一方向修订。使用约 1.2ms 接触起音和五组不等间隔共鸣频率;高阶共鸣更快衰减,最高模式限制在 8.5kHz 以下,加入很轻的 13ms 接触噪声。切档名义尾长 240ms,抽取 580ms,归位 220ms;指数衰减使实际主体更短。目标是薄玻璃轻碰的清亮感,属于合成音色设计,不宣称等同于真实玻璃录音。

保留原有输入节流与活动音效上限。试听页新增连续 40 次、间隔 55ms 的离线叠音检查,验证延长共鸣后仍有峰值余量。背景音乐的音符、声部与文件沿用上一版。

系统反馈与玻璃对象的触发修订

用户接受切换档案的玻璃方向,并要求检查作为 OS 的页面打开、Logo 和文字出现是否使用了合适的音效。当前按操作含义重新绑定:档案实体的切换、抽取、落定、阵列入场和拆组继续使用玻璃;检索、收藏、设置窗口及独立查看器开合采用电子升降音;内容标签和模型视角重置采用短电子点击。没有给悬停或所有文字更新逐一添加声音。

开场按原片时间码触发:9.16 秒标志启动和声,11.84 秒身份确认,19.48 秒扫描,21.84 秒授权确认,22.76 秒欢迎和声,23.52 / 25.04 秒整块文字显现,26.92 秒玻璃阵列,30.68 秒档案抽取,34.30 秒读取标记。14.68 / 16.92 秒的通用玻璃点击已删除,避免与逐字输入声重复。Logo、欢迎、扫描和读取均不再附加玻璃共鸣。

reference/boot-audio.html 提供真实界面的完整开场试听,从 6.76 秒白场开始;点击按钮解锁浏览器声音,可选择包含背景音乐。试听只临时开启音效,结束或停止后恢复保存的偏好;不写入本地设置。同步面板显示实际发出的输入声数量、音频状态与完成情况,可与 71 个输入揭示帧核对。

复现

逐字输入的原片短音复刻

用户指出原视频中已有逐字输入声音,明确要求复刻。本次从视频约 6.864、6.906、6.948 秒各截取 38ms,位于 ACCESS PERMISSION REQUIRED 的开头。频谱可见约 40–50ms 间隔的宽频瞬态,在约 6–11kHz 有较强能量;此前玻璃模式不足以表达这一特征。

短音只做去直流、0.35ms 入端淡变、3.5ms 出端淡变和统一增益;三个样本之间保留原相对强弱,不做变调、去噪或速度调整。源音来自成片混音,不保证获得了原制作中的独立音效分轨;代理未能进行直接人工听辨。三段原始 PCM 共约 11KB,随代码嵌入,首次输入不依赖异步下载;每个音频上下文只解码一次并轮替播放。保留原片来源与处理记录,见 public/audio/typing-source.json。

输入帧从真实 bootMotion 的文字揭示推导,覆盖首句、ID、姓名、请求、处理和省略号。修正 65ms 节流使 40ms 相邻输入漏拍的问题;新行首字也有声音,19.16 秒附近的故障闪动与文字恢复不视为新输入。多字符同帧显示只触发一个短音;帧卡顿不积压补发一串声音。试听页新增原片 0.55 秒片段和重排输入串,方便核对音色。

检查增加 25Hz 密集输入的波形峰值、所有字段首字、文字恢复不误触发,以及正常播放时输入帧数量。此前玻璃卡片交互继续使用独立的合成音色。

node scripts/extract-typing-audio.mjs 'D:/Program Files/CueWeave/resources/tools/ffmpeg.exe'
node scripts/render-audio.mjs 'D:/Program Files/CueWeave/resources/tools/ffmpeg.exe'
node scripts/analyze-reference-audio.mjs 'D:/Program Files/CueWeave/resources/tools/ffmpeg.exe'
npm run build

生成器仅需要 Node.js;参数为本机 FFmpeg 路径,用于 Ogg / MP3 编码。省略参数仍可在 .tools/audio-render/ 生成无损 WAV 母带。生成脚本使用固定随机种子;同一工具版本可复现。生产只读取原创三轨 Ogg(合计约 1.6MB),试听 MP3 另约 1.3MB,不在运行时加载原视频。