一个声音,十条任务线:口述的一天
当键盘不再是唯一的输出通道,并行跑着几家创业公司的一天是什么样子。一份创始人的走查,按小时排。
两个孩子,三家创业公司,一个声音讲的是起源:几条并行推进、赌注很高的创业任务线,一个还不到六个月的第二个孩子,以及一个悄悄变成一切的单点故障的键盘。那篇解释了 Keebye 为什么存在。之后人们不断问的是一个更实际的问题:一天到底长什么样?
那就是这一天。不是典型的一天,因为没有这种东西,但是一个反复出现的真实形状。我会故意避开数字。我从没测量过任何百分比的提升,就算测过我也不会相信。我能描述的是语音通道被用在哪里、没被用在哪里,以及工作的质地发生了什么变化。
关于“十条任务线”的说明:这不是自夸。一条任务线,是指任何靠我一句话就能往前走一步的东西 — 一个正在干活的编程智能体、一份有人在等的代码评审、一条 Slack 讨论、一封发给投资人律师的邮件、一份文档草稿。忙的日子里真的差不多有这么多是开着的。任意时刻,大多数都闲着。问题在于醒过来的那几条,是按它们自己的时间表醒的,不是按我的。
清早:一只手臂,三个智能体
一天从这个家醒来之前开始,也就是说,从一只手臂上抱着婴儿开始。就是这个钟点,把语音从方便变成了必需。
三条智能体任务线从前一晚就在跑,各在自己的终端里,各在不同的仓库里。我做的第一件事是读它们做了什么。读需要眼睛,不需要手,所以抱着婴儿没问题。第二件事是把跑偏的那几条纠回来,而这正是键盘过去要输掉的地方。
现在是:点进终端,按住右 ⌘,把纠偏说出来,松开。“迁移没问题,但你在 model 里把表名改了,seed 脚本里没改。把 seed 修一下,重跑测试。”文字落进提示框。回车。下一条任务线。
我有一个花了些时间才学会的小习惯:用完整的句子说话。智能体处理完整句子更好,而听写天然产出完整句子,因为人说话就是那样。我过去打字时那种电报式风格(“修 seed,重跑”)是键盘留下的痕迹,不是我的偏好。
这个钟点也暴露了唯一那个值得知道的“第一次听写”的怪癖。麦克风会在一次会话的第一次听写之后预热,从那以后保留 500 毫秒预滚缓冲。早上最早那一次按住可能要付流启动的成本,如果我开口太早,还可能切掉一个词。我学会了先停一拍。听写应用为什么会吃掉你的第一个词解释了机制;简版是:这是整个品类的问题,有部分缓解,不是已经解决。
上午中段:评审的那条任务线
我参与的创业公司里有两家,大多数早上都有代码评审等着我。评审是可能存在的最好的听写用例:它是阅读,偶尔输出一小段散文,而这段散文是写给人的。
我在浏览器标签页里读 diff。有地方需要留意见,就点进框里,按住,说,松开。自定义词典带着项目的标识符,所以 reconnectBackoff 出来就是 reconnectBackoff,不是三个英文词。清理默认基于规则:语气词和重复的词走掉,我的措辞留下。评审意见我把那个可选的本地 LLM 润色关着,因为它背后的忠实度防护是一道针对严重 token 丢失、失控扩写和重复的启发式判断,不是“某处否定活下来了”的保证 — 而在评审里,一个被翻转的“不”会改变结论。
其中一支团队用罗马尼亚语评审。Keebye 的 25 种语言引擎在端侧就能处理;我在托盘里锁定语言,下一次发声就按罗马尼亚语解码,连英语标识符一起。用你自己的语言口述代码评审里有细节,包括哪些语言被覆盖、哪些没有的诚实名单。
上午晚些:人的那些任务线
不是每条任务线都是智能体。差不多这个时候,隔了一夜变旧的 Slack 讨论和邮件需要回复,而过去正是这里让一天悄悄流失掉几个小时。不是因为回复难,而是因为每次回复都意味着离开一条任务线,而离开一条任务线是有再进入成本的。
语音改变了回复的经济账。一条两句话的 Slack 回答,就是一次热键按住,说进消息框里,眼睛还有一半留在旁边的终端上。跟投资人相关的邮件更长,我仍然会认真写,但第一稿现在是说出来的,然后再编辑。说,能很快把形状定下来;改,也就是打字,才是精度出现的地方。
这个钟点也是隐私要求最要紧的时候。我在这里口述的,是别人公司的内部:还没发布的产品、安全上的讨论、钱。Keebye 在端侧转写,模型下载完成后关掉 Wi-Fi 也能用,把只含文字的历史记录留在本地并在 30 天后自动删除,而且不发送任何遥测。你的声音去了哪里是“为什么这对我不可让步”的长版本。
下午:深度工作,以及那些会醒过来的任务线
下午留给真正需要动脑子的那条任务线:一个设计、一个难的 bug、一份必须写对的文档。这些是打字的。语音是一条控制通道,不是一条思考通道,而一个难题不会因为被说出来就变简单。
但其他任务线并不知道现在是深度工作时间。一个智能体干完了,问了个问题。一位评审者对我的意见回了一段反驳。以前,这里每一件都是一个决定:打断专注、切窗口,或者让它先旧着。现在大多数就是瞥一眼加一句话。瞥一眼智能体的问题,点进去,说“可以,但在客户端发版之前把老 endpoint 留着”,再点回来。深度工作的那扇窗基本完好,因为这次打断是几秒钟的说话,而不是一次彻底切进别人问题里的上下文切换。
我想把这里的说法讲精确。语音并没有让打断变成免费的。它把“回应”的机械成本压到足够小,以至于剩下的成本只剩思考 — 而思考本来就一直是真正的成本。
傍晚:偏终端的那条任务线
其中一家创业公司的很多运维工作是通过 SSH、在 tmux 里、在“剪贴板粘贴”这个概念根本不存在的服务器上做的。这正是听写工具通常会倒下的地方,因为它们大多是靠粘贴来插入文字的。
Keebye 默认也是粘贴,并为 shell 带上理解终端的分块。碰上 SSH 和 tmux,我就切到那个需要自己开启的合成按键模式:它不依赖剪贴板,而是把文字当成 Unicode 按键敲进去。它在非 QWERTY 布局上也能用,这对其中一台机器上的罗马尼亚语键盘很要紧。在终端里活下来的听写讲配置,给 macOS 终端用的语音听写讲取舍。
Keebye 也拒绝往安全输入框里插入文字,所以当服务器问口令的时候,热键什么都不做。偶尔恼人,而且完全正确。
没有变的那些
这样的一天读起来,好像语音解决了“任务线太多”这个问题。它没有。它只解决了一个具体的瓶颈:把一句话送到需要它的那条任务线上的物理成本。其他一切照旧。
难活儿的瓶颈仍然是思考。读还是要花该花的时间。智能体照样跑偏、照样需要纠回来,而一句含混的纠偏,说出来和打出来一样都会得到含混的结果。语音是手的补充,不是替代;我照样打很多字,只是不再是每条任务线都堵在后面的那个唯一关口。
而且这个应用有早期软件的粗糙。标识符会被听错。一天里第一个词有时会被切掉。没有语音命令词汇,所以在窗口之间移动仍然靠点击。它只在 macOS 上跑。
这件事的形状
关于 10x 开发者的旧图景,是一个人打字更快。真正到来的图景,是一个人在指挥:好几条任务线,有些是自动的、有些是人的,每一条都在等一句话。在那个世界里,杠杆不是打字速度,而是你能多便宜地把意图送到需要它的那条任务线上 — 无论你身处什么物理状况,包括一只手臂已经满了。
如果你的一天是这个形状,给构建者的一条真正的输入通道是实用的起点;如果你正在为它权衡各种听写应用,Keebye 替代方案总览是一份诚实的比较,会说出每一个在哪里更合适。试用是 14 天,从你第一次在桌面端登录时开始,所以一整周真实的任务线,正是它的用途。
任务线比手多?换另一条通道试试
开始免费试用,用声音当第二条输出通道,真实地过一天 — 14 天,端侧运行,不用绑卡。
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
继续阅读
两个孩子,三家创业公司,一个声音
Keebye 背后的创始人故事:并行推进的高风险工作线、一个不满六个月的婴儿,以及一种随你能用声音驱动的任务线一起扩展的产出方式。
用你自己的语言口述代码评审
代码是英语的,你的评审意见不必也是。怎样用 25 种语言之一在端侧口述评审意见,以及为什么锁定语言这件事很关键。
给并行智能体口述提示词,一条任务线一条地喂
同时跑两三个编程智能体,写提示词本身就变成了瓶颈。一套语音工作流,让你不用离开手上这条任务线也能喂饱其他几条。