先说结论:Huh? 这个产品想法我买单,5 美元我也买单。这篇开发日志里真正值钱的东西,在他列出来的那几个坑里,跟产品本身没多大关系。
先把一处落差拍了。正文说 5 美元对早期用户是好做的决定,公证打磨完之后大概落在 12 到 15。落地页上现在标的是 24。
三个数字,没一个是「现在掏多少钱」。24 买不到东西——公证还没过,陌生 Mac 上装会被 Gatekeeper 拦下来,这条作者自己在评论区认了,正卡在里面。5 也不是个真价,它配的前提是「完成公证之后会变成别的数」。
这届文案的毛病不是吹,是没对齐。😑
不过这篇本身得说句公道话,比大多数同类诚实。作者写「没做 AI 助手」,写「这是个回退按钮」。这年头一个菜单栏工具能忍住不往自己脸上贴 AI 标签,我给他记一分。
真正让我坐下来写这篇的,是那几条故障。
签名那一坑
ad-hoc 签名,codesign -s -。
tap 能起来,不报错,不弹权限框,返回全是零。
读到这条我停了半天。这坑阴在它不阴你。不崩,不抛异常,不写日志。TCC 把权限绑在签名身份上,而 ad-hoc 签名没有身份,系统从头到尾就没做过一次授权决定——tap 看起来比谁都健康,拿到的是空气。
开发阶段他用一个本地证书脚本绕过去。给陌生人分发还得 Developer ID 加公证。对,这就是那个 24 卖不出去的原因。
苹果自己的转录器
条件:requiresOnDeviceRecognition 打开。
喂一段 107 秒连续语音,识别器吐回来两段时间戳,0.00–30.03 和 60.06–83.76。后半段叠在前半段上面。
点一下末尾那个词,跳到开头附近去了。
而 Huh? 的缓冲最长 2 分钟。这个缺陷落在产品的能力范围里,不是边缘场景——功能必然不可用,没有绕过去的余地。
他切成约 40 秒的片段,在边界附近找最安静的点下刀,顺序转录,时间戳加偏移。这方案我认为是对的:先承认引擎的边界,再在边界上做文章。
顺手说一句,「端上」不等于「能用」。两件事,经常被混成一件。
Whisper 在 Intel 上
同一个通用二进制,两个切片。arm64 退出码 0,x86_64 在模型加载阶段退出码 139。
崩溃。
他干脆在 Intel 上不给这个选项。这个决定我完全支持——崩掉比少一个菜单项难看得多。
插上蓝牙之后
回放走到一半,连上蓝牙耳机。界面显示 0:18,实际音频在别的地方。暂停按下去,有时候显示还在播。
启用了后台系统捕获的时候尤其明显。
根子在播放头跟着墙钟走,而不是跟着播放器的采样时钟走。修复就是换过来,加 generation token 挡掉过期的完成回调,用 .dataPlayedBack 判断真结束。
这条我熟。做回放的人早晚要交这笔学费,区别只在于交在学习阶段,还是交在用户手上。
数字
「轻量级」「高效」这种词我一律当装饰看。这次作者自己把数摆出来了。
M1 Pro,16 GB,120 秒缓冲:
启动后空闲 ~13 MB
环形缓冲写满 +16 MB
Apple 转录稳定后 ~46 MB
加载 Whisper Base 后 ~200 MB
空闲回收后 ~90 MB
48 kHz 音源下,2 分钟缓冲约占 22 MB。他还专门写了一段,说 Whisper 流水线在最后一次使用约 150 秒后释放——不能因为中午用过一次,就让一个大模型常驻内存。
这几行比任何产品形容词都好使。评论区那句「Whisper 模型很轻」,得看是哪一档。
引擎对比:186 秒语音,Apple 引擎 427 个词、约 25 秒;Whisper 450 个词、M 系列上约 1.8 秒。
差距很大。但我要挑一句:这组数据没给 WER,词多 23 个不等于更对。作者自己在人名和网址上给了理由,那个理由我信——注意,是我信,不是数据说的。这两者别混。
实时线程那一段
写环形缓冲那节也值得看。write 跑在 CoreAudio 的实时 IO 线程上,这条路径里不能加锁、不能分配内存、不能打日志,共享状态只用原子量,存储是一次性分配的裸指针。
在实时线程路径里出现一次锁、一次日志调用或者一次 ARC 引用计数操作,就是一声能听见的爆音。这是工程问题,不是代码风格问题。这句话建议打印出来贴显示器上。
他还削掉两处冗余拷贝:一处是整个快照存完整的 AVAudioPCMBuffer 再切片,一处是重采样到 16 kHz 之前先复制整个 48 kHz 窗口。都不是什么高级优化,就是把不该复制的别复制。
那几件我认的事
密钥是 base64 载荷加 base64 Ed25519 签名,用编译进程序的公钥本地离线验,不依赖激活服务器。购买走 webhook 签发、邮件送达,应用本身不联网解锁。
营销官网上跑了 PostHog,应用里没有——他还专门把这点写清楚。
这类披露方式比一堆闪光的认证标志管用。
定位也稳。YouTube 有回退键,Zoom 没有,播客应用做得很差,而菜单栏工具能跨应用跟着你走,不用你事前开好一个屏幕录制并一直写盘——为了「刚才漏听一句」这个场景,屏幕录制那套太重了。
对。
锐评评分卡
这钱花得冤不冤?
现在不冤,也不是值——是压根花不出去。公证没过,没有试用模式,密钥不输入连音频 tap 都不启动,引导顺序是先给密钥、再给权限、最后选音源。一个陌生人现在拿到的是:一个装不上的东西,装上了也没法先试,标价 24,而作者实际想法是 5 到 12 至 15。
等公证过。
过了之后也别冲着「AI 转录」这四个字去,冲着你自己的三个真实场景去:一场全是人名的会、一段全是网址的讲座、一次中途插蓝牙的通话。喂完再掏钱。
至于这篇文——值得看,但别盯着那个按钮,看他的故障清单。那部分才是他真正花掉的几个月。