Background

Why This Exists

I work daily with a Linux machine and a Mac mini. Voice input support on Linux is poor, and the Mac mini has no built-in microphone — you need a separate voice input device. I didn’t want to buy a dedicated mic for occasional dictation, and Bluetooth headsets are unreliable.

My phone already has an excellent microphone with great noise cancellation. And I already use voice keyboards like 豆包输入法 (Doubao IME) on my phone every day. The question was: how do I get the text from my phone’s voice keyboard into whatever app has focus on my desktop?

That’s all Airvoice does. It’s a bridge.

How It Works

Phone (Android or iPhone, voice keyboard)  →  LAN WebSocket  →  Desktop (paste at cursor)
  1. Desktop: A Go CLI starts a WebSocket server on your local network and prints a QR code.
  2. Phone: The Android or iOS app connects by scanning the QR code. It provides a text field where you use any voice keyboard (豆包输入法, 微信输入法, etc.) to dictate.
  3. When you dismiss the keyboard (or after 1.5 seconds of idle), the text is sent over LAN and pasted at your cursor position.

No cloud. No accounts. No data leaves your local network. The speech recognition is done entirely by the voice keyboard on your phone — Airvoice doesn’t include its own STT engine.

When to Use Airvoice

Airvoice is for a very specific scenario:

  • Your Mac mini or other desktop has no built-in microphone and needs a separate voice input device
  • You want to dictate text into any app (editor, terminal, browser, chat) using your phone
  • You care about privacy and want LAN-only, no-cloud communication
  • You’re on Linux where most commercial voice input tools don’t work well

If this isn’t your situation, you probably don’t need Airvoice.

Alternatives

For most people, these tools are a better fit:

ToolDescriptionBest for
TypeLessAI-powered voice-to-text for MacMac users who want polished, all-in-one voice typing
豆包输入法 (Doubao IME)Voice keyboard with excellent Chinese & English recognitionMobile-first voice input, works great standalone
微信输入法WeChat’s voice keyboardWeChat ecosystem users
讯飞输入法iFlyte’s voice keyboard with strong Chinese STTChinese language heavy users
Whisper-based toolsOpen-source local STT (e.g., whisper.cpp)Users who want fully local, self-hosted speech recognition

Design Decisions

TopicDecision
Product nameAirvoice
MobileAndroid (Kotlin/Compose) + iOS (SwiftUI, iOS 17+)
DesktopGo CLI (airvoice)
PairingQR code with persisted token (refresh to rotate)
Send modeAuto-send when keyboard dismisses or text idle 1.5s
Multi-linePaste as-is, preserve \n
LinuxX11 + Wayland supported
STTThird-party IME only — we don’t do speech recognition