Whisper.cpp 从零到可用:离线语音识别本地转写完整指南
Whisper.cpp 从零到可用离线语音识别本地转写完整指南【免费下载链接】whisper.cppPort of OpenAIs Whisper model in C/C项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp手上有 10 条会议录音想一次性转成文字又不想把音频传到云服务。whisper.cpp 就是干这个的——它是 OpenAI Whisper 语音识别模型的 C/C 移植版整个转写过程在本地离线完成纯 C 实现、无第三方依赖。五分钟出第一条转录结果环境要求很低一台装了 C 编译器C11 及以上和 CMake 的机器内存 2GB 起步。Linux 直接装编译工具链即可sudo apt install build-essential cmake然后依次执行拉代码、下模型、编译、跑示例音频。仓库里自带一条 JFK 演讲的样例samples/jfk.wav可以直接用git clone https://gitcode.com/GitHub_Trending/wh/whisper.cpp cd whisper.cpp bash models/download-ggml-model.sh base.encmake -B build cmake --build build --config Release./build/bin/whisper-cli -f samples/jfk.wav跑完会在终端看到带时间戳的英文转写结果。模型文件默认找models/ggml-base.en.bin所以上面不需要-m参数。嫌麻烦的话make base.en一条命令可以完成下载模型 构建 转写全部示例音频。工具装好了接下来看几个日常会用到的玩法。换语言、出字幕、批量跑非英语音频默认按英语识别中文音频要加-l zh日语-l ja。不确定语种就传-l auto让它自动判断或者只加-dl让它检测完语种直接退出。注意.en后缀的模型只认英语多语种场景要下不带.en的模型。生成字幕文件命令行工具能直接输出多种格式。加-osrt得到 SRT 字幕、-otxt纯文本、-ovttVTT、-ojJSON文件会放在音频同目录。做字幕工作流的话基本-osrt就够了。批量处理-f参数可以出现多次一条命令处理多个文件./build/bin/whisper-cli -f a.wav -f b.wav -f c.wav -osrt有个坑先说在前面它目前只吃16 位单声道 16kHz 的 WAV。mp3、m4a 之类的先用 ffmpeg 转一下ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav按硬件选对模型尺寸五个档位的内存和磁盘占用如下选型基本就是拿这个数字跟你的机器对一下模型磁盘内存占用适用场景tiny75 MiB~273 MB快速验证流程base142 MiB~388 MB日常使用默认推荐small466 MiB~852 MB精度要求更高medium1.5 GiB~2.1 GB专业场景large2.9 GiB~3.9 GB精度优先内存不够可以下量化版如large-v3-q5_02.9 GiB 压到 1.1 GiB精度损失很小。有加速硬件的话构建时加对应参数即可运行时自动走 GPUNVIDIAcmake -B build -DGGML_CUDA1各品牌显卡Vulkancmake -B build -DGGML_VULKAN1CPU 用 OpenBLAS 加速cmake -B build -DGGML_BLAS1Apple Silicon 默认走 Metal无需额外配置线程数默认取核心数的一半可以用-t手动指定。改完参数重新cmake --build build就行。几个高频坑Q报错或者转写出来是空的九成是音频格式问题。确认是 16 位 16kHz 单声道 WAV不是用-f直接传了 mp3。Q识别不准怎么办先升一档模型base → small → medium再确认语种参数和模型类型匹配——中文音频配.en模型必然拉胯。Q模型下载脚本失败手动下载ggml-xxx.bin文件放进models/目录即可模型清单和下载地址见 models/ 的说明。Q第一次用 GPU 特别慢首次运行要把模型编译成设备专属缓存第二次开始就快了属正常现象。Q想在局域网里给别的程序调用仓库自带一个 HTTP 服务示例接口风格模仿 OpenAI 的 API位置在 examples/server/。转写逻辑本身集中在 src/whisper.cpp想改采样或解码策略的话从这里入手。【免费下载链接】whisper.cppPort of OpenAIs Whisper model in C/C项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考