Handy 快速上手:免费离线语音转文本,5 分钟让电脑听懂你说话
2026/9/23 10:19:26 网站建设 项目流程

Handy 快速上手:免费离线语音转文本,5 分钟让电脑听懂你说话

【免费下载链接】HandyA free, open source, and extensible speech-to-text application that works completely offline.项目地址: https://gitcode.com/GitHub_Trending/handy11/Handy

开会时想把关键结论直接口述进文档,但录音文件一旦丢给云端服务,合规风险立刻摆上台面。医院写病历、律所记庭审笔记,很多场景对"语音数据出网"是有硬性限制的。还有一种更朴素的需求:出差断网、飞行模式、内网隔离环境,你只是想说话变成字。

Handy 就是为这些场景做的一个桌面应用:免费、开源、完全离线的语音转文本工具。它把 Whisper 和 Parakeet 这类本地语音识别模型跑在你自己的电脑上,按住快捷键说话,松开后文字直接粘贴进当前输入框。全程没有任何音频离开本机。

🛡️ 为什么本地语音识别比云端更适合这类场景

说白了,云和路的差别不在"聪明不聪明",而在边界条件:

维度云端方案Handy 本地方案
隐私音频上传到服务商,受其数据政策约束音频全程留在本机,无网络请求
延迟受网络波动影响,弱网时明显取决于本机硬件,网络无关
成本通常按时长/次数计费或订阅制一次下载模型,长期免费
断网可用不可用完全可用

这不是说云端方案一无是处——如果你要的是几十种小语种的高精度转录,云端大模型确实有优势。但对"数据不能出网"有硬约束的场景,本地方案不是妥协,是唯一解。Handy 属于后者。

🚀 5 分钟跑起来:各平台安装步骤

Windows

winget install cjpais.Handy

装完打开应用,授予麦克风权限即可。

macOS

brew install --cask handy

首次启动会弹麦克风权限,另外要在"系统设置 > 隐私与安全性 > 辅助功能"里勾选 Handy——它靠这个权限把文字粘贴回你正在用的应用。

Linux

去 releases 页面下载 AppImage / deb / rpm(请以仓库最新 README 为准)。Wayland 用户注意装一下文本输入工具:

sudo apt install wtype # Wayland;X11 则装 xdotool

首次配置:选模型、定快捷键

模型在"设置 > 模型"里下载。Whisper 各档位从 487 MB(Small)到 1.6 GB(Turbo)不等,Parakeet 系列约 478 MB。网络受限时可以手动下载模型文件,丢进应用数据目录下的models文件夹再重启 Handy(macOS 在~/Library/Application Support/com.pais.handy/models,Linux 在~/.config/com.pais.handy/models)。

快捷键默认是"按住说话、松开发送",也可以在设置里改成点按切换模式:

上面三种行为里:Hold 是按住才录音,Toggle 是点一下开始、再点一下结束,Auto 则是两种都支持。挑一个你手腕舒服的。

⚡ 核心能力实战:按场景用

日常速记:快捷键触发 → 转写 → 自动粘贴

完整链路就三步:触发快捷键 → 说话 → 松开。Handy 会先静音、再识别、然后把结果直接塞进当前焦点的输入框——邮件、备忘录、代码编辑器都算。它支持直接键入和剪贴板粘贴两种策略,在"设置 > 高级"里可以切,某些应用里一种粘不进去就换另一种试试。

流式模式下你能在悬浮层里看到文字边说边出来,顺便检查自己有没有口误:

专业领域提效:用自定义词汇表校准术语

识别错的通常是专名:药名、法条编号、公司内部代号。Handy 的自定义词汇表就是干这个的——把词加进列表,识别时会被优先匹配。对应界面在 自定义词汇设置,每个词不超过 50 字符。

  • 医疗:把"阿托伐他汀""CT 平扫"这类加进去
  • 法律:法条引用、当事人姓名
  • IT:产品代号、缩写词(不加的话 Whisper 经常自由发挥)

多模型策略:按硬件选模型,一句话决策

各档位的适用边界大致是:

  • Canary 180M Flash:约 140 MB,四国语言(英德法西),老机器、低内存首选
  • Parakeet V3 / Parakeet Unified EN:纯 CPU 跑,中端硬件约 5 倍实时速度,英文场景默认推荐(要求 Skylake 或同代 CPU)
  • Whisper Small/Medium:多语言、精度与速度的折中
  • Whisper Turbo/Large:精度最高,吃 GPU,Turbo 约 1.6 GB

一句话:没有独显选 Parakeet,有 8 GB 以上显存选 Whisper Medium 起步,要最高精度上 Turbo。注意 Parakeet 系列目前只支持英语,多语言场景走 Whisper。

LLM 后处理联动:转写完顺手润色

转录完可以自动把文本发给一个外部 LLM API,做语法修正、去口头禅、格式化。在"设置 > 后处理"里配置 Provider、Base URL、模型名和 API Key,然后触发录制时走带后处理的模式即可。踩坑提醒:这一步会让文本出网。语音本身不出网,但如果你连转写结果都不能出网,就别开它。

🛠️ 让速度再快一点:性能调优清单

问题:Whisper 在 CPU 上转得慢→ 去"设置 > 高级"的加速选项里挑设备。Whisper 推理走 CUDA / Metal / DirectML / ROCm,ONNX 部分(VAD 等)另有一个下拉框,两个都建议先选 Auto 再手动对比。对应组件是 加速选择器。

问题:内存不够,不想让模型一直占着→ 调"模型卸载超时":从立即卸载到 1 小时共 7 档。开着 5 分钟或 10 分钟是多数人的甜蜜点——第二次触发时不用重新加载,机器压力又可控。内存紧张就选更短的。

问题:松开快捷键后要等一会儿才有文字→ 看录音缓冲区设置,它决定转写时回看多少秒音频,太小会截断开头。

问题:停顿也被当成说话内容→ 语音活动检测(VAD)用 Silero 模型做静音过滤,平滑窗口可调,窗口放宽容忍度变高,适合边想边说的场景。

问题:换应用之间录音老丢→ 检查是否开了"录制时静音",以及蓝牙耳机(macOS 上蓝牙麦克风会切换双向音频,导致录音时音质变差,建议输出留耳机、输入用内建麦克风)。

🖥️ 三端差异速查

Linux(最容易踩坑)

  • 全局快捷键不能在应用内配:Wayland 下要在桌面环境/窗口管理器里绑定,命令填handy --toggle-transcription
  • Sway/i3 配置长这样:
bindsym $mod+o exec handy --toggle-transcription
  • 录音覆盖层默认关闭(Overlay Position: None),因为部分合成器会抢焦点导致粘不回原应用
  • 启动报libgtk-layer-shell.so.0缺失就装发行版对应包;顽固问题可用HANDY_NO_GTK_LAYER_SHELL=1启动
  • 粘贴不生效先装wtype(Wayland)或xdotool(X11)

macOS

  • Globe 键可以当触发键,但仅限 Apple 键盘——第三方键盘的 Fn 不上传系统事件,这是硬件限制
  • Apple Silicon 自动走 Metal 加速,Intel 机型可用但建议中小模型
  • 麦克风 + 辅助功能两样权限都要给,少一个就缺一条腿
  • 蓝牙耳机录音时音质下降,属已知行为,换输入设备可解

Windows

  • 全局快捷键由后端rdev监听,行为最"正常"的一端
  • winget 安装后默认在系统托盘,可设置开机自启、隐藏启动
  • 偶发 Whisper 模型崩溃(与具体系统配置相关),换个量化版本或模型通常能绕过
  • 调试菜单快捷键Ctrl+Shift+D

🔧 给开发者的后门

先讲分工:界面是 React + TypeScript(Tailwind 写样式),Zustand 管状态;系统级的事——音频采集、VAD、模型加载、全局快捷键、粘贴——全部在 Rust 端用 Tauri command 暴露给前端。音频这条链路的代码集中在 音频处理模块,从采集、重采样到 VAD 都能在那看到。

想加一个新设置项?最短路径两步:在src/components/settings/下新建一个组件(照抄ModelUnloadTimeout.tsx这种 Dropdown 写法就行),状态读写走src/stores/settingsStore.ts;如果设置涉及后端行为,再在src-tauri/src/加一个 Tauri command,前端通过src/bindings.ts生成物调用。

排障时按Cmd+Shift+D(macOS)或Ctrl+Shift+D(Win/Linux)开调试菜单,里面有应用数据目录、实时日志查看、日志级别切换——模型加载卡住、粘贴失败这类问题,先看日志再说。

❓ 常见疑问 & 避坑

Q:按快捷键没声音/录不到东西?先确认系统权限(macOS 麦克风 + 辅助功能);再确认 Linux 下装了对应的输入工具;蓝牙耳机的用户把麦克风切到内建或外接的。还不行就开调试看 LiveLog,会直接告诉你卡在哪一步。

Q:模型下载慢或下不动?走代理或离线环境时,用浏览器从发布页把模型文件下下来,手动放进应用数据目录的models文件夹,重启即识别。Whisper 放.bin/.gguf文件,Parakeet 要解压成固定名字的目录。细节以仓库 README 的 Troubleshooting 为准。

Q:和系统默认输入法/语音输入冲突?换个不常用的组合键,避开Win+H这类系统占用。macOS 上 Globe 键方案和第三方键盘有坑(见上节),直接改用标准修饰键组合最稳。

Q:Parakeet 和 Whisper 到底选哪个?英文为主、机器一般甚至偏老:Parakeet。要识别多语言、或者对长难句精度更敏感:Whisper。两个都装了可以随时切,不冲突。

Q:转写结果能留多久?历史保留时长和条数上限都在设置里可调,也可以直接清空。它和"录音保留"是两个独立开关,按需配置。

Q:为什么 Linux 上粘贴进了错误的窗口?大概率是录音覆盖层抢了焦点。把 Overlay Position 设为 None,想有提示就开"音频反馈"用声音代替视觉。


Handy 做的事不复杂:快捷键一按,话变成字,贴回输入框。但它把"完全离线"这条路走通了——模型、推理、粘贴全在本机,隐私边界由你自己控制。对合规敏感的团队来说,这比任何功能列表都值钱。随着本地推理硬件(NPU、统一内存的 Apple 芯片)越来越普及,语音这类高频、高隐私的交互,桌面本地化几乎是必然方向,而一个免费开源、好 fork 的实现,会是这个方向上很值得盯着的项目。

【免费下载链接】HandyA free, open source, and extensible speech-to-text application that works completely offline.项目地址: https://gitcode.com/GitHub_Trending/handy11/Handy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询