观察别人挑西瓜,你会看到这种仪式:拿起、拍打、倾听、皱眉、重复。这看起来像民间玄学。其实不然。敲击是一个脉冲,西瓜是一个共鸣体,回传的声音编码了内部的状态。物理学本身从来不是问题——问题是未经训练的耳朵对什么是“听起来空洞”意见不一。

手机麦克风就没有这个问题。

两个数字背后的物理原理

敲击水果,它会发出短暂的鸣响——这是一种持续几十毫秒、逐渐减弱的振动,被称为 衰减尾音。该衰减尾音的两个特性可以用于追踪成熟度:

检测敲击的开始,分离出衰减尾音,获取其频谱,并提取这两个特征。不需要极高品质的麦克风——而这就把我们带到了真正困难的部分。

为什么手机的“智能”音频是测量的敌人

每部手机出厂时都内置了专为通话设计的音频管线:自动增益控制、噪声抑制、回声消除。这三者对于测量来说都是灾难性的。增益控制会在录音过程中改写电平;噪声抑制专门设计用于消除非语音的短暂瞬态信号——而这恰恰就是敲击声。

因此,敲击测试通过系统平台未处理的音频路径进行录音:48 kHz的原始采样,无增强,无动态增益。这是整个功能中最重要的一项实现决策,且在 UI 中是不可见的。

为什么这些特征能在不同手机之间通用: 共振频率是水果本身的属性,而不是麦克风的。不同的手机听到的同一次敲击可能有不同的音量和音色——但峰值所在的频率和衰减的速度依然保留了下来。仅基于这类对激发不敏感的相对特征进行构建,才使得无需针对每台设备进行校准,就能让不同设备之间的读数具有可比性。

从两个数字到得出结论——大实话版本

这是大多数产品页面都会跳过的部分。特征是真实的,物理原理也是公开发表的,但是一个 结论——“成熟,置信度 85%”——需要一个分类器,而分类器的效果取决于训练时所用的带标签水果数据。实验室的数据集规模很小,且是在单一季节、单一气候下种植出来的。用这些数据训练出来的模型在你的超市里会让你大失所望。

因此,系统的构建基于另一种设想:每一次扫描都被设计为成为一个带标签的样本。 你在商店里敲击了甜瓜。稍后,你切开它——现在你知道了事实真相。应用允许你在事后将这个真实世界的标签附加到测量中:成熟、未熟、过熟,以及它实际尝起来的味道。敲击花了你三秒钟;贴标签只需再点一下;两者结合起来,就成了在真实商店中用真实手机记录的真实水果的训练样本。

每次测量都归档在它所属的物体下——你目录中的 这颗 甜瓜——因此,周二敲击、周六切开的水果,其历史记录依然保持关联。这个闭环跨越了众多用户、水果和手机型号,是实验室研究无法产生的数据集。分类器的改进是因为人们使用了敲击测试,而不是在这之前。

水果之外:相同的敲击,不同的材质

敲击测试有一个针对材质而非农副产品的兄弟功能:敲击台面、墙板或神秘的“木质”表面,相同的衰减尾音分析即可区分实木与贴面、实心与空心。实木、MDF、石材和空心石膏板在水果测试所测量的完全相同的维度上(共振和阻尼)会发出不同的鸣响。同一个物理原理,两个完全不同的购物场景。

实事求是地试一试

如果你现在使用敲击测试,请将其视为一种仪器,而不是预言:在固定的位置敲击,用指关节有力地敲击,并且——这是我们的请求——在切开水果后为它贴上标签。你不仅是在检查甜瓜,你还在教这个甜瓜检测器。

想要了解手机传感器在敲击之外还能测量什么的更广阔图景,请从 工具概述 开始。