本地 DSP 处理链路——Symfonium 自己的 64 位音频引擎
为什么要自家的 DSP
大多数安卓播放器的 EQ、ReplayGain、响度处理要么走 Android 系统库(能力有限),要么各自为政、叠加顺序不可控。Symfonium 15.0 版起整个本地播放走一条统一的 64 位 DSP 通路——所有音频处理在同一条精度上叠加,顺序可控,不依赖 Android 系统库。
处理链顺序
按 Symfonium 当前的效果链顺序:
- 原始文件解码 → 读标签 → 解码成 PCM / DSD 样本
- ReplayGain → 响度归一
- 虚拟器 Virtualizer → 声场扩展(Binaural / Transaural)
- PEQ 或 GEQ → 二选一,参数均衡器或图形均衡器
- 压缩器 Compressor → 动态范围压缩
- 限制器 Limiter → 峰值封顶防削波
- 响度提升 Volume Boost → 简单增益(不推荐,用 Preamp + Limiter 代替)
- 低频提升 Bass Boost → 简单低频增益
- 交叉馈送 Crossfeed / 单声道合并 Mono → 声场处理
- USB 独占 / 比特完美 → 把处理后的结果原样送给 DAC
每一层都可以独立开关。关掉的层不占用 CPU。
64 位精度意味着什么
- 从输入到输出全程 64 位浮点,不会在中间环节被降精度
- 多层 EQ 叠加时累积精度损失降到可忽略
- ReplayGain 的 dB 调节精确到小数点
投屏时 DSP 不生效
DSP 链路只在本地和缓存播放时运行。投屏到 Chromecast、UPnP、Sonos、Kodi 时:
- 声音在远程设备解码,Symfonium 的 DSP 碰不到原始音频
- 远程渲染器的 Output settings 里的参数是码率、格式、转码策略,不包含 EQ / ReplayGain 等 DSP 效果
- 这是协议和架构层面的限制,不是 Symfonium 没做
如果你确实想让 Chromecast 也听带 ReplayGain 的声音,Symfonium 有一个实验性选项:让它在手机上临时转码媒体叠加 ReplayGain 处理、再推给 Chromecast。代价是耗电和耗存储。
哪些功能走 DSP、哪些不走
| 功能 | 走 64 位 DSP | 说明 |
|---|---|---|
| PEQ / GEQ | ✅ | 全部 |
| AutoEQ 导入 | ✅ | 本质是 PEQ 参数 |
| ReplayGain | ✅ | 15.0 版起正式进入 DSP |
| 交叉馈送 | ✅ | 是 |
| 压缩器 / 限制器 | ✅ | 是 |
| 虚拟器 | ✅ | 是 |
| USB 独占 | — | 是输出路径,不是 DSP 处理 |
| 原生 DSD 输出 | — | 解码后直接送 DAC,不经过 DSP |
资源消耗
DSP 处理越多,CPU 和电池消耗越大。旗舰机型通常没问题,中低端机型如果在 DSD + 全部 DSP 叠加时出现卡顿或发热,可以关掉一层或几层来降低负载——最容易关的是虚拟器、交叉馈送。