Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EveryMicro (EM)

一个轻量、离线、开源的 Windows 语音打字工具 —— 按住快捷键说话,松手自动输入文字。

EveryMicro 使用本地 sherpa-onnx 流式语音识别(中文),全程离线运行,不联网上传任何语音数据。约 12 MB 的单文件 exe,首次启动自动下载轻量模型。

✨ 特性

  • 🎙️ 离线流式识别 — 基于 sherpa-onnx 流式 Zipformer 中文模型(默认轻量版 14M),无需联网、无需 GPU、无需 Python。
  • ⌨️ 按住即说 — 默认 Ctrl+Shift+M,按住录音、松手自动通过 SendInput 把识别文字输入到当前焦点窗口。
  • 🟢 悬浮球 — 可拖拽,右键菜单(设置 / 最小化 / 退出),录音时切换为状态条。
  • 🖥️ 系统托盘 — 左键打开设置,右键菜单(显示悬浮球 / 设置 / 退出)。
  • ⚙️ 图形化设置 — 自定义快捷键、模型目录、下载代理。
  • 📦 自动下载模型 — 首次启动自动从 GitHub Releases 下载轻量模型,也支持手动替换为更大的模型。

📥 下载与安装

  1. 到本仓库的 Releases 页面下载最新 EveryMicro-*-windows-x64.zip。
  2. 解压到任意目录,双击 EveryMicro.exe 即可运行(无需安装)。
  3. 首次启动会自动下载语音模型(约 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.dll
  • onnxruntime.dll
  • onnxruntime_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 与内置模型版权归其各自作者所有。

About

EveryMicro (EM) - lightweight offline Windows voice typing tool (Sherpa-ONNX streaming Chinese ASR)

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages