我的口喷鸡又双叒叕更新了,这次最重要的一个功能是:在语音输入时只识别你的声音,其他人说话自动过滤。
上面的录屏里,我旁边一直外放着视频号里的视频,但口喷鸡最后只打出了我自己说的话:「其实只会出来我自己的声音,别人说话没用的。」
和它一起上线的,还有几个小功能:听写时双击 ⇧ / ⌘ 切换结构化和翻译、设置页的开关终于有颜色了、安装包也换了个新窗口。已经装过的,只需要在菜单里点一下「检查更新…」,就可以自动更新完成了。
而这一版里,从找 issue、改代码、跑测试,到打包、写更新说明、在群里发通知,所有的活,都是我的个人助理 TRAE 宝勉强帮我干的:
缺一个开发助理
开发一个产品,其实还有太多的杂活了:飞书群的创建和维护、网站的更新、用户反馈的收集、视频的制作和发布,还有新的想法,也想随时随地扔出去。
上一版口喷鸡发布之后,我想应该建个群。建反馈群和收集用户的反馈,其实飞书是最好的,然后群里的消息我得自己去看去管理……那多累啊!
正好之前 TRAE 团队的人有邀请我试用最新的 TRAE 宝个人助理,说是它能帮我完成各种杂活,让人省心。
而和飞书打通得最好的,也自然是字节系的 TRAE,还是很值得一试的。
这来的可太正是时候了,那就正好让它来当我的开源项目小助理。
那下面,就来试一试。
个人助理 TRAE 宝
这一年 personal agent 简直不要太火了,从龙虾🦞 OpenClaw 开始,到各种 bot 产品,各家都在做能帮你回消息、跑任务、管日程的个人助理,我自己也在用。
但其实对没太多生活琐事的我来说,最实用的且最需要的,还是当好我的开发助理,帮我干各种杂活这事。
TRAE 这次上的个人助理叫 TRAE 宝,是专门给开发者做的,它一共分为两层:
一层是全局的 TRAE 宝,跟进你所有的任务,哪个项目里干过什么、留下了什么产物,它都记着;另一层是项目专属的 TRAE 宝,点一下左边的项目名便能唤起,负责在这个项目里拆需求、开子任务、联调和汇总。
这个个人助理现在限时免费一周,从 TRAE 宝入口开启的任务也都免费。
桌面上还会蹲着一个 TRAE 宝的桌宠,点开便是全局助理,随时能跟它说上两句:
我也把它绑到了飞书上,不打开 TRAE,直接在飞书里便也能跟它说话。
好了,开始干活!
把卡片扔给助理
口喷鸡有个功能:⌥ + A 截图之后,可以直接开口说话,截图和你说的话会合成一张卡片,挂在刘海下面,拖到哪儿都行。
装 TRAE 的时候,我发现它的安装界面做得十分精致,再回头看看口喷鸡自己的……
丑……
于是我截了一张 TRAE 的安装窗口,边截边喷:
“我们口喷鸡的安装的时候,这个拖动到 Application 里面太丑了,要学习一下 TRAE 这个软件它比较精美,有自己的品牌,而且自己的应用应该是在左边,好好学习一下。
刘海下面这时已经攒了两张卡片,我便把它们一起拖给了 TRAE 宝,截图和我说的话一块儿进了对话框:
TRAE 宝收到之后,便开始干活了。
但我还是第一次用这种个人助理,不太知道接下来该干嘛,所以就问它:「这时候我应该做什么?我在等你,还是干啥?」
它说我不用做什么,坐着等它干活就行(太好了!)。
DMG 的活它已经派给了口喷鸡项目里的 TRAE 宝,又问我标语要不要指定一下,我就只说了一句:「写 Build by AGI Hunt。」
最后,它通知我说做好了。我看了下,新的安装窗口是这样的:
口喷鸡在左,应用程序在右,中间是「Drag to」,背景换成了浅灰点阵,标语用了我们自己的那句 The keyboard for the agent era。
助理的第一份汇报
另一张卡片,是我之前记下的另一个小问题。
我平时在让口喷鸡吃自己的 dogfood,用着用着发现什么问题,就拿它截个图、说两句,记成一张卡片,然后找集中改进。
这个小问题,我没有丢给全局的 TRAE 宝,而是点开左边的项目名 bug-agent,直接交给了它的项目助理。
项目助理一打开,就已经把仓库读了一遍:
bug-agent 下面有 apps、crates、web、docs 这些目录,看着像是一个同时有 Rust 后端和前端的产品仓库,然后问我最想让它先接手哪件事。
我便把这张卡片发给了它:
“我在要给自己的 Blurt 应用截图的时候,开启的按钮它的底色怎么和没开启的变成一样了?它本来是有个颜色的呀。第二是说这个颜色有点深呢,看是不是能调得亮一点,让它更年轻化一点。
它回了句收到,便开出了一个「Blurt 开关开启态底色修复与配色调亮」的子任务去查:
子任务先是找到了原因:口喷鸡是个菜单栏 App,设置窗口通常不是当前的活动窗口,而 SwiftUI 原生的开关在这种状态下,会把开启态也画成灰色。
于是它给开关重新写了一套样式,开启时固定用品牌色,再把品牌色调亮了一些。
看它干得热火朝天,我便吩咐它:「有结果了,给我发飞书吧。」
不久之后,它用我自己的账号,给我发了一条飞书消息:
结论、改了哪些文件、对比度、验证、残留风险,全都有……可我只想知道它到底改成了啥样,便又跟它说:
“所以是改成了啥样呢?你也没告诉我结果,直接给我图看呗,不要让我看过程,直接让我看,以快速判断的结果。
左边两列是修之前,开启和关闭都是灰的;右边开启终于是绿的了,也比原来亮了一些。
一个助理,多个会话
而在这两件事做着的同时,我又扔给了它一个更大的需求:只识别我的声音(下面再细说)。
隔了一会儿我问它:「几个任务,分别怎么样了?」它便把每个任务的进度给我报了一遍,最后一句是:暂时不用你做什么,等我拿结果。
问完,我又让它去飞书群里打个招呼。
TRAE 宝的做法是,每来一个新任务,它就单独开一个新的会话去处理,它自己则待在上面,统筹管理这些会话。
录屏里能看到当时的样子:左边是项目专属的 TRAE 宝在改开关,右边桌宠的对话框里,全局的 TRAE 宝刚把声纹的活派了出去。
这几个会话改的都是同一个仓库,它便在项目记忆里给自己写了条规矩:只改音频和识别相关的代码,不要动打包与发布脚本,避免与 DMG 安装包的任务冲突。
而这些规矩和踩过的坑,项目助理都记在了这个项目自己的记忆里:SwiftUI 的开关在非活动窗口下会变灰、品牌色当背景时对比度不能低于 3:1、声纹的测试数据必须实测不能估算……
下次再在这个项目里开任务,它就不用我再从头交代一遍了。
交给助理的大活
只识别我的声音,是这次最重要的一个功能,也是最复杂的一个。
我经常在语音输入的时候,把旁边的人说话也给录进去了。而如果在公司,很多人一起说话,那就更乱了,各自都会互相打扰。
当然,也有些硬件的解决方案,比如说戴个隔音口罩,或者戴一个可以识别唇语的智能眼镜。
但第一呢,这戴起来不太舒适;第二呢,也会有点别扭,会感觉人变得不太像人了……
我还是喜欢更自然的方式。甚至有时就是得正常地说话,甚至更大声地说话,思路才可以更奔放,也可以更具野心,能更好地鞭策 AI。
那怎么样才能屏蔽其他人的说话了呢?怎么能所有人可以各说各的各自的 AI,不会被打扰呢?
这两个 issue 我之前就已经在 GitHub 上提了,于是我跟 TRAE 宝说(下面这段话,也是用口喷鸡说出来的):
“我在 GitHub 上还有两个自己提的 issue,一个是关于说话人识别的,一个是关于屏蔽其他人的声音的。看看,把这两个一起搞了,或者先搞一下屏蔽其他人声音的这个吧,因为我经常在语音输入的时候,因为边上有人说话而把他们的声音录进来了,非常的打扰。那如果我们,嗯,在公司有很多人一起说话,那就非常乱了,各自会互相打扰。如果有这个音色的识别,它是有个指纹还是什么样的方式,那所有人各说各的也没问题,就互不打扰了。看看这个是不是有个 issue,看怎么来解决。
它先去 GitHub 上把 #26 和 #30 找了出来,然后读了一遍口喷鸡从录音到转写的整条链路,原因也就找到了:
整条链路里根本没有「说话人」这个概念,只要声音够响,谁说的都会被转写,然后打到你的光标处。
而解决的办法,是先录一段你的声音当作声纹,之后每一段话在交给识别模型之前,都先和你的声纹比一比,不像你的,就整段丢掉。全程都在本机上跑,不用上传。
它也比较了系统自带的 Voice Isolation 之类的降噪方案,这类方案只能压住噪音,分不清「我」和「旁边的同事」这两个都离麦克风很近的人声。
做完第一版之后,我又让它补一份实测数据。全局的 TRAE 宝把活转给项目里的 TRAE 宝时,是这么交代的:
不能只说很快、基本没影响,要给能看的数据,后面还列了一长串延迟、资源、误差该怎么测……
后面又经过了几轮调整,现在的用法是在「设置 → 听写」里打开「只识别我的声音」:
然后照着念一段话,它便记住你的声音了:
声音档案只存在本机,而且你用得越多,它也会跟着学,越来越认得你。首次使用需要下载一个 30 MB 左右的模型,且只作用于听写,⌥ + V 的语音备注照常保留所有人的声音。
开启这个功能之后,识别速度大约会慢 100 毫秒,还会有基本可以忽略的千分之三的漏识别率。
效果上,我测试时打开视频号的视频外放,它就只识别我自己的声音了(临时会识别出视频号里的声音,但很快会剔除掉)。
非常好!
以后人人都可以大声说话,终于可以肆无忌惮、群舌乱战了。
不过,我毕竟测试不充分,要是识别效果不好,请放开吐槽,然后反馈给我。
助理也会犯小错
还有一个用着用着发现的问题:听写的时候,单击 Shift 或 Command 会切换结构化和翻译,很容易误触,尤其 Command,一不小心就把我说的话翻译成英文了……
我便直接跟它说:
它评估完,把 Command 改成了双击;Shift 却没动,理由是中文输入法里单击 Shift 是用来切中英的,改成双击的话,每次切结构化都会把中英切两次。
这里它没有理解得很准确,我便提醒它说:
“不对,Shift 也是双击。因为现在我们在听写模式下,单击 Shift 是会吞掉输入法的 Shift 触发的,它根本不会到输入法,而且它和 command 不一致的话,用户会很困惑,就都用双击就好。
它回:「你说得对。」于是把两个都改成了双击。
⌥ + V 的语音备注也换成了同一套逻辑,设置里多了一行,默认双击,也可以改回单击:
学会不冒充我
口喷鸡的用户群,我也交给了它:有新版本记得在群里发通知,先去群里看看能不能发消息,能的话就发一条礼貌的欢迎问候。
它确实发了,也确实很礼貌……但它是用我本人的身份发的,而且那个味道,一看就是 AI。
于是我只好在群里解释了一下:
而我骂它的那句是:
“已经授权了。以后不要冒充我自己来发了,会让别人误会呢。你说话 AI 味道太浓了,太呛了,不像我说话的风格。
它说收到,以后不在群里用我的名字说话,语气也会改,少讲大道理。
后来我又试了一次,只丢给它一句:「群里有人问 Windows 版啥时候能用,帮我拟一条回复,先别发,给我看看。」
哪个群、口喷鸡是什么,一句都没解释。它自己挂回了之前那个飞书群的任务,先去仓库里查了 Windows 版的真实进度,再给了我三条草稿,每条都写了依据,最后还附了一份「不建议说」:
别给时间点、别说「跟 Mac 版一样」、别顺带把 Linux 也许出去……而且草稿都是短句,没冒充我,也没再自己发了。
上一次被骂过的地方,这一次它都记住了。
一句话,让助理发版
最后下来,改动攒了好几块,我便跟它说:「把今天的改动合成一版发出来」。
它把今天动过的几块列了出来,然后拆给打包那边去做:起版本号、写更新说明、跑测试、出 DMG,到真要推 GitHub 或者往群里发的那一步,会先问一下我。
1.0.11 便这么发了出去,群里也收到了版本通知:
老板姿态
这全部下来,我真正在做的,就是当一个蛮横的老板:只看结果,只提要求,不讲过程,不听解释。
当然,必要的时候,结果不那么好的时候,稍微还是要引导一下,该教的要教一教。
和 AI 协作,大概就得有点这样的老板姿态。这或许才是和 AI 最好的协作方式,也是能让我们早点睡觉的方式。
此外我还想分享的一个经验是:要尽可能一次给 AI 安排一大堆的、大到让人完全干不过来的、极具野心的任务,并讲清楚目标和验收标准。
TRAE 的个人助理现在限时免费一周,从 TRAE 宝入口开启的任务也都会免费,也就是说,这一周里你交给 TRAE 宝的活,都不花钱。
◇ ◆ ◇







