news 2026/8/30 9:11:46

whisper.cpp 配置 CUDA 加速,长音频语音转写跑到实时以上

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
whisper.cpp 配置 CUDA 加速,长音频语音转写跑到实时以上

whisper.cpp 配置 CUDA 加速,长音频语音转写跑到实时以上

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

用 CPU 转写一段一小时的会议录音,你会等上比音频本身还长的时间,风扇还会先开始尖叫。whisper.cpp 是 OpenAI Whisper 语音识别模型的纯 C/C++ 移植,启用 CUDA 加速后把最重的 encoder/decoder 计算放到 NVIDIA GPU 上执行。按本文操作,你能得到一个本地转写命令行工具:对仓库自带的 11 秒样例音频输出带时间戳的文本,并掌握一套可复用的提速测量方法。

🔩 三步跑通转写

第一步,拉代码并下载 base.en 模型(约 142 MiB):

git clone https://gitcode.com/GitHub_Trending/wh/whisper.cpp cd whisper.cpp sh ./models/download-ggml-model.sh base.en

第二步,开启 CUDA 编译(与默认编译只差一个参数):

cmake -B build -DGGML_CUDA=1 cmake --build build -j --config Release

第三步,转写仓库自带的样例音频:

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

看到逐句时间戳文本,且末尾出现whisper_print_timings各阶段耗时,即算跑通。

对照自查环境清单

最低档(跑 base.en 够用):

  • NVIDIA 显卡,显存 4GB,Compute Capability 3.5 及以上
  • 已安装 CUDA Toolkit,nvcc -V能正常输出
  • CMake 3.10+,GCC 7.5+

推荐档:

  • 显存 8GB 以上,跑 medium 模型不爆显存
  • CMake 3.14+ / GCC 10+,Release 构建由 CMake 默认启用

关键配置项说明

配置项作用建议值
-DGGML_CUDA=1cmake 阶段开启 cuBLAS + 自定义 CUDA kernel 编译,默认关闭必设,否则整篇白搭
-t NCPU 线程数,默认min(4, 核心数)4~8,GPU 模式下调大无收益
-l LANG音频语言,默认en中文音频传zh
-mggml 模型文件路径入门用models/ggml-base.en.bin

按显存选模型

README 给出的模型加载内存:tiny 约 273 MB、base 约 388 MB、small 约 852 MB、medium 约 2.1 GB、large 约 3.9 GB。按显存对号入座:

  • 4GB:tiny / base(.en),最稳
  • 8GB:small / medium
  • 12GB+:large;或量化版 large-v2-q5_0(磁盘 2.9 GiB 降到 1.1 GiB,精度损失很小)

语言取舍:.en后缀模型只支持英文但准确率更高,英文内容优先选它;多语言场景选不带后缀的版本。完整列表见 models/README.md。

排坑手册

  • 症状:编译时未检测到 CUDA 或报ggml-cuda.h相关错误 → 原因:CUDA Toolkit 未安装或 CMake 未找到 → 解法:先确认nvcc -V可用,再用-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda显式指定
  • 症状:whisper-cli 加载音频即报错 → 原因:输入不是 16kHz 16bit 单声道 WAV → 解法:ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le out.wav
  • 症状:运行中 CUDA out of memory → 原因:模型超出显存 → 解法:换更小模型或量化版
  • 症状:中文音频大段幻觉、输出英文 → 原因:-l默认是en→ 解法:加-l zh
  • 症状:耗时与 CPU 版几乎一样 → 原因:编译时没开 CUDA → 解法:用-DGGML_CUDA=1重新配置并清理旧 build 目录

怎么测量加速效果

看运行末尾whisper_print_timings里的两个指标:

  • total time除以音频时长得到实时倍数。例如 11 秒的 jfk.wav 若 total 约 3 秒,即约 3.7 倍实时
  • encode time per layer:encoder 是 GPU 加速收益最大的环节,它的下降幅度比总耗时更能反映加速是否生效

要更客观地对比,用仓库自带的基准工具,它用随机音频只压测 encoder(条件:small.en 模型、4 线程):

./build/bin/whisper-bench -m models/ggml-small.en.bin -t 4

分别编译开、关-DGGML_CUDA的两个版本,在同一台机器上跑同一条命令,对比encode time,差值就是你这台机器的真实加速比。

收尾

这套组合适合离线长音频转写、播客归档、实时字幕等需要本地算力兜底的场景。需要 HTTP 接口接多客户端时看 examples/server,想复现本文的测量方法看 examples/bench,C API 定义在 include/whisper.h。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 9:11:01

60G高清纹理Mod详解:黑暗之魂2画质升级与龙祭坛跑图指南

相信不少《黑暗之魂2》玩家都面临过同一个纠结:原版游戏在 2025 年看已经明显跟不上时代,人物模型和场景贴图都带着一股“十年前”的味道。尤其是龙祭坛这种以“史诗感”著称的区域,原版材质放大后全是糊成一片的纹理,火焰、石砖、…

作者头像 李华
网站建设 2026/8/30 9:09:38

无订阅AI生图与AI生视频:从模型原理到工程落地

前两年大家聊 AI 生图,话题还集中在“提示词怎么优化”“模型选哪个”。到了今年,讨论重点已经慢慢变成“用 AI 工具到底怎么才不算贵”。最近不少社群开始转发一个消息:FD Studio 以“无订阅”的方式发布了 AI 生图和 AI 生视频工具。文章标…

作者头像 李华
网站建设 2026/8/30 9:09:09

ESP32上实现LLM思考过程可视化:用Brainscope调试微型语言模型

之前在调试嵌入式端的小型语言模型时,最痛苦的事情不是模型跑不起来,而是模型跑起来之后完全是一个“黑盒”。串口里刷出来一串串 token,你只知道它在生成文本,却不清楚每一步是怎么选的、模型对下一个字符有多少置信度、温度参数…

作者头像 李华
网站建设 2026/8/30 9:08:07

可持久化并查集:一片森林为何只需一个根?

可持久化并查集标题里的“根”,到底是哪个根?是并查集森林里每棵树的根,还是可持久化线段树的根?如果不把这两个“根”分开,很多人在学习这个算法时,会先被字面意思绕晕。先说结论:可持久化并查…

作者头像 李华