尧图精选

如何三步跑起 Whisper 语音转文字:whisper.cpp 本地离线推理快速上手

🕒 发布时间:2026/9/2 11:41:17 📁 来源:尧图网络
如何三步跑起 Whisper 语音转文字whisper.cpp 本地离线推理快速上手【免费下载链接】whisper.cppPort of OpenAIs Whisper model in C/C项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp会议录音、播客、客户访谈……当你想把一段音频变成可检索、可编辑的文字又不想把声音数据上传到云端时whisper.cppOpenAI Whisper 的 C/C 离线推理实现就是能直接跑在你设备上的那个工具。它到底解决什么问题先说三个你可能正被卡住的地方。你的音频数据不能出设备。云端 API 按量计费且每次调用都要把原始音频传出去——涉及隐私或合规的录音这条路根本走不通。你不想为跑 ASR 拖进一整套 Python PyTorch。你的产品是 C 写的或者要往嵌入式设备里塞难道本地部署就一定要背着几 GB 的依赖你没有 NVIDIA 显卡或者干脆只有 CPU。厂商私有接口CUDA、Metal各自为政普通桌面和 Linux 服务器上能用的通用加速方案并不多。whisper.cpp 的思路很直接纯 C/C、无第三方依赖模型加载进内存就能推理计算部分委托给底层 ggml 张量库CPU、CUDA、Metal、Vulkan跨厂商 GPU 接口NVIDIA/AMD/Intel 通吃都能接。 先跑起来三步验证听起来要折腾半天其实就三步全程不超过 5 分钟。第一步拿代码、拿模型。克隆仓库并下载base.en约 142 MB 的 ggml 格式权重文件git clone https://gitcode.com/GitHub_Trending/wh/whisper.cpp cd whisper.cpp sh ./models/download-ggml-model.sh base.en第二步编译。两条 CMake 命令生成可执行程序cmake -B build cmake --build build --config Release第三步转写仓库自带的音频。跑仓库内置的 JFK 样本./build/bin/whisper-cli -f samples/jfk.wav验证标准终端应输出带时间戳的英文转写行形如[00:00:00.000 -- 00:00:04.530] And so my fellow Americans...末尾附编码/解码耗时统计。看到这两样说明模型加载、音频前处理、解码链路全部通了。嫌手动麻烦的话直接make base.en也能一键完成下载模型 跑 samples 目录全部音频。 一分钟看懂它怎么工作可以把它想象成一家两班倒的餐厅encoder 是后厨把整段音频熬成一锅浓缩高汤梅尔频谱特征decoder 是前厅一口一口从高汤里舀出文字边舀边看上一口说了什么来决定下一口。对外暴露的其实就一条调用链核心流程如下完整接口见 include/whisper.hwhisper_context * ctx whisper_init_from_file_v2(models/ggml-base.en.bin, base.en); whisper_state * st whisper_init_state(ctx); whisper_full_params wp whisper_full_params_default(); wp.language en; whisper_full(st, wp, pcm, sample_count); // 一次性得到所有分段再往下的梅尔频谱计算、矩阵乘、采样都藏在 ggml 计算图里按你编译时选的后端CPU/CUDA/Vulkan分发执行你基本不用关心。⚖️ 实际效果参考不同硬件上的体感差异不小下面是常见配置的预期区间场景典型配置预期表现注意点桌面纯 CPU 转 1 分钟音频base.en8 线程约 5–15 秒需开启 AVX2base 模型占用约 1 GB 内存桌面 Vulkan GPU 转 1 分钟音频base.enRTX 30 系/RX 6000 系约 2–5 秒快于纯 CPU驱动须暴露 Vulkan 计算能力Android 手机端tiny.enAdreno 650 级30 秒音频约 10–30 秒内存紧张别上 medium 以上服务器批处理长音频30 分钟small CUDA/Vulkan多线程约 30–90 秒显存/内存按模型尺寸预留long 音频建议分段以上为参考值请以实机为准。 调优与避坑对照每条技巧后面都跟着一个真实翻车点建议对照着看。技巧 1输入统一转成 16-bit、16 kHz、单声道 WAV。坑位whisper-cli 只吃 16-bit WAV你直接丢一个 mp3 进去会得到报错或静默失败。解法是用 ffmpeg 先转码ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le out.wav。技巧 2纯英文音频优先选.en后缀模型base.en 而非 base。坑位用多语言模型且不指定语言时自动检测偶尔会把英语误判成其他语言输出突然变成乱码般的转写。解法是加-l en强制语言或直接换.en模型。技巧 3要 GPU 加速就在 CMake 里显式加开关如-DGGML_VULKAN1NVIDIA 卡用-DGGML_CUDA1。坑位忘记加开关时 CMake 不会报错会默默按 CPU 编译你以为自己在用 GPU 其实在裸跑 CPU速度差几倍还查不出原因。解法是编译后跑一次任务看日志里的后端信息确认计算确实落在 GPU 上。技巧 4显存或内存吃紧时换量化模型Q8_0/Q5_0而不是硬扛。坑位量化省的是内存不是速度——在小模型或 Vulkan 后端上量化版反而可能比 F16 慢。解法是量化模型只用于放得下的场景追速度时优先保证 F16 精度。技巧 5上线前先拿仓库测试集跑一遍。坑位调完参数线程数、模型、语言直接上生产WER词错误率悄悄涨了没人发现。解法是tests/目录内置了参考文本en-0-ref.txt 等cmake -DWHISPER_BUILD_TESTSON后跑对比。 不同人群怎么选新手尝鲜别碰任何参数make base.en一键看结果跑通再谈优化。桌面生产用户NVIDIA 卡直接 CUDAAMD/Intel 或 Linux 服务器选 Vulkan编译时一次到位。移动端/嵌入式tiny.en 平台原生后端iOS 走 MetalAndroid 走 Vulkanmedium 以上基本别想。服务器批处理small 起步按内存预算决定量化与否把-t线程数压到物理核附近即可堆到 32 线程没有收益。whisper.cpp 的价值在于一套无依赖的 C/C 代码让你在本地设备上就拥有离线语音转文字能力且计算后端可插拔。下一步建议先拿一段你自己的真实录音跑通全流程再按上面的对照表逐步加 GPU 后端。核心实现src/whisper.cpp 构建入口CMakeLists.txt【免费下载链接】whisper.cppPort of OpenAIs Whisper model in C/C项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →