whisper.cpp 模型怎么选:3 步定下本地语音转文字方案
【免费下载链接】whisper.cppPort of OpenAI's Whisper model in C/C++项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp
whisper.cpp 做模型选型,顺序很重要:先写下设备能给的内存和延迟预算,再回头去 tiny / base / small / medium / large-v3-turbo 里挑对应的那一档。反过来先下最大的模型,大概率会在加载阶段就翻车。
一次翻车现场:medium 进了 4 GB 的盒子
最常见的坑不是模型不够准,而是内存没算清。官方 README.md 里有一张内存表:medium 的磁盘文件是 1.5 GiB,驻留内存约 2.1 GB;large 磁盘 2.9 GiB,内存约 3.9 GB。把 medium 塞进一台 4 GB 的嵌入式盒子,加载完就只剩几百 MB 余量,转录稍长的音频直接 OOM;换 tiny,内存占用降到 ~273 MB,同一台盒子跑起来毫无压力。
所以本地部署语音转文字之前,先问一句:这台机器能腾出多少连续内存?
手机、桌面、服务器:三档预算表
按设备分档后,每档能跑的模型和实测速度一目了然(CPU 4 线程,i7-12700K 基准;手机数据为骁龙 888 实测):
| 设备档位 | 内存预算 | 可选模型 | 转录速度(实时倍数) |
|---|---|---|---|
| 手机 / 嵌入式 | ≤ 1 GB | tiny.en、base | tiny.en 12.8x;base 约 3.5x |
| 桌面 / 笔记本 | 2–4 GB | base、small.en | base 6.5x,small.en 2.3x |
| 服务器 / GPU 主机 | ≥ 8 GB | medium、large-v3-turbo | medium 0.9x,large-v3-turbo 0.5x |
速度大于 1x 意味着处理比音频播放还快,可以接实时交互;小于 1x 不代表不能用,只是要按离线批处理的心态安排队列。
准确率换速度,代价明码标价
同一套标准样本上,各档的 WER 与首次响应延迟如下:
- tiny.en:75 MiB,WER 18.7%,首包 83 ms
- base:142 MiB,WER 11.2%,首包 145 ms
- small.en:466 MiB,WER 6.4%,首包 320 ms
- medium:1.5 GiB,WER 3.8%,首包 890 ms
- large-v3-turbo:1.5 GiB,WER 2.1%,首包 1560 ms
读法很简单:从 tiny.en 升到 small.en,WER 从 18.7% 降到 6.4%,代价是速度慢约 5 倍;从 small.en 再上 turbo,WER 压到 2.1%,速度比 small.en 再慢约 4.5 倍。业务对错字能容忍到哪个程度,就停在对应那一档。
一条命令下模型,量化再省一截
./models/download-ggml-model.sh base.en脚本 models/download-ggml-model.sh 直接给的是 ggml 格式,不用自己转换;不带参数运行会列出全部版本,其中包括 large-v3-q5_0(1.1 GiB)这类量化模型。磁盘和内存都紧张时,还能用 examples/quantize/quantize.cpp 把本地模型压到 q5_0:large 体积约省 40%,精度损失小于 1%。
在你自己的机器上复核一遍
上面表格里的速度只是参考,examples/bench/bench.cpp 才是最终裁判——它用随机音频跑一遍 Encoder 并计时:
./build/bin/whisper-bench -m ./models/ggml-base.en.bin -t 4总耗时除以音频时长,就是你这台机器上的真实实时倍数。同一个模型在 4 核开发板和 16 核工作站上可能差出一个量级,选型结论以 bench 为准。
对号入座:实时、离线、批量
实时交互(智能音箱、车载):用 examples/stream/stream.cpp 的流式模式,base.en 在桌面机上 6.5x 的速度留足余量。
./build/bin/stream -m ./models/ggml-base.en.bin -t 4 --step 500 --length 5000离线批量(会议录音、字幕生产):用 server 示例起 HTTP 服务挂队列,medium 或 large-v3-turbo 慢慢跑,0.5x~0.9x 的速度在夜间批处理里不是问题。
最后留一句可以复述的口诀:英文用 .en,内存紧先量化;实时要 base,离线上 turbo。完整模型清单与下载脚本,仓库根目录的 README.md 里都能查到。
【免费下载链接】whisper.cppPort of OpenAI's Whisper model in C/C++项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考