8 月 17 日我们删掉了苹果 Speech。当时设置里写「本机识别、音频不出网」,转化时整理仍把正文送给 Grok,旧 Speech 默认也常走上苹果的服务器。名不副实的「不出网」,比没有本机档更糟。这件事写在 什么时候 Xtype 什么都不做。
今天把本机回退的边界定下来。它不是第四种日常引擎,也不是设置里再加一张卡片。日常仍是 免费 / 代付 / 自己的 Key 三条云端路。Speech 只在一次真实的云端请求失败后当保底。
每次先走云端
Xtype 不按系统小地球,也不在开麦时先发一个探测请求。录音结束后,免费或代付走 xtype.dev,自己的 Key 走 api.x.ai。真实请求成功就使用 Grok;只有断网、连接或响应超时,以及少数临时服务错误,才考虑本机。鉴权失败、额度用完和普通业务错误不会偷偷换引擎。
产品准度、代码词、中英混说,都按 Grok 定的。有网却改走本机,等于换了一套用户没选过的引擎。
回退使用已经装在 Mac 上的包
符合回退条件时,Xtype 会复用刚才留在 Mac 上的录音,改用本机 Speech。这个识别步骤不把音频发送给苹果,也不会为了回退再次上传。
但必须把先后顺序讲清楚:回退之前,Xtype 已经尝试过云端请求。如果上传已经开始,音频可能已经到达 Xtype 或 xAI。因此「本机回退」只描述最后采用的识别引擎,不代表整次听写从未出网。
只用 macOS 26 的 SpeechAnalyzer / SpeechTranscriber。它本身就是本机模型。更早的系统不要用旧 SFSpeechRecognizer 去凑——那正是我们删掉它的原因。
语言包由你自己在系统设置里下载(听写 / 语言)。Xtype 不代下、不随包装、不在后台向苹果拉资产。 这台电脑上已经有包,才能离线转。没有包,就停住,告诉你网络不通;macOS 26 可以提一句去系统设置下载听写语言,但 App 里不会出现下载按钮。
本机识别本身不会再占一次云端额度,也不做 Grok 整理;但如果先前那次云端请求在服务端实际完成,它仍可能计入每天 50 次。词库能带给本机识别的才带。
做不到,就说没发出去
macOS 25 及更早,或 26 但没下语言包:没有本机回退。云端失败时就停住说明,不要假装还能转。
密码框仍然什么都不做。断网不是改走本机、把字打进密码框的理由。见 安全章。
0.1.69 使用开麦时的连通性探测选路;后续版本改成真实云端请求失败后再本机回退。两种版本都坚持同一条底线:本机 Speech 不送苹果云,不能回退就停住说明。当前公开路径见 隐私说明。