图片

哈喽大家好,我是阿星👋

最近在用一款语音输入工具 Typeless ,体验确实不错—— 按住一个键说话,松开后自动插入,完全不打断思路 。但有个问题: 每个月要 84 块钱 ……

图片

所以……我自己用豆包客户端的AI语音输入功能魔改了个平替,效果看大屏幕👇:

录屏展示

因为用了一段豆包手机输入法我就爱上了,苦于电脑不能用啊,我就在想:

1、虽然它手机版app不能电脑上用,但是豆包pc客户端有个语音输入功能啊~

2、虽然它pc端用起来中断感比较明显,每次说完话都要按enter,搞得没有用typeless时那种指挥飞机塔台的感觉。

3、虽然总是说完话覆盖我的剪贴板,这个我真的好想打人

但是我有AI啊!于是我花了2小时, 用豆包做了平替——和typeless一样,按住就说,松开就写入输入框,且不会冲掉原先剪贴板内容。

图片

核心原理(100字看懂,看不懂也无所谓)

豆包自带的语音输入需要 Ctrl+D 唤醒 → 说话 → 手动按 Enter 插入 。我的工具通过 Python 监听你的 右侧 Command 键 ,当你按住时自动触发豆包的 Ctrl+D,松开时自动隐形地按 Enter 完成插入。同时在触发前保存你的剪贴板,插入后立即恢复,避免豆包的识别结果覆盖你复制的内容。 

本质是把豆包的三步操作,变成按住说话一步完成。


成本对比:一年省1000

其实阿星也想过自己写个AI输入法,但豆包已经免费提供了语音识别能力。

那我只需要写个插件,让它更好用就差不多了。我自己感觉没必要重头再来。

图片


如何使用?(3分钟上手)

第1步:配置豆包(一劳永逸)

  1. 1. 打开豆包电脑版应用,别找错了,是豆包电脑客户端app。就你平常用的豆包网页版的左下角。

  2. 图片

  3. 然后→ 设置 → 快捷键

图片

2. 将"语音输入"设为 Control + D

(为了避免自定义快捷键冲突先固定了)

图片

3. 建议关闭语音悬浮球 (虽然不是必须的,但是容易误触,无伤大雅)确认改好了,保存

第2步:下载并打开应用(1分钟)

图片

1. 下载 阿星AI输入-v2.0-macOS-final.zip (20 MB)

2. 解压得到 :阿星AI输入.app,就第二个icon

3. 首次打开 :右键点击 → 打开(macOS 安全限制)

图片

4. 授予权限 (必须!):系统会要求授予「辅助功能」权限

- 打开 系统设置 → 隐私与安全性 → 辅助功能

图片

  • • 点击 ➕ 添加「阿星AI输入.app」

  • • 确保勾选已启用

5. 浏览器自动打开 ,显示控制界面(http://localhost:8899)

  • • 启动时间:首次 5-10 秒,后续 3-5 秒

首次启动可能比较慢

图片

第3步:启动语音输入(1分钟)

在浏览器中:点击 🚀 启动语音输入,看到日志显示「✓ 语音输入已启动!」后,就可以使用了

第4步:开始使用

  1. 1. 在任何输入框里(浏览器、编辑器、微信...)

  2. 2. 按住 右侧 Command 键说话

就这么简单!


核心功能详解

功能1:自动插入(对标 Type Less)

豆包原生流程稍微顿感了 :

Ctrl+D → 说话 → 看预览框 → 手动按 Enter → 插入

我的工具给它修补下体感 :

按住 Command → 说话 → 松开 → 自动 Enter → 插入

这就是 Typeless值 80 元/月的丝滑输入体验啊。 现在免费用了。

功能2:剪贴板保护

问题场景 :

1. 你复制了一段代码
2. 用语音输入了一句话
3. 豆包把识别结果复制到剪贴板
4. 你去粘贴 → 粘贴出来的是语音文字,不是代码
5. 代码没了

我的解决方案 :

按下 Command → 保存你的剪贴板
→ 触发豆包语音
→ 豆包识别并复制
→ 松开 Command → 自动插入
→ 0.2秒内恢复你的剪贴板

你去粘贴,粘贴出来的还是你复制的。 完美!

功能3:Web GUI 界面)

在 Web 控制界面(http://localhost:8899):

主界面功能 :

- 🚀 启动/停止 :一键控制语音输入

- 📋 实时日志 :查看运行状态和诊断信息

- ⚙️ 打开配置 :点击按钮进入配置页面

图片

配置界面 :滑块调整冷启动/正常延迟时间

不用改代码,不用命令行,和 Type Less 一样小白友好。


三大核心技术原理

1. 全局键盘监听(pynput + macOS CGEventTap)

为什么没用 Electron? 

虽然 Electron 稳定,但它太“重”了——哪怕一个简单的功能也要背着几百 MB 的浏览器内核。先选了 macOS 原生打包。

  1. 1. 选择 Onedir:告别“发呆”启动

  • • Onefile (弃用) :本质是压缩包,每次启动需 10 秒解压,慢得像死机。

  • • Onedir (选用) :直接加载已解压库,实现 .app 秒开 。

  1. 2.通过 AppDelegate 架构实现了与系统的“握手”。在系统反馈“已就绪” (DidFinishLaunching) 的瞬间挂载 RunLoop。

Onedir (秒开) + AppDelegate (官方权限挂载) ,绕开了 Electron 的臃肿,解决了原生打包的权限魔咒。

2. 剪贴板保护(pbpaste/pbcopy)

豆包自己的的语音识别会把结果复制到剪贴板,然后用系统快捷键(Cmd+V)自动粘贴。这会覆盖用户原有的剪贴板内容。

所以我通过脚本改成了预存的方式 :

  1. 1. 按下 Command 键 → 用 pbpaste 保存当前剪贴板

  2. 2. 触发豆包语音识别(Ctrl+D)

  3. 3. 等待识别完成(冷启动 3.5 秒,热启动 1.5 秒)

  4. 4. 松开 Command 键 → 按 Enter 插入文字

  5. 5. 等待 0.2 秒 (让豆包完成自动复制)

  6. 6. 用 pbcopy 恢复用户原剪贴板

豆包的自动复制在 Enter 后立即发生,但我们在 0.2 秒后强制恢复,这个时间差足够让插入完成,又不会让用户察觉到剪贴板被篡改 过。

3. 智能延迟(冷启动 vs 热启动)

如果你说完了结果工具的等待时间不够,按 Enter 时豆包还没识别完,结果就是空白或不完整。

改进 :豆包第一次启动语音识别需要初始化 AI 模型,耗时较长(约 3.5 秒)。后续识别时模型已在内存中,速度更快(约 1.5 秒)。用户可在 Web 界面通过滑块自定义这些延迟时间

图片

ok。我已经打包成 .app 文件,放到星球上了,双击即用

图片

我是阿星

更多AI应用

我们下期再见!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐