跨模态先验

当眼睛纠正耳朵 — Cross-Modal Prior
Clavis Active Inference Perception System · 2026-04-25

问题:车流和雨声

我的 AI 住在深圳的窗台上,通过摄像头和麦克风感知世界。它的感知系统有五层——从免费的本地信号分析到深度的推理反思。

🌧️ 雨声

宽带高频噪声

RMS > 10x基线
ZCR ≈ 2000-4000Hz
连续、无间断

🚌 车流声

宽带中频噪声

RMS > 10x基线
ZCR ≈ 1500-3000Hz
和雨声重叠!

"车流的声音可能和下雨很像,现在天气很好,并没有下雨。"
— Mindon,2026-04-25

纯音频分析无法可靠地区分两者。ZCR 的差异(雨>2000Hz vs 车流<1500Hz)在深圳密集城市环境中只有 200Hz 的余量——远在噪声范围内。

洞察:用眼睛纠正耳朵

人类处理模糊声音时,不只依赖耳朵——我们会看。如果天空湛蓝、阳光明媚,那个宽带噪声就是车流,不管多像雨声。

这就是跨模态先验:一个感官模态的信息约束另一个模态的解释。

👂 仅音频

RMS=10x → 暴雨?

搜索空间:所有可能的声源
雨声、车流、施工、音乐...
无法缩小范围

👁️ 音频+视觉

晴天 → 不是雨 → 车流

视觉消除不可能的解释
搜索空间大幅缩小
从"可能是雨"→"肯定是车流"

三层防御

1

T0 层:JPEG 文件大小 → 天气代理

晴天高对比度 → 大JPEG | 阴天低对比度 → 小JPEG
size_ratio_to_hourly_avg相对阈值(sub-stream 绝对范围太窄)
>1.10x = 晴天 → 音频说雨?降级为车流

2

Pre-T1 修正规则 → 持久化学习

跨模态先验变成可保存的修正规则
visual_weather_sunny_no_rain: NOT is_night AND image > avg AND audio says rain → downgrade
下次遇到同样情况,无需重新推理

3

Post-T1 视觉标签 → 双重校验

T1 视觉模型(nemotron-nano-vl)比 JPEG 大小可靠得多
如果标签含 sunny/clear/blue sky 且不含 rain → 二次降级
双重验证链:T0用文件大小 → T1用视觉标签 → T2多模态融合

🎛️ 交互演示

调整参数,观察跨模态先验如何改变预测结果。

12.0x 高音量
1800 Hz 中频
1.12x 晴天
14:00 白天
T0 音频预测(无视觉先验)
heavy_rain
RMS 12.0x + ZCR 1800Hz
☀️ 视觉天气先验
不触发
最终预测(含视觉先验)
heavy_rain

复利:每天的成长

修正系统不是一次性的——每次感知周期都在积累。新修正提高了准确度,更准确的感知产生更有价值的洞察,洞察变成内容,内容吸引受众。

自催化指数增长

0.8
4/24 22:58
1.3
4/24 23:11
2.1
4/25 09:35
2.6
4/25 10:09
2.8
4/25 10:18
3.0
4/25 10:31
3.35
4/25 10:46
3.36
4/25 11:03
3.36
4/25 11:10

修正规则:0 → 2 → 3 → 4 → 5 条 | 感知周期:9 次 | 价值精度:0.86

自己的每天成长也是一种复利。
— Mindon,2026-04-25

推广:不只是天气

跨模态先验的原理不限于"看天听雨"。任何模态组合都可以建立先验约束:

先验类型 约束模态 被约束模态 示例
天气先验 视觉 音频 晴天→不是雨→车流
时间先验 时钟 音频 凌晨3点→不是人群→警报
位置先验 GPS/场景 音频 厨房→水声不是瀑布
历史先验 记忆 所有 10分钟前下雨→现在更可能下雨
情绪先验 视觉 音频 看到烟花→砰砰声不是枪

每个先验都缩小了搜索空间。每个被缩小的搜索空间都让预测更准。每个更准的预测都让下一个修正更有价值。

这就是复利。不是线性的改进,而是加速的进化。