Whisper 是一个开源 Windows 桌面应用,基于 OpenAI 的 Whisper 自动语音识别(ASR)模型,使用 DirectCompute(Direct3D 11 计算着色器)进行高性能 GPGPU 推理。该项目是 whisper.cpp(OpenAI Whisper 的 C++ 移植)的 Windows 移植版本。
用途
- 转录音频文件中的语音为文本。
- 从麦克风捕获实时音频并进行转录或翻译。
主要能力
- 供应商无关的 GPGPU:基于 DirectCompute(Direct3D 11 计算着色器)。
- 纯 C++ 实现,除必要的操作系统组件外无运行时依赖。
- 性能显著优于 OpenAI 的 PyTorch/CUDA 实现:在 GeForce 1080Ti 上使用 medium 模型,3分24秒语音 PyTorch/CUDA 需 45 秒,本实现仅需 19 秒;运行时依赖 9.63 GB 对比 Whisper.dll 的 431 KB。
- 混合 F16/F32 精度(Windows 自 D3D 10.0 起要求支持 R16_FLOAT 缓冲区)。
- 内置性能分析器,可测量各个计算着色器的执行时间。
- 低内存占用。
- 使用 Media Foundation 处理音频,支持大多数音视频格式(Ogg Vorbis 除外)和大多数 Windows 音频捕获设备(部分仅实现 ASIO API 的专业设备除外)。
- 音频捕获时包含语音活动检测,基于 2009 年 Mohammad Moattar 和 Mahdi Homayoonpoor 的文章 “A simple but efficient real-time voice activity detection algorithm”。
- 提供易用的 COM 风格 API;NuGet 上有惯用的 C# 封装。版本 1.10 引入 PowerShell 5.1(Windows PowerShell)脚本支持。
- 提供预编译二进制文件。
使用方式
- 从仓库的 Releases 部分下载 WhisperDesktop.zip,解压后运行 WhisperDesktop.exe。
- 首次启动界面会要求下载模型,推荐 ggml-medium.bin(1.42 GB),因为作者主要使用该模型测试。
- 下一界面可转录音频文件。
- 另有界面可捕获并转录或翻译来自麦克风的实时音频。
- 开发者构建步骤:克隆仓库,用 Visual Studio 2022 打开 WhisperCpp.sln,切换到 Release 配置,构建并运行 Tools 子文件夹中的 CompressShaders C# 项目(设为启动项目,然后“调试 / 开始执行(不调试)”),成功后应看到类似“Compressed 46 compute shaders, 123.5 kb -> 18.0 kb”的输出。再构建 Whisper 项目生成原生 DLL,或 WhisperNet 生成 C# 封装和 NuGet 包,或示例项目。若在 Visual C++ 2022 或更新版本构建的软件中使用该库,可能需要以 .msm 合并模块或 vc_redist.x64.exe 形式再分发 Visual C++ 运行时 DLL;如这样做,在 Whisper 项目属性中 C/C++ -> 代码生成 -> 运行时库从“多线程 (/MT)”改为“多线程 DLL (/MD)”并重新生成。库包含 RenderDoc GPU 调试器集成,从 RenderDoc 启动程序时按 F12 捕获计算调用;调试 HLSL 着色器请使用 DLL 的调试版本。仓库还包含许多仅用于开发的代码(替代模型实现、兼容 FP64 版本的部分计算着色器、调试追踪和追踪比较工具等),通过预处理器宏或 constexpr 标志禁用。
适用场景
- 需要在 Windows 上快速转录音频文件的用户。
- 需要从麦克风实时转录或翻译语音的用户。
- 拥有 Direct3D 11.0 能力 GPU 的开发者,希望通过 COM 风格 API 或 C# 封装集成语音识别功能。
限制
- 自 2023 年后未更新。
- 唯一支持的平台是 64 位 Windows;应在 Windows 8.1 或更新版本上运行,但仅在 Windows 10 上测试过。
- 库需要 Direct3D 11.0 能力的 GPU(2023 年即“任何硬件 GPU”,最近不支持 D3D 11.0 的 GPU 是 2011 年的 Intel Sandy Bridge)。
- CPU 侧需要 AVX1 和 F16C 支持。
- 未实现自动语言检测。
- 当前版本实时音频捕获延迟较高,根据语音检测约 5-10 秒。
- 作者指出代码可能包含错误,软件“按原样”提供,不附带任何保证。
- 网站 whisperdesktop.com 冒充该项目,不应信任;它虽然目前链接到 GitHub 下载,但站方可能随时替换为恶意软件。
- 作者已构建商业后继产品(闭源,30 天免费评估,之后一次性购买),使用新语音转文本引擎,主要用 AOT 编译的 C# 实现,包含 Direct3D 12 和 Vulkan 1.3 计算后端,支持 Voxtral Mini 4B Realtime 模型推理。
- 性能优化有限:作者针对 nVidia 1080Ti、Ryzen 7 5700G 的 Radeon Vega 8、Ryzen 5 5600U 的 Radeon Vega 7 进行了优化。nVidia 相对速度:大模型 5.8,中模型 10.6;Ryzen 5 5600U APU 中模型约 2.2;nVidia 1650 比 1080Ti 慢但远快于实时;Intel HD Graphics 4000(Core i7-3612QM)中模型相对速度 0.14,小模型 0.44,远慢于实时但能运行。未针对独立 AMD GPU 或集成 Intel GPU 专门优化。瓶颈可能在内存而非计算。