不想为听写功能按月付费,一位开发者干脆自己动手,做出了 Wisperno。用法很直接:按住快捷键说话,松开,文字就粘贴进当前获得焦点的应用里。
![]()
整套流程完全离线运行。Whisper large-v3-turbo 在 GPU 上完成转写,再由一个小型量化语言模型清理文本。只要模型文件已经落在磁盘上,之后就不会有任何网络请求,音频和文字都不会离开这台电脑。
两种听写方式
直接听写不经过语言模型。一个基于规则的格式化器负责把代词首字母大写、去掉口头填充词、识别列表,整个过程远低于 10 毫秒。润色模式则把文本交给本地模型,修正语法和填充词。两种方式按快捷键区分:轻按 Ctrl+Alt 走直接听写,Alt+C 走润色。
停顿超过 1.3 秒会另起一段。他最初尝试用 Whisper 的片段级时间戳来判断停顿,结果完全识别不到;词级时间戳可以做到。
速度与显存
测试在一台笔记本上完成,显卡是 RTX 4070 Laptop GPU,8 GB 显存,跑的是 tests/benchmark_models.py。Whisper 全程常驻,所以显存数字和真实应用一致。
更小的预设更快、占用内存更少,更大的预设保真度略高:两个最小的预设为 97.6%,两个 3B 模型为 98.8%,均基于模型原始输出测得。
把 llama-cpp-python 从 0.2.90 升级到 0.3.26 后,所有预设都提速约 20% 到 30%,输出不变。默认预设从 89.3 提升到 113.8 tokens/s,显存占用没有变化。
让小模型老实干活
清理模型有可能反过来回答你的听写内容——你说一句问句,它可能直接作答。因此每个结果都要过一道护栏(sanity_check())。他还写了一组对抗性提示词,专门诱导模型“回嘴”。开启护栏后,这组测试在所有预设上 100% 通过。
测试自己抓出的 bug
实时转写是面向会议和讲座的独立模式。最初的设计只对最新音频的滑动窗口重新解码,测试套件显示它会悄悄漏掉真实词语。现在的版本每 0.6 秒对整个未确认音频缓冲区重新解码,速度约为实时的 13.5 倍(RTF 0.074),且不需要加载第二个模型。
它做不到的事
- 仅支持 Windows,且需要 NVIDIA 显卡。显存低于约 2 GB 时会退回缓慢的 CPU 模式。
- 只能从源码安装。打包后的构建约 4.7 GB,对 GitHub 来说太大。
- 上述保真度分数基于模型原始输出。
代码、基准测试和安装步骤都在 GitHub 上(MIT 协议,模型各自保留自己的许可)。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.