读书笔记 · 约 9,602 字 · 预计推送 1 部分

语音输入与本地 Whisper:语音转文字工具链现状(Windows 端可落地方案) 未开始

目录

题记与说明


一、核心问题

用户想在 Windows 上实现「按键说话 → 文字出现在任何输入框」,并且不上传云端(隐私、离线、免费、可定制)。拆开是一个三层工具链问题:

  1. 推理引擎层:OpenAI Whisper 官方实现(PyTorch)在本地跑又慢又重,需要 whisper.cpp / faster-whisper / sherpa-onnx 这类重写引擎,Windows 上各有 GPU/CPU 路线之争;
  2. 模型层:Whisper 系列是通用多语言模型,但 2025-2026 年中文场景已被国产开源模型(SenseVoice、Paraformer、FireRedASR、Qwen3-ASR)在速度和精度上双向超越——「默认选 Whisper」不再是中文语音输入的最优解;
  3. 交互应用层:Whisper 本质是「文件转写器」而非「实时听写器」。自回归解码 + 固定窗口带来 0.5–2 秒延迟与静音幻觉,把它变成顺手的系统级听写工具,恰是 Windows 端生态的短板(macOS 有 SuperWhisper/MacWhisper,Windows 缺少同量级免费开源方案)。

一句话:问题不是「能不能本地跑 Whisper」,而是「在 Windows 上,为中文语音输入,引擎、模型、交互三层各自选什么,才能拼出一个每天真的会用的工具」。


二、主要主张

  1. 重写引擎已把 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)
  2. 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"。
  3. 引擎之争不影响精度:PromptQuorum 原话——"Both tools use identical Whisper model weights from OpenAI. WER is the same... the difference is entirely in runtime performance and integration pathway." 选引擎只看运行时性能与集成成本。
  4. 中文场景应跳出 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 "不只听你说了什么,还能识别情绪和周围声音"。
  5. 实时听写的可行边界:实测延迟落后语音 0.5–2 秒(视模型大小);"Avoid large-v3 for real-time unless you have a dedicated GPU"(PromptQuorum);推荐 small/base 档位 + VAD 切分。
  6. Windows 专属 GPU 老方案已停更:Const-me/Whisper(D3D11 DirectCompute,1080Ti 上 3 分 24 秒语音 PyTorch 需 45 秒、它只要 19 秒)2023 年起不再更新,作者转向闭源商业后继(D3D12/Vulkan);README 明确警告 "whisperdesktop.com 是冒充网站,不可信任"。新装机不应再以此为起点。

三、方法


四、数据与证据

4.1 引擎层:faster-whisper vs whisper.cpp 基准(13 分钟音频,large-v2,beam 5)

GPU(RTX 3070 Ti 8GB,CUDA 12.4):

实现精度用时显存
openai/whisperfp162m23s4708MB
whisper.cpp (Flash Attention)fp161m05s4127MB
faster-whisperfp161m03s4525MB
faster-whisper (batch_size=8)fp1617s6090MB
faster-whisperint859s2926MB
faster-whisper (batch_size=8)int816s4500MB

CPU(i7-12700K,8 线程,small 模型):

实现精度用时内存
openai/whisperfp326m58s2335MB
whisper.cppfp322m05s1049MB
whisper.cpp (OpenVINO)fp321m45s1642MB
faster-whisperfp322m37s2257MB
faster-whisperint81m42s1477MB
faster-whisper (batch_size=8, int8)int851s3608MB

(来源: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)

模型磁盘内存
tiny75 MiB~273 MB
base142 MiB~388 MB
small466 MiB~852 MB
medium1.5 GiB~2.1 GB
large2.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-LLMQwen3-ASR-1.7BFun-ASR(7.7B)对照
AISHELL-10.641.481.64Whisper-Large-v3: 5.14
WenetSpeech meeting4.325.885.78Whisper-Large-v3: 18.87
普通话平均2.893.764.16—
方言平均(19 集)11.5511.8512.76—

其他关键数:

4.5 流式/实时路径(引擎 README 第一手信息)

4.6 Windows 桌面考古:Const-me/Whisper

4.7 Windows 交互层现状


五、结论(Windows 端可落地方案分层推荐)

判断 1:引擎选型只取决于「有没有 NVIDIA 卡」和「是否 Python 生态」。

判断 2:中文语音输入的默认模型不应再是 Whisper。

判断 3:交互层是 Windows 的真短板,三条路:

  1. 开箱即用(花钱):SpeechPulse($99,whisper.cpp 内核,全离线实时听写进任意输入框)——检索摘要级信息,购买前试用确认。
  2. 开箱即用(免费,但只做文件转写):Buzz / Vibe / aTrain——适合转写录音、会议,不适合按键即说即出字。
  3. 开发者自拼(免费 + 可控):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。


六、局限

  1. 零实测:本笔记所有数字均为文献转述,未在本机复跑任何基准;faster-whisper 表格是官方自报(对自家 batched 路线最有利),PromptQuorum 是独立但单一环境(RTX 4070)。
  2. 中文 CER 表立场偏差:统一基准取自 FireRedASR2S 仓库,FireRedASR 自家数字天然占优;SenseVoice 约 3.0% 与 Paraformer 1.95% 属"口径可能不一致"的旁证(腾讯云文已自注)。
  3. 交互层信息最弱:SpeechPulse 仅检索摘要级(官网 speechpulse.net 域名解析失败,价格/要求来自第三方站点转述);Buzz/Vibe 对比同样未逐篇精读。Windows 开源实时听写 GUI 的现状(是否已有冒头的免费方案)没有穷尽检索。
  4. 文献时效与口径:PromptQuorum 提到 whisper.cpp v1.9.5(2026-10-06)内置原生 VAD 与 M5 Pro 等早期社区基准,我未在 whisper.cpp 仓库逐条核实版本号;Const-me/Whisper 的"停更"结论来自 README 自述,归档状态存疑(页面上未见 archived 标记)。
  5. 未覆盖的路线:sherpa-onnx 本体文档、Whisper-Streaming 的自适应延迟策略、Windows 11 自带 Win+H 语音输入(云)与 24H2 离线能力、 wywiwyg/nerd-dictation 类 Linux 思路在 Windows 的移植性,均未精读。
  6. 听写≠转写:文中延迟、VAD、幻觉数据多为「文件/分段转写」场景;按键级听写的真实手感(标点恢复、数字格式、热词、中英混说)在所有精读来源里都是空白,需实测补齐。

七、对我的启发

  1. 三层拆解是通用方法论:把任何模态工具链拆成「引擎层(怎么跑)→ 模型层(跑什么)→ 交互层(怎么用)」,每层独立选型、独立替换——这与我已有的《本地 LLM 推理引擎对比(llama.cpp/ollama/vLLM)》笔记同构:llama.cpp 之于 LLM 就是 whisper.cpp 之于 ASR,同为 ggml 系、同为 Vulkan/CUDA 双路线。两篇笔记的结论可以互相印证「无 N 卡走 Vulkan、有 N 卡走 CUDA/量化」的选型规律。
  2. 「默认选项≠最优选项」的教训:Whisper 是语音识别的默认心智,但中文场景 2025-26 年已被 SenseVoice/Paraformer 反超——做技术选型时要定期检查「事实上的默认」是否已被专项选手超过。LLM 侧同理。
  3. 可直接执行的下一步(Windows + 中文为主):
    • 最小实验:pip install faster-whisper(CPU int8 也能跑)转写一段中文录音对比 SenseVoice;
    • 自拼听写:whisper.cpp CUDA/Vulkan 编译 → whisper-server 常驻 → AHK 快捷键脚本;若卡在延迟与幻觉,换 sherpa-onnx + SenseVoice-Small 流式;
    • 省事路线:SpeechPulse 30 天试用验证「实时听写进任意输入框」的体验基线,再决定要不要自建。
  4. 写引述要抄原文:几篇关键结论("up to 4 times faster..."、"WER is the same...")都是原文一句话顶十句转述,精读时优先采集可直接引用的句子。
  5. 警惕官方基准的「自家最优」结构:faster-whisper 的表把 batched int8 放在最亮眼的位置,但它同时暴露代价(显存 6090MB);读基准先看「谁发布的、对谁有利、代价是什么」。
← 资料库今日播报 →