如何在无网络连接的保密电脑上用 Whisper 免去会议记录打字的烦恼
30 de julio de 2026
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
在没有安全卡连门都进不去的开发室或金融公司机房里,为了整理会议记录每天加班 1 小时实在令人痛苦。就算申请付费 AI 工具,信息安全部门也绝不可能批准,到头来只能靠手动打字。使用开源本地语音识别工具 Handy 就能摆脱这种痛苦。这是一种无需向外部服务器发送 1 个字节音频、完全在笔记本电脑本地运行的优化配置方案。
即便 Handy 是在本地运行的程序,站在安全团队的角度来看依然值得怀疑。由于可能会产生初始模型下载或更新数据包,因此只有在系统层强制拒绝网络数据包,心里才能踏实。
如果在 Windows 环境下,以管理员身份打开 Command Prompt 并直接注入出站规则即可。
netsh advfirewall firewall add rule name="Block Handy Outbound OUT" dir=out program="%LOCALAPPDATA%\Programs\handy\Handy.exe" action=block enable=yes 语句。netsh advfirewall firewall show rule name="Block Handy Outbound OUT" 直接确认拦截状态。如果使用 macOS,在 Little Snitch 6 中将 Handy 数据包按照 Connections to Any Server 标准设置为 Always Deny 即可。只需这一行操作,产生违反安全规定流量的概率就降低为零。
快捷键设置也需要花点心思。Handy 使用 Rust 语言的 rdev 库来检测全局输入键,因此经常与系统默认快捷键发生冲突。macOS 分配 Option + Space,Windows 分配 Alt + Space 组合键作为 Push-to-Talk 键会更加干净利落。
OpenAI Whisper 架构的文本解码器是通过前面出现的词汇来预测下一个词汇的结构。如果在该解码器的 initial_prompt 参数中,在 224 个 token 的限制内填入我们常用的单独词汇和项目名称,误识别率就会显著降低。这就是无需重新训练模型也能降低词错率(WER)的原因。
다음은 IT 개발 및 아키텍처 회의입니다. 주요 용어: Kubernetes, CI/CD, React Native, Rust, Obsidian, AutoHotkey, PostgreSQL, gRPC, Docker, PR, Issue, Sprint.还必须解决背景噪音严重时某些词汇连续出现的幻觉现象。将决定文本上下文窗口大小的 n_max_text_ctx 值降低到 128,并将 temperature 值固定为 0.0,随机文本生成就会停止。
Handy 的默认行为是将转换后的文本放入剪贴板。问题在于之前复制好的代码会被覆盖。不经过剪贴板,直接将文本连同时间戳一起追加到 Obsidian 日常笔记(.md)文件中要好得多。
在 Windows 环境下,挂载一个 AutoHotkey 脚本即可解决。
VaultPath := "C:\Users\" . A_UserName . "\ObsidianVault\DailyNotes\" . CurrentDate . ".md")和文件文本追加语句(FileAppend, %LogEntry%, %VaultPath%, UTF-8)。完成这项自动化设置后,每天浪费在打字和切换窗口上的 40 多分钟时间将缩短至 3 分钟左右。
如果在说话时使用特定的控制词,还可以让 MarkDown 格式自动套用。例如,说出“议程输入”时,脚本识别后会将其更改为 ### 📌 안건 标题,而“Action Item”则会被更改为 #### ✅ 액션 아이템 复选框。
Handy 使用基于 whisper.cpp 的 GGML/GGUF 格式。如果将 FP16 模型权重降低至 Q5_1(5.5 位)或 Q4_1(4 位)水平,可用 RAM 消耗量将下降至原来的三分之一。
如果是 M2 MacBook Air 或基于集成显卡的笔记本电脑,使用 Whisper Small (Q5_1) 模型比较合适。磁盘空间仅需 250MB,内存占用率也在 350MB 左右,不会给运行中的开发环境带来压力。如果是显卡性能充裕的台式机环境,加载 Whisper Large-v3 (Q5_1) 模型来提高识别率即可。
以下是优化内存占用容量的步骤。
C:\Users\{username}\AppData\Roaming\com.pais.handy\models\),将不使用的 GB 级大型模型文件(.bin)彻底清除。转换长会议时因线程瓶颈而出现卡顿,是物理核心数设置的问题。不要契合基于超线程的逻辑核心数,而是必须将线程数(n_threads)与实际物理核心数(actual physical core)进行 1:1 匹配,这样才能在没有切换开销的情况下流畅运行。