一个轻量、离线、开源的 Windows 语音打字工具 —— 按住快捷键说话,松手自动输入文字。
EveryMicro 使用本地 sherpa-onnx 流式语音识别(中文),全程离线运行,不联网上传任何语音数据。约 12 MB 的单文件 exe,首次启动自动下载轻量模型。
- 🎙️ 离线流式识别 — 基于 sherpa-onnx 流式 Zipformer 中文模型(默认轻量版 14M),无需联网、无需 GPU、无需 Python。
- ⌨️ 按住即说 — 默认
Ctrl+Shift+M,按住录音、松手自动通过SendInput把识别文字输入到当前焦点窗口。 - 🟢 悬浮球 — 可拖拽,右键菜单(设置 / 最小化 / 退出),录音时切换为状态条。
- 🖥️ 系统托盘 — 左键打开设置,右键菜单(显示悬浮球 / 设置 / 退出)。
- ⚙️ 图形化设置 — 自定义快捷键、模型目录、下载代理。
- 📦 自动下载模型 — 首次启动自动从 GitHub Releases 下载轻量模型,也支持手动替换为更大的模型。
- 到本仓库的 Releases 页面下载最新
EveryMicro-*-windows-x64.zip。 - 解压到任意目录,双击
EveryMicro.exe即可运行(无需安装)。 - 首次启动会自动下载语音模型(约 78 MB,需联网;下载失败请见下方「配置」)。
打包内容:
EveryMicro.exe+ 3 个运行时 DLL。模型文件(models/)在首次运行时自动下载。
| 操作 | 说明 |
|---|---|
按住 Ctrl+Shift+M |
开始录音,屏幕出现录音状态条 |
| 松开快捷键 | 停止录音,识别文字自动输入到当前焦点窗口 |
| 拖动悬浮球 | 移动悬浮球位置 |
| 右键悬浮球 | 弹出菜单:设置 / 最小化 / 退出 |
| 左键托盘图标 | 打开设置窗口 |
| 右键托盘图标 | 菜单:显示悬浮球 / 设置 / 退出 |
配置文件 config.json 位于 exe 同级目录,首次启动自动生成:
{
"shortcut": "Ctrl+Shift+M",
"model_dir": "./models",
"proxy": ""
}shortcut— 全局快捷键(按住录音、松手上屏)。model_dir— 模型目录(相对 exe 目录)。可手动放入其它 sherpa-onnx 中文流式模型,重启后自动识别。proxy— 下载模型/运行时使用的 HTTP 代理,例如http://127.0.0.1:7897(Clash/VPN)。留空表示直连。
需要 Rust MSVC 工具链(含 Visual Studio 的「使用 C++ 的桌面开发」组件):
cargo build --release产物在 target/release/EveryMicro.exe。运行时需要以下 3 个 DLL 位于 exe 同级目录(缺失时首次运行会自动下载,也可从 sherpa-onnx Releases 手动获取):
sherpa-onnx-c-api.dllonnxruntime.dllonnxruntime_providers_shared.dll
- Rust(原生,无运行时依赖)
- eframe / egui — 悬浮窗 UI
- global-hotkey — 全局快捷键
- tray-icon — 系统托盘
- cpal — 录音(16 kHz / 16 bit / 单声道)
- sherpa-onnx — 本地流式 ASR(通过 C API 动态加载)
- Win32
SendInput(KEYEVENTF_UNICODE)— 模拟键盘输入
src/
main.rs — 窗口 / 悬浮球 / 设置 / 托盘 / 快捷键
ffi.rs — sherpa-onnx C API 动态加载
recognizer.rs — 流式识别工作线程
audio.rs — cpal 录音
textinput.rs — SendInput 模拟输入
config.rs — config.json 读写
model.rs — 模型/运行时发现与下载
Apache-2.0 © EveryMicro 贡献者。识别引擎 sherpa-onnx 与内置模型版权归其各自作者所有。