# Soundka DEV Control ← 返回体验版

本机调试控制面板 · 仅连接 127.0.0.1 · 设备列表每 2 秒自动刷新，插入 USB 耳机后会自动出现

· 页面版本 `__SOUNDKA_UI_STAMP__`（= 控制服务启动时间）。 与终端里报告的时间不一致，说明这是重启前留下的旧标签页，按 Ctrl+F5 强制重新加载。

正在检测…

## 0 · 授权 检查中…

状态
  --
授权给
  --
有效期至
  --
剩余天数
  --
APO 侧确认
  --
本机机器码
  `--`

未授权时算法强制旁路且无法调节。请把上面的机器码发给供应方换取授权文件， 再在此加载。授权与机器绑定，换机器需要重新签发。

授权已更新，但 audiodg 中已加载的实例仍是旧判定 —— 请点「解绑」再「绑定」一次（会重启音频服务）使其生效。

## 1 · 目标设备 未绑定

输出设备（USB 耳机插入后在此选择）

上面是各输出端点的实时电平。有电平跳动的那个，才是声音真正出来的设备； 它必须就是带「已绑定」的那个，否则音频不经过算法。

绑定会把 APO 的 CLSID 写入该端点的 mode-effect 链，并重启 Windows 音频服务让新链生效。 重启音频栈会让已经在播放的程序静默失效——它们不会自己恢复。 绑定完成后请重启播放器（或游戏）再播放。

输入设备

## 2 · 运行前提

- 控制服务以管理员运行--
- APO CLSID 已注册--
- DisableProtectedAudioDG=1--
- APO DLL 已部署--
- 算法 fse.dll + 权重已部署--
- 共享控制映射可用--

全部为 ✓ 才能在 audiodg 中加载算法。缺项请用 `scripts\run_dev_stack.ps1` 以管理员身份安装并启动本服务。

## 3 · 实机算法状态 未加载

audiodg
  --
Initialize / Lock
  --
流格式
  --
算法已请求
  --
流水线模式
  --
算法错误码
  --
累计处理块数
  --
处理模式
  --
APO 实际参数
  --
处理增益
  --

处理增益是 APO 实测的输出/输入能量比（0.5 秒窗口）。 它是唯一能证明「算法真的改变了你正在播的声音」的指标：接近 0.00 dB 表示 信号被原样送过去了。流水线模式 2 = 真实算法在跑；1 = 等延迟直通回退。

## 4 · 脚步声增强

Bypass 算法（仍经过重采样）
完全旁路（连重采样一起跳过）
增强强度
0% · 0.0 dB

两个旁路的区别：「Bypass 算法」只让算法透传，音频仍会经过 48↔44.1 kHz 重采样， 而重采样本身有音色；「完全旁路」连重采样一起跳过，输出与输入逐样本相同，只剩固定延时。 所以要判断"是不是我们造成的"，用完全旁路对照；它和「未绑定」的唯一差别就是那点延时。

拖动即时生效：参数经 `shared_memory_v8` 在音频 block 边界送进 audiodg 中的 APO。 0..1 映射到 0..30 dB（功率域，只作用于被判定为脚步的频点）。 约 +12 dB 以上，接近满幅的素材就会顶到满幅。 限幅器（第 7 节，默认开）会兜住不让它硬削波，但它是宽带整体增益—— 压脚步时会把环境声一起压下去，增益越高这个起伏越明显。要高增益又要环境声平稳， 就配合第 7 节的输出衰减用（建议 −增强/2，那里会实时算给你）。

## 6 · 调试录音 未录制

状态
  --
缓冲长度
  --

在四个节点各录一份，**分别**存成 WAV，便于定位问题出在哪一段：

- ① capture-1-host-in.wav 48 kHz · 音频引擎给我们的
- ② capture-2-algorithm-in.wav 44.1 kHz · 重采样之后
- ③ capture-3-algorithm-out.wav 44.1 kHz · 算法输出
- ④ capture-4-host-out.wav 48 kHz · 我们交回去的

比 ①② 看进方向重采样，比 ②③ 看算法本身，比 ③④ 看出方向重采样，比 ①④ 看整条链路。 四个点分处两个采样率，合成一个文件必须重采样其中一半——那正好会把要查的失真混进证据里，所以分开存。

播放开始即自动录制，无需手动开启。滚动保留最近 120 秒， 听到问题随时点导出即可；不足两分钟也能导出，有多少存多少。

点「导出录音」会先让你选保存位置，确认后打包成一个 zip 存下来，完成时给出提示。 导出不会中断录音，也不会清空缓冲——存的时候把四个环形缓冲各拷一份出来再写文件， 缓冲本身继续滚动，所以导出完还能接着抓下一段。

录音只是旁路观察缓冲，不进信号路径，不增加任何延时；缓冲在录音武装时一次性分配 （四个抽头合计约 169 MB，实测约 35 ms），音频线程只做拷贝，不分配、不加锁、不碰文件。 导出时会再临时占用同样大小，写完即释放。

## 7 · 算法参数

输出衰减 （算法方推荐的主方案）
0.0 dB

「提升脚步 +X dB」和「压低背景 X dB 再自己加音量」是同一个波形， 区别只是前者白白吃掉 X dB 的数字余量、必然削波。算法方建议 衰减 ≈ 增强强度的一半（10 dB 增强 → −5 dB），要彻底无过载就设成 −增强强度。

峰值限幅器（安全网）
限幅上限
-1.0 dB

立体声联动、不增加时延。它是安全网不是主方案——正解是用上面的衰减留出余量， 让限幅器基本不介入。

声道联动

左右各算各的掩码等于给两边乘不同增益，改写耳间电平差（ILD）——那是判断方位的 主要线索，人耳阈值约 1 dB。共用掩码后左右比值精确不变，还省一半计算。

掩码平滑 （治沙沙声；默认关）
掩码时间平滑
0.60
掩码频率平滑

掩码逐帧逐频点的抖动会被增益放大 10^(dB/10) 倍，听起来是沙沙声。但之前那次 沙沙声不是这么来的——是限幅器整块 128 样本一起压，形成 344.5 Hz 的增益台阶，算法 1.6.0 已修。平滑的代价是脚步起音变钝，所以现在默认关；确有掩码抖动时再开，建议 0.5~0.7， 频率平滑无时延、不影响瞬态。

## 5 · 所选输出端点音量

端点音量
--
静音

通过 Windows `IAudioEndpointVolume` 控制上方选中的输出端点，不改系统默认设备。

## 8 · 自定义 EQ 旁路

启用 EQ

# | 类型 | 频率 Hz | 增益 dB | Q
--- | --- | --- | --- | ---

切换淡化 ms 20

15 段参量 EQ，位置在增强之后、限幅器之前——放在限幅器之后的话，EQ 的提升会直接 突破 ceiling，限幅器的天花板保证就不成立了。曲线可直接拖动（改频率和增益），类型与 Q 在下表里改。

曲线是按 RBJ 公式预测的合成频响，不是实测。EQ 与增强的旁路相互独立，关掉增强不会 连 EQ 一起关掉；注意干路不过限幅器，EQ 推大提升时旁路状态下仍可能超 0 dBFS。

正在连接…