背景
为什么做这个
我日常办公用的是一台 Linux 和一台 Mac mini。Linux 上的语音输入法支持不好,Mac mini 也没有内置麦克风,得额外接一个语音输入设备。我不想为此专门买麦克风,蓝牙耳机也不稳定。
但我的手机有很好的麦克风,降噪效果也很好。而且我每天都在手机上用豆包输入法的语音键盘。问题是:怎么把手机语音键盘识别出来的文字,输入到电脑上正在使用的应用里?
Airvoice 就是解决这个问题的。它是一个桥接工具。
工作原理
手机(Android 或 iPhone,语音键盘) → 局域网 WebSocket → 桌面端(粘贴到光标位置)
- 桌面端: Go CLI 在局域网启动 WebSocket 服务器,打印一个二维码。
- 手机端: Android 或 iOS 应用扫描二维码连接。应用里有一个文本框,你可以用任何语音键盘(豆包输入法、微信输入法等)在这里口述。
- 收起键盘时(或文本空闲 1.5 秒后),文字通过局域网发送,粘贴到桌面光标位置。
没有云端。没有账号。数据不出局域网。语音识别完全由手机上的语音键盘完成 — Airvoice 不包含自己的语音识别引擎。
什么时候该用 Airvoice
Airvoice 是一个非常小众的工具,只适合以下场景:
- 你的 Mac mini 等桌面设备没有内置麦克风,需要额外接语音输入设备
- 你想用手机口述,把文字输入到电脑上的任意应用(编辑器、终端、浏览器、聊天工具)
- 你在意隐私,希望只在局域网内通信,不经过云端
- 你在 Linux 上,大多数商业语音输入工具都不好用
如果这些不是你的需求,你大概率不需要 Airvoice。
更好的替代方案
对大多数人来说,这些工具更合适:
| 工具 | 简介 | 适合谁 |
|---|---|---|
| TypeLess | AI 驱动的 Mac 语音转文字工具 | Mac 用户,想要开箱即用的语音打字体验 |
| 豆包输入法 | 字节跳动的语音键盘,中英文识别效果很好 | 移动端语音输入,单独使用就很好 |
| 微信输入法 | 微信生态的语音键盘 | 微信重度用户 |
| 讯飞输入法 | 老牌语音输入法,中文识别很强 | 中文语音输入重度用户 |
| Whisper 系工具 | 开源本地语音识别(如 whisper.cpp) | 想要完全本地、自托管语音识别的用户 |
设计决策
| 项目 | 决策 |
|---|---|
| 产品名称 | Airvoice |
| 移动端 | Android(Kotlin/Compose)+ iOS(SwiftUI, iOS 17+) |
| 桌面端 | Go CLI (airvoice) |
| 配对 | QR 码 + 持久 token(可刷新) |
| 发送模式 | 键盘消失或文本空闲 1.5 秒时自动发送 |
| 多行 | 原样粘贴,保留 \n |
| Linux | 支持 X11 + Wayland |
| 语音识别 | 仅第三方输入法 — 我们不做语音识别 |