题记与说明
- 日期:2026-10-31(主题研究,深度精读)
- 主题来源:主题「语音输入与本地 Whisper:语音转文字工具链现状」,聚焦 Windows 端可落地方案
- 精读来源(5 篇全文级 + 2 篇检索级):
- whisper.cpp 官方 README(全文精读):https://github.com/ggml-org/whisper.cpp
- faster-whisper 官方 README(全文精读):https://github.com/SYSTRAN/faster-whisper
- 腾讯云开发者社区《中文语音识别该用谁?6 个开源模型对比》(全文级提取):https://cloud.tencent.com/developer/article/2642961
- PromptQuorum《Whisper.cpp vs faster-whisper: STT Speed Test》(全文级提取):https://www.promptquorum.com/power-local-llm/local-whisper-stt-comparison
- Const-me/Whisper README(Windows 桌面 GPU 方案,全文级提取):https://github.com/Const-me/Whisper
- SpeechPulse(Windows 付费听写应用,检索摘要级):官网 speechpulse.com
- Buzz / Vibe / aTrain 等 Windows GUI 应用(检索摘要级)
- 重要声明:本笔记全部数据来自上述文献,本次未做本地实测;标注「检索摘要」的条目未经全文精读,可信度低一档。
一、核心问题
用户想在 Windows 上实现「按键说话 → 文字出现在任何输入框」,并且不上传云端(隐私、离线、免费、可定制)。拆开是一个三层工具链问题:
- 推理引擎层:OpenAI Whisper 官方实现(PyTorch)在本地跑又慢又重,需要 whisper.cpp / faster-whisper / sherpa-onnx 这类重写引擎,Windows 上各有 GPU/CPU 路线之争;
- 模型层:Whisper 系列是通用多语言模型,但 2025-2026 年中文场景已被国产开源模型(SenseVoice、Paraformer、FireRedASR、Qwen3-ASR)在速度和精度上双向超越——「默认选 Whisper」不再是中文语音输入的最优解;
- 交互应用层:Whisper 本质是「文件转写器」而非「实时听写器」。自回归解码 + 固定窗口带来 0.5–2 秒延迟与静音幻觉,把它变成顺手的系统级听写工具,恰是 Windows 端生态的短板(macOS 有 SuperWhisper/MacWhisper,Windows 缺少同量级免费开源方案)。
一句话:问题不是「能不能本地跑 Whisper」,而是「在 Windows 上,为中文语音输入,引擎、模型、交互三层各自选什么,才能拼出一个每天真的会用的工具」。
二、主要主张
- 重写引擎已把 Whisper 本地化做到「便宜且快」:faster-whisper 原话——"This implementation is up to 4 times faster than openai/whisper for the same accuracy while using less memory. The efficiency can be further improved with 8-bit quantization on both CPU and GPU."(SYSTRAN/faster-whisper README)
- whisper.cpp 是跨平台部署的「万金油」:原话——"Plain C/C++ implementation without dependencies",支持平台清单明确含 "Windows (MSVC and MinGW)",GPU/NPU 后端覆盖 CUDA、Vulkan、AMD ROCm、AMD Ryzen AI NPU(VitisAI)、Intel OpenVINO、摩尔线程 MUSA、昇腾 CANN。限制仅一条:"Limitations: Inference only"。
- 引擎之争不影响精度:PromptQuorum 原话——"Both tools use identical Whisper model weights from OpenAI. WER is the same... the difference is entirely in runtime performance and integration pathway." 选引擎只看运行时性能与集成成本。
- 中文场景应跳出 Whisper:SenseVoice-Small "处理 10 秒音频仅需 70ms,比 Whisper-Large 快 15 倍";Whisper-Large-v3 在 AISHELL-1 上 CER 5.14%、WenetSpeech meeting 上高达 18.87%,而 FireRedASR2-LLM 普通话平均 CER 2.89%。腾讯云文中的定位:SenseVoice "不只听你说了什么,还能识别情绪和周围声音"。
- 实时听写的可行边界:实测延迟落后语音 0.5–2 秒(视模型大小);"Avoid large-v3 for real-time unless you have a dedicated GPU"(PromptQuorum);推荐 small/base 档位 + VAD 切分。
- Windows 专属 GPU 老方案已停更:Const-me/Whisper(D3D11 DirectCompute,1080Ti 上 3 分 24 秒语音 PyTorch 需 45 秒、它只要 19 秒)2023 年起不再更新,作者转向闭源商业后继(D3D12/Vulkan);README 明确警告 "whisperdesktop.com 是冒充网站,不可信任"。新装机不应再以此为起点。
三、方法
- 来源选择:两个推理引擎的官方 README(第一手基准与部署文档)+ 一篇中文模型横评(统一 CER 基准)+ 一篇独立双引擎实测(跨平台 RTX 4070 / M5 Pro / 树莓派 5)+ 一篇 Windows 桌面方案考古(Const-me)。
- 分层框架:按「引擎层 → 模型层 → 交互层」拆解工具链,每层分别评估 Windows 可落地性。
- 基准口径:faster-whisper README 的基准统一为「13 分钟音频,large-v2,beam size 5」;GPU 为 RTX 3070 Ti 8GB / CUDA 12.4,CPU 为 i7-12700K 8 线程。中文 CER 表统一采用 FireRedASR2S 仓库口径(注意这是小红书自家基准,有立场偏差风险)。
- 诚实校验:腾讯云文自己提醒"各测试环境不同,不能严格横向比较";PromptQuorum 也提醒比较不同实现时必须对齐 beam size、线程数与 WER,否则速度对比无意义。
四、数据与证据
4.1 引擎层:faster-whisper vs whisper.cpp 基准(13 分钟音频,large-v2,beam 5)
GPU(RTX 3070 Ti 8GB,CUDA 12.4):
| 实现 | 精度 | 用时 | 显存 |
|---|---|---|---|
| openai/whisper | fp16 | 2m23s | 4708MB |
| whisper.cpp (Flash Attention) | fp16 | 1m05s | 4127MB |
| faster-whisper | fp16 | 1m03s | 4525MB |
| faster-whisper (batch_size=8) | fp16 | 17s | 6090MB |
| faster-whisper | int8 | 59s | 2926MB |
| faster-whisper (batch_size=8) | int8 | 16s | 4500MB |
CPU(i7-12700K,8 线程,small 模型):
| 实现 | 精度 | 用时 | 内存 |
|---|---|---|---|
| openai/whisper | fp32 | 6m58s | 2335MB |
| whisper.cpp | fp32 | 2m05s | 1049MB |
| whisper.cpp (OpenVINO) | fp32 | 1m45s | 1642MB |
| faster-whisper | fp32 | 2m37s | 2257MB |
| faster-whisper | int8 | 1m42s | 1477MB |
| faster-whisper (batch_size=8, int8) | int8 | 51s | 3608MB |
(来源:SYSTRAN/faster-whisper README Benchmark 节)
PromptQuorum 独立实测补充:RTX 4070 上 large-v3 int8,whisper.cpp 约 8× 实时(vs faster-whisper 约 12×,~2.5GB VRAM);x86 纯 CPU base 模型 whisper.cpp 约 15× vs faster-whisper int8 约 20×。
4.2 whisper.cpp 的资源占用表(README)
| 模型 | 磁盘 | 内存 |
|---|---|---|
| tiny | 75 MiB | ~273 MB |
| base | 142 MiB | ~388 MB |
| small | 466 MiB | ~852 MB |
| medium | 1.5 GiB | ~2.1 GB |
| large | 2.9 GiB | ~3.9 GB |
4.3 精度阶梯(PromptQuorum,LibriSpeech clean WER)
tiny 7.6% → small 3.4% → medium 2.9% → large-v3 2.5%。结论:大多数场景性价比之选是 small 模型(3.4% WER,约 2GB RAM)。
4.4 模型层:中文开源模型 CER 横评(腾讯云文,FireRedASR2S 仓库口径)
| 测试集 | FireRedASR2-LLM | Qwen3-ASR-1.7B | Fun-ASR(7.7B) | 对照 |
|---|---|---|---|---|
| AISHELL-1 | 0.64 | 1.48 | 1.64 | Whisper-Large-v3: 5.14 |
| WenetSpeech meeting | 4.32 | 5.88 | 5.78 | Whisper-Large-v3: 18.87 |
| 普通话平均 | 2.89 | 3.76 | 4.16 | — |
| 方言平均(19 集) | 11.55 | 11.85 | 12.76 | — |
其他关键数:
- SenseVoice-Small(234M):10 秒音频约 70ms(GPU),中文/粤语优于 Whisper,附带情感与音频事件识别;端侧方案 SenseVoice.cpp + sherpa-onnx。
- Paraformer-zh(220M):AISHELL-1 CER 1.95%,RTF 0.0251(V100),有流式版;sherpa-onnx 支持 iOS/Android/鸿蒙/树莓派/WASM。
- Moonshine Tiny(27M):端侧极小,但"中文精度有限(CER ~36%)"——中文训练数据仅 69.8 小时。
- 许可:SenseVoice/Qwen3-ASR/Fun-ASR/FireRedASR 均 Apache 2.0 可商用;Moonshine 中文模型社区许可("年收入 < $1M 可商用")。
4.5 流式/实时路径(引擎 README 第一手信息)
- whisper.cpp:whisper-stream 示例 "samples the audio every half a second",命令
./build/bin/whisper-stream -m ./models/ggml-base.en.bin -t 8 --step 500 --length 5000,需 SDL2。VAD 集成 Silero v6.2.0(ggml 模型仅 864KB),参数含--vad-threshold、--vad-min-silence-duration-ms等。 - faster-whisper:
vad_filter=True即启用内置 Silero VAD,"batched transcription 默认开启 VAD";PromptQuorum 评其切分"more natural chunks than fixed-length windows"。 - 静音幻觉抑制(PromptQuorum 实操):
--suppress-blank与--no-speech-threshold。 - PromptQuorum 延迟结论:3 秒分块 + small 模型延迟约 0.5–1.5 秒;整体"实际延迟落后语音 0.5–2 秒"。
4.6 Windows 桌面考古:Const-me/Whisper
- 定位:"High-performance GPGPU inference of OpenAI's Whisper",走 DirectCompute(D3D 11),无需 CUDA、厂商无关;依赖仅 431KB 的 Whisper.dll,对比 PyTorch 约 9.63GB 运行时。
- 性能:1080Ti 上 3m24s 语音,PyTorch+CUDA 45 秒 vs 它 19 秒;Ryzen 5 5600U 的 Vega 7 核显 medium 约 2.2× 实时;Intel HD 4000(2012)medium 仅 0.14×。
- 现状:作者自述 2022-23 冬假项目,2023 年后未再更新;无自动语言检测,实时捕获延迟约 5–10 秒;商业后继闭源。
4.7 Windows 交互层现状
- Buzz / Vibe(开源、免费、离线):文件转写 GUI,全部 Whisper 模型尺寸;定位是转写录音而非实时听写。
- aTrain(faster-whisper README 社区清单收录):"a graphical user interface implementation of faster-whisper... for transcription and diarization in Windows (Windows Store App) and Linux."
- SpeechPulse(付费,检索摘要级):Win10/11 全离线实时听写,types into any text field;单用户许可约 $99,30 天试用;NVIDIA GPU 建议 4GB+ VRAM 跑 large。
- whisper.cpp 自带 whisper-server:"HTTP transcription server with OAI-like API"——开发者可自拼:后台常驻 + 快捷键脚本触发。
- Windows 依赖坑(faster-whisper README 原文):GPU 需要 cuBLAS for CUDA 12 + cuDNN 9;Windows 推荐从 "Purfview's whisper-standalone-win" 下载打包好的 NVIDIA 库放入 PATH。
五、结论(Windows 端可落地方案分层推荐)
判断 1:引擎选型只取决于「有没有 NVIDIA 卡」和「是否 Python 生态」。
- 有 N 卡 + 会写 Python → faster-whisper(int8 + BatchedInferencePipeline,GPU 上 16 秒转 13 分钟,int8 省约 40% 显存)。
- 无 N 卡 / 要给别的应用做内嵌 / 要 Vulkan 通吃 A 卡 I 卡 → whisper.cpp(Windows MSVC/MinGW 原生编译;AMD Ryzen AI NPU、Intel OpenVINO 都有官方支持路径)。
- 两者 WER 完全相同,纯粹是运行时与集成之争——不要为「谁更准」纠结引擎。
判断 2:中文语音输入的默认模型不应再是 Whisper。
- 中文为主、追求速度与准确 → SenseVoice-Small(234M,CPU 可跑,sherpa-onnx 端侧)或 Paraformer 流式;精读数据下 Whisper-Large-v3 中文 CER 被国产模型拉开数倍差距。
- Whisper 仍赢在多语言混合、嘈杂环境与生态兼容(几乎所有 GUI 应用默认接 Whisper 权重)。
判断 3:交互层是 Windows 的真短板,三条路:
- 开箱即用(花钱):SpeechPulse($99,whisper.cpp 内核,全离线实时听写进任意输入框)——检索摘要级信息,购买前试用确认。
- 开箱即用(免费,但只做文件转写):Buzz / Vibe / aTrain——适合转写录音、会议,不适合按键即说即出字。
- 开发者自拼(免费 + 可控):whisper.cpp 编译出 whisper-server(OAI-like HTTP API)常驻后台,AutoHotkey/PowerShell 快捷键录 16kHz WAV → POST → 回填文本;中文场景把后端换成 sherpa-onnx + SenseVoice。这是当前 Windows 上免费获得「类 SuperWhisper 体验」的现实路径。
判断 4:实时听写的诚实预期:small/base 档 + VAD,延迟 0.5–2 秒,静音需防幻觉(--suppress-blank/--no-speech-threshold);大模型实时听写需要独立 GPU。
六、局限
- 零实测:本笔记所有数字均为文献转述,未在本机复跑任何基准;faster-whisper 表格是官方自报(对自家 batched 路线最有利),PromptQuorum 是独立但单一环境(RTX 4070)。
- 中文 CER 表立场偏差:统一基准取自 FireRedASR2S 仓库,FireRedASR 自家数字天然占优;SenseVoice 约 3.0% 与 Paraformer 1.95% 属"口径可能不一致"的旁证(腾讯云文已自注)。
- 交互层信息最弱:SpeechPulse 仅检索摘要级(官网 speechpulse.net 域名解析失败,价格/要求来自第三方站点转述);Buzz/Vibe 对比同样未逐篇精读。Windows 开源实时听写 GUI 的现状(是否已有冒头的免费方案)没有穷尽检索。
- 文献时效与口径:PromptQuorum 提到 whisper.cpp v1.9.5(2026-10-06)内置原生 VAD 与 M5 Pro 等早期社区基准,我未在 whisper.cpp 仓库逐条核实版本号;Const-me/Whisper 的"停更"结论来自 README 自述,归档状态存疑(页面上未见 archived 标记)。
- 未覆盖的路线:sherpa-onnx 本体文档、Whisper-Streaming 的自适应延迟策略、Windows 11 自带 Win+H 语音输入(云)与 24H2 离线能力、 wywiwyg/nerd-dictation 类 Linux 思路在 Windows 的移植性,均未精读。
- 听写≠转写:文中延迟、VAD、幻觉数据多为「文件/分段转写」场景;按键级听写的真实手感(标点恢复、数字格式、热词、中英混说)在所有精读来源里都是空白,需实测补齐。
七、对我的启发
- 三层拆解是通用方法论:把任何模态工具链拆成「引擎层(怎么跑)→ 模型层(跑什么)→ 交互层(怎么用)」,每层独立选型、独立替换——这与我已有的《本地 LLM 推理引擎对比(llama.cpp/ollama/vLLM)》笔记同构:llama.cpp 之于 LLM 就是 whisper.cpp 之于 ASR,同为 ggml 系、同为 Vulkan/CUDA 双路线。两篇笔记的结论可以互相印证「无 N 卡走 Vulkan、有 N 卡走 CUDA/量化」的选型规律。
- 「默认选项≠最优选项」的教训:Whisper 是语音识别的默认心智,但中文场景 2025-26 年已被 SenseVoice/Paraformer 反超——做技术选型时要定期检查「事实上的默认」是否已被专项选手超过。LLM 侧同理。
- 可直接执行的下一步(Windows + 中文为主):
- 最小实验:
pip install faster-whisper(CPU int8 也能跑)转写一段中文录音对比 SenseVoice; - 自拼听写:whisper.cpp CUDA/Vulkan 编译 →
whisper-server常驻 → AHK 快捷键脚本;若卡在延迟与幻觉,换 sherpa-onnx + SenseVoice-Small 流式; - 省事路线:SpeechPulse 30 天试用验证「实时听写进任意输入框」的体验基线,再决定要不要自建。
- 最小实验:
- 写引述要抄原文:几篇关键结论("up to 4 times faster..."、"WER is the same...")都是原文一句话顶十句转述,精读时优先采集可直接引用的句子。
- 警惕官方基准的「自家最优」结构:faster-whisper 的表把 batched int8 放在最亮眼的位置,但它同时暴露代价(显存 6090MB);读基准先看「谁发布的、对谁有利、代价是什么」。