离线语音识别 | 本地跑通 Whisper.cpp 只需 5 分钟
2026/8/30 8:13:21 网站建设 项目流程

离线语音识别 | 本地跑通 Whisper.cpp 只需 5 分钟

【免费下载链接】whisper.cppPort of OpenAI's Whisper model in C/C++项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp

Whisper.cpp 是 OpenAI Whisper 语音识别模型的 C/C++ 移植版,一个完全无网络的推理引擎:不依赖云端、不收费、音频数据不出本机。三条命令就能跑起本地语音转文字。

为什么要把语音识别放到本地

把音频交给云端 API 有三个实际问题:数据落在第三方服务器,医疗、法务、企业内部等敏感场景无法过隐私这一关;车机、工厂、断网会议这类无网络环境,云端服务直接失效;API 按音频时长计费,批量转写时成本不可控。

Whisper.cpp 的定位一句话讲清:纯 C/C++、零第三方依赖,同一份代码能在 macOS、Linux、Windows、Android 上编译运行,甚至可以通过 WebAssembly 跑在浏览器里,让任意设备都能做离线语音识别。

🚀 5 分钟跑通第一个离线语音识别

第一步:环境准备

只需要一个编译器和 CMake(3.14 以上),不用安装任何额外依赖。克隆仓库:

git clone https://gitcode.com/GitHub_Trending/wh/whisper.cpp cd whisper.cpp

第二步:拉取与编译

Makefile 已经把「下载模型 + 编译 + 运行」的流程打包好了,一行命令全部完成:

make base.en

它会下载 base.en 模型(约 142 MiB),编译整个项目,并对samples/里的示例音频跑一次推理。如果打算开启 CUDA、Vulkan 等加速,改用cmake -B build && cmake --build build --config Release手动编译,模型单独用 models/download-ggml-model.sh 脚本下载。

第三步:跑第一个样例

对仓库自带的肯尼迪演讲片段做转写:

./build/bin/whisper-cli -f samples/jfk.wav -m models/ggml-base.en.bin

输出是一段 11 秒的经典台词,带时间戳逐行打印:"And so my fellow Americans, ask not what your country can do for you, ask what you can do for your country."

⚙️ 它凭什么快和稳

核心推理只有两个文件。模型逻辑全部在include/whisper.hsrc/whisper.cpp里,张量层是自研的 ggml 库:权重、mel 滤波器、词表打包进一个.bin文件,推理过程零内存分配。相当于开会前把座位一次分好,会中不用排队、没有碎片,延迟稳定。

按架构做 SIMD 与 GPU 卸载。ggml 自带针对不同芯片的手写内核:Apple Silicon 走 NEON、Accelerate 和 Metal,x86 走 AVX/AVX2/AVX512,Android 有完整的 ARM 优化。Apple Silicon 上推理可以完全在 GPU 上跑,再配合 Core ML 放到神经引擎,官方标注比纯 CPU 快 3 倍以上。

整数量化。支持 q4_0、q5_0 等量化档,模型体积缩 60%~70%——large-v3 从 2.9 GiB 压到 1.1 GiB——部分硬件上计算量变小,推理速度也随之提升。

📦 按设备选模型档位

模型磁盘体积运行内存适用场景
tiny.en75 MiB~273 MB树莓派、嵌入式,实时优先
base.en142 MiB~388 MB通用均衡,上手首选
medium1.5 GiB~2.1 GB桌面/服务器,高精度多语种转写

.en的模型只支持英语,需要多语种就用对应不带.en的版本(如medium)。追求更高精度还有 2.9 GiB 的large-v3,空间紧张可换 1.1 GiB 的large-v3-q5_0量化版。

🛠️ 踩坑记录与下一步

音频格式不对直接报错。whisper-cli只认 16 位、16kHz、单声道 WAV,其他格式先转一下:

ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav

线程数与硬件不匹配。-t设成物理核数即可;树莓派这类弱硬件建议-t 3配 tiny 模型,甚至-t 1,比开满线程更稳。

模型太大装不下。编译完执行./build/bin/quantize models/ggml-base.en.bin models/ggml-base.en-q5_0.bin q5_0做量化,运行时用-m指定量化后的文件即可。

跑通之后别只停留在命令行:examples 目录里 examples/stream 是麦克风实时转写,examples/command 是能执行语音指令的助手;想集成进自己的项目,Go、Java、Ruby 等语言绑定在 bindings/go 等目录里都有现成实现。

clone 下来跑一遍make base.en,5 分钟后你就有一条完全离线、无网络依赖的语音转写流水线。

【免费下载链接】whisper.cppPort of OpenAI's Whisper model in C/C++项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询