找回密码
立即注册
搜索
发回帖 发新帖

5256

积分

0

好友

673

主题
发表于 半小时前 | 查看: 4| 回复: 0

最近被人问起有什么好玩的东西,第一反应就是它。用手拍一下笔记本,它就叫。就这么简单,GitHub 上五千多人给这个项目点了星。

项目叫 spank,作者 taigrr。官方一句话介绍特别短,照原意翻过来:拍你的 MacBook,它会喊回来。

听起来像个玩笑,但它背后是一套正经的传感器信号处理。

一、它是怎么知道你拍了它的

先说个大多数人不知道的事:苹果 M 系列芯片里藏着一颗加速度计。

这颗传感器出厂就装好了,普通用户根本接触不到。它本来是拿来干嘛的?给跌落保护用的——硬盘要摔之前,赶紧把磁头收回去,别磕坏了。

spank 做的事情就是:把这颗原本没人碰的传感器挖出来,当成挨打感应器用。

它走的是系统底层的 IOKit HID 接口,直接读原始加速度数据,绕过了上层所有封装。再配合一套振动检测算法,把“有人敲我”和“桌子晃了一下”区分开。判断准确了,就播一段音频。

MacBook 内置加速度计敲击检测原理:IOKit HID 读取博世 BMI286 传感器

判断“这是敲”这件事,其实比想的难。

你或许觉得,检测到加速度变化不就完了?没那么简单。笔记本放在包里被你背着走、放在桌上被杯子碰到、合盖时磕一下,这些都会产生加速度变化。要是一有变化就叫,这东西就没法用了。

所以它上了四套算法一起投票:

  • STA/LTA(短时均值比长时均值):短窗口的平均幅度比长窗口突然抬起来,就判定成一次事件。这是地震台网监测地震用的经典方法,拿来做敲击检测刚好合适。
  • CUSUM(累积和算法):不看你这一下有多猛,看偏差是不是一直往一个方向堆。堆过阈值才触发,对慢变干扰不敏感。
  • Kurtosis(峰度):正常振动像一团噪声,敲击是一个尖尖的峰,峰度指标能明显区分这两种形态。
  • Peak/MAD(峰值比中位绝对偏差):用中位数算出来的偏差当基准,比用平均值更抗偶发噪声,衡量这一下到底有多猛更准确。

四套算法一起看,误报率就下来了。这套思路不是它发明的,是从另一个传感器项目搬过来的,README 里标了出处。

振动检测四种算法投票机制:STA/LTA、CUSUM、峰度、Peak/MAD

二、四种模式,越往后越离谱

默认是痛叫模式:敲一下,随机播一段痛叫,内置 10 段音频,同一句不会连着来两次。剩下的几个,基本属于闲得慌:

  • 痛叫模式(默认):内置 10 段痛叫音频,随机挑,这是官方默认模式。
  • 性感模式(--sexy):统计你五分钟内敲了多少下,敲得越频繁,音频内容逐级升级,一共 60 级。官方文档里明确说慎用。
  • 光环模式(--halo):播的是《光环》游戏里士官长的死亡音效,童年回忆杀。
  • 自定义模式(--custom /path/to/mp3s):指向一个文件夹,里面放什么就播什么。想让它骂人、唱歌、放你自己的录音都行。

还有个细节值得注意:它提供了 --volume-scaling 选项,轻敲声音小,重拍声音大。这是真把“力反馈”这层意思吃透了,不是一刀切地放同一段音频。

spank 四种敲击响应模式:痛叫、性感、光环、自定义

三、装起来就一行命令

它是个 Go 写的单文件可执行文件,没有任何依赖,下完就能用。

最省事的方式是去 Releases 页面,按你的芯片型号下载编译好的版本,拖进系统路径。有 Go 环境的话,源码安装也就一行:

go install github.com/taigrr/spank@latest

装完复制到系统路径,就能跑了:

sudo spank

要加 sudo,因为它读的是底层传感器,需要提权。想让它开盖就在,配一个开机自启文件就行,文档里三种模式的配置都给好了,复制粘贴改个模式参数就完事。

spank 安装命令与硬件要求:go install 和 sudo spank

四、说点实在的

三点,第一点最重要。

第一,它挑硬件,挑得很死。 必须是 Apple Silicon,还得是 M2 及以上,或者特定的那个 M1 Pro 型号。老的 Intel Mac 完全不行,其他 M1 型号也不行。别看完文章兴冲冲去装,先确认机器够不够格。

第二,它是个玩笑项目,但工程是认真的。 四套检测算法、参数可调、音量随力度缩放、能常驻后台,这套东西搬到正经的振动监测场景里,逻辑完全能用。整活归整活,代码没糊弄。

第三,别在开会的时候开性感模式。 官方文档里都写了要慎用。

五、收个尾

为什么想讲它?

现在 GitHub 上“开会式”的项目太多了,功能列表拉得老长,装完用两天就忘了。这个项目反过来,就干一件事,还干得挺逗。

它让我想到一个点:硬件的可能性,往往被软件定义死了。那颗加速度计装在你电脑里好几年,厂商只让它干跌落保护这一件事。有人换个角度看了一眼,它就有了别的用处。

手上正好有台够格的 Mac 的话,周末花五分钟装一个,敲一下,听它叫。




上一篇:六千星开源塔防 Server Survival:把云架构做成游戏,我给数据中心交学费
下一篇:DL/T645调试不用真表:.NET 8仿真从站零硬件跑通全链路
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-10-9 07:51 , Processed in 0.063149 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表