
3分钟跑通Whisper.cpp离线语音识别完整实战【免费下载链接】whisper.cppPort of OpenAIs Whisper model in C/C项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cppwhisper.cpp 是 OpenAI Whisper 语音识别模型的 C/C 移植版。它把音频转文字这件事从云端拉回本地音频不上传、结果不排队、断网照常跑。适合想在服务器、树莓派、安卓或 iOS 设备上做离线语音识别的开发者也适合只想在自己电脑上试试转写效果的普通用户。 Whisper.cpp离线语音识别能干什么它的核心能力一句话概括纯本地、纯 C/C、无第三方依赖把 16kHz 单声道音频转成带时间戳的文字。会议与访谈转写一段录音丢进去出来分段的文字稿不需要任何 API Key隐私敏感的内容不用出机器。移动端实时助手仓库里自带 Android 示例和 iOS 示例录音、加载模型、转写、显示一气呵成可以直接当学习样板。语音命令系统command示例用麦克风输入触发预定义命令是做离线语音控制的原型起点。 Whisper.cpp离线转写三步跑通先拿到代码再走最短验证路径。Linux 和 macOS 上按下面三步走全程不需要装额外依赖只需 cmake 和 C 编译器。克隆仓库并进入目录git clone https://gitcode.com/GitHub_Trending/wh/whisper.cpp cd whisper.cpp下载 base.en 模型英文、约142 MiB脚本会存到 models/目录sh models/download-ggml-model.sh base.en编译并跑一次官方示例音频验证cmake -B build cmake --build build --config Release ./build/bin/whisper-cli -f samples/jfk.wav -m models/ggml-base.en.bin终端会按分段打印文字。看到 And so my fellow Americans... 这一段说明整个链路已经通了。想偷懒的话直接make base.en一条命令就能自动完成下载加转写。 完整转写一次本地录音假设你有一段 16kHz 单声道的 WAV 录音meeting.wav目标是转成文字并存档。输入要求只有一个16 位采样率的 WAV 文件。手上是 mp3 或其他格式先用 ffmpeg 转一下采样率、声道、编码都交给这条命令处理。ffmpeg -i meeting.mp3 -ar 16000 -ac 1 -c:a pcm_s16le meeting.wav转好之后指定输入、输出两个文件参数即可./build/bin/whisper-cli -m models/ggml-base.en.bin \ -f meeting.wav --output-txt --output-file meeting.txt预期输出meeting.txt里是按时间顺序排列的转写文本终端同时打印每个分段及其起止时间。跑中文内容时把-m换成多语言模型如 small并加上--language zhbase.en 这类.en模型只认英文喂中文会得到乱码。⚖️ 选模型速度、精度、内存怎么权衡模型大小直接决定显存/内存占用和转写耗时先看这张表再下手模型磁盘占用内存占用适用场景tiny.en75 MiB~273 MB资源受限树莓派、老手机要最快base.en142 MiB~388 MB日常验证、英文实时场景的均衡选择small466 MiB~852 MB中文等多语言、精度要求更高medium1.5 GiB~2.1 GB离线精转、质量优先large-v32.9 GiB~3.9 GB专业转写机器内存 ≥8 GB追求速度tiny.en实时转写没问题口语里同音词容易出错。资源受限跑不动 base 就再降一档或把模型量化成 q5_0用仓库里的 quantize 工具生成内存和磁盘都能明显下降精度损失很小。精度优先medium 起步内存宽裕再上 large-v3。 高频踩坑现象、原因与解法转写出来是乱码或空文本现象命令跑完了输出是重复的怪句子。原因输入不是 16kHz 单声道或者用.en模型跑了中文音频。解法按前面 ffmpeg 那条命令统一转成 16kHz 单声道 WAV多语言内容换 small/medium 模型并指定--language。报 invalid audio 或加载失败现象whisper-cli 直接拒绝处理文件。原因whisper-cli 只认 16 位 PCM 的 WAVmp3、flac、float 格式都不行。解法先过一遍 ffmpeg 转码确认-c:a pcm_s16le已生效。编译慢或 CPU 没跑满现象转写耗时远超预期system_info里 AVX 全是 0。原因默认编译没用上现代指令集或线程数偏低。解法编译时加-DWHISPER_AVX2ON支持 AVX2 的 x86 机器运行时用--threads设到物理核心数。Apple 设备想再快一些现象Mac 上转写速度一般。原因默认只走 CPU。解法README 里的 Metal 路径会自动启用M 系列芯片上推理直接跑 GPU需要极致速度可再按 models/目录说明生成 Core ML 版本编码器能再快 3 倍以上。跑通上面三步你就有了一个能离线干活的语音识别基座接自己的业务时读 16kHz 音频、调 include/whisper.h里的 C 接口、按分段取结果即可。下一步建议把 base.en 换成贴合你语言的小模型拿一段真实业务录音完整跑一遍再决定要不要量化和调线程数。【免费下载链接】whisper.cppPort of OpenAIs Whisper model in C/C项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考