ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Whisper.cpp 离线语音识别实战指南:3 步跑通本地 ASR,附模型选型与避坑清单

Whisper.cpp 离线语音识别实战指南:3 步跑通本地 ASR,附模型选型与避坑清单 Whisper.cpp 离线语音识别实战指南3 步跑通本地 ASR附模型选型与避坑清单【免费下载链接】whisper.cppPort of OpenAIs Whisper model in C/C项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp想把语音识别搬到用户设备上、不经过任何云端whisper.cpp 就是干这个的它是 OpenAI Whisper 模型的 C/C 纯手写移植无第三方依赖一条命令就能在笔记本、手机、服务器甚至浏览器里跑通离线转录。核心模型实现集中在 include/whisper.h 和 src/whisper.cpp 两个文件里其余计算部分来自内置的 ggml 张量库。为什么值得用4 个硬指标纯本地运行音频不离开设备隐私敏感场景医疗、法务、会议记录可直接落地零运行时内存分配所有内存在启动时一次预分配推理过程稳定无抖动硬件覆盖广x86 的 AVX/AVX512、ARM 的 NEON、CUDA、Metal、Vulkan、OpenCL、SYCL、Core ML 都有对应后端C 风格 API通过 include/whisper.h 暴露的函数即可嵌入任何语言的项目平台方面macOS、Linux、Windows、iOS、Android、WebAssembly 全部官方支持连树莓派都有跑通的案例。三步跑通第一条语音转录整个仓库对新人很友好克隆后无需手工装依赖编译走 CMake模型用脚本一键下载。第一步拿到代码git clone https://gitcode.com/GitHub_Trending/wh/whisper.cpp cd whisper.cpp第二步构建。默认走 CMake 流程产物在build/bin/下主程序是whisper-cli也可以直接用make走封装好的 targetcmake -B build cmake --build build --config Release第三步下载模型并转录仓库自带的 JFK 演讲样例。base.en是 142MB 左右的纯英文模型速度精度平衡适合第一次试跑bash models/download-ggml-model.sh base.en ./build/bin/whisper-cli -m models/ggml-base.en.bin -f samples/jfk.wav跑通后输出会先打印一段模型自检信息——词表大小、音频上下文长度1500 帧、编码器层数、线程数、启用了哪些指令集AVX2/NEON 之类。确认这些参数符合预期后你会看到带时间戳的识别结果内容就是那句经典的 And so my fellow Americans...。注意一点whisper-cli只吃 16-bit WAV。手头的 mp3/flac 先用 ffmpeg 转一下ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav多语言需求在这里一并说清非.en后缀的模型base、small、medium、large-v3 等支持 99 种语言。用-l zh指定语言不指定则自动检测加--translate可把非英语语音直接翻译成英文输出。移动端把识别塞进 App仓库内置两套 Android 工程Kotlin 版 examples/whisper.android 和 Java 版 examples/whisper.android.java另有 iOS 的 examples/whisper.objc 和 SwiftUI 的 examples/whisper.swiftui。Android 示例的完整链路是应用启动时把 ggml 模型文件从 assets 拷到内部存储用whisper-cli同一套 C API 加载模型边录边切片送入识别。实测在 ARM 手机上tiny模型几秒就能加载完十几秒转写完一条长音频全程不联网。移植到自己项目时直接照抄示例里的 JNI 调用层即可examples/whisper.android/java 目录下的WhisperJNI类是现成参考。命令行与服务端批量处理和 HTTP API本地批量转写whisper-cli的输出格式由开关控制常用的是--output-txt纯文本、--output-srt字幕、--output-json结构化便于后处理。比如要一次性把某目录所有音频转成 txt只需循环调用for f in *.wav; do ./build/bin/whisper-cli -m models/ggml-base.en.bin -f $f --output-txt --output-file ${f%.wav} doneHTTP 服务端examples/server 自带一个 REST 服务启动时指定模型和端口之后把音频 POST 到/inference就能拿到 JSON 转录结果方便接进现有后端./build/bin/server -m models/ggml-base.en.bin --port 8080 curl -X POST -H Content-Type: audio/wav --data-binary audio.wav http://localhost:8080/inference离线语音助手examples/command 演示了更完整的玩法——录下指令、识别后匹配关键词再执行动作commands.txt里就是可自定义的命令词表做智能家居或语音导航可以照这个思路搭。语言绑定Python / Go / WebAssemblyPythonexamples/python/whisper_processor.py 展示了把 whisper.cpp 包成 Python 处理器的完整流程配合 pip 上的whisper-cpp系封装可直接import使用transcribe(audio.wav)一行拿到文本Gobindings/go 提供 CGO 封装核心是whisper.Init(模型路径)拿到 context、喂入 PCM 数据后逐段取文本回调机制支持流式拿结果bindings/go/examples/go-whisper 是个带完整 flag 解析的可运行示例JavaScript/WASMexamples/whisper.wasm 编译为 WebAssembly 后通过 npm 包whisper.cpp在浏览器里加载模型识别音频bindings/javascript 是它的外壳代码选型与调优模型、量化、加速一次讲清模型怎么选内存占用为 16-bit 加载时的典型量级模型文件大小运行内存速度适用场景tiny(.en)~75MB~270MB最快实时交互、移动端、树莓派base(.en)~142MB~390MB快通用场景默认选择small(.en)~466MB~850MB中对准确率有要求的转录medium(.en)~1.5GB~2.1GB慢专业级转录large-v3~2.9GB~3.9GB最慢多语言、精度优先.en后缀是英语专用版同规格下更快更准需要多语言或翻译功能就必须上非.en的模型。下载脚本 models/download-ggml-model.sh 不带参数运行会列出全部可下模型包括现成的量化版本如base.en-q5_1、large-v3-turbo。量化用 examples/quantize 工具可以把 16-bit 模型压成整数版本。q5_0是体积与精度的平衡点q8_0几乎无损q4_0最省内存但损失稍大。量化后内存占用接近减半对内存紧张的部署很关键./build/bin/quantize models/ggml-base.en.bin models/ggml-base.en-q5_0.bin q5_0硬件加速编译时按目标机器打开对应后端在 cmake 配置阶段开启如GGML_METAL、GGML_CUDA、GGML_VULKAN、GGML_AVX2、GGML_OPENCL、GGML_SYCLApple 侧还有 Core ML 选项。没有 GPU 的机器默认 CPU 路径也够用启动日志里的指令集信息能帮你确认 AVX2/NEON 是否真的生效。运行期调优三条最有用-t指定线程数对齐物理核心--temperature 0.8配合温度回退机制改善难识别片段默认 0 温度失败后会自动升温重试--beam-size 5用束搜索换准确率代价是速度。避坑清单问题 → 解法输入格式不对 / 识别报 0 段→ 先用 ffmpeg 转 16-bit 单声道 16kHz WAVwhisper-cli不直接吃 mp3模型加载失败→ 检查文件是否下完整对比脚本打印的大小重新执行下载脚本它会自动跳过已存在的文件找不到 ffmpeg 等依赖→ Linux 装build-essential cmake ffmpegmacOS 用brew install cmake ffmpegMetal/CUDA 编译报错→ 更新 Xcode 命令行工具或 CUDA SDK 后重新cmake -B build识别结果偏乱→ 调高--temperature、开--beam-size或换个更大的模型想复现仓库测试→ 仓库models/下带for-tests-前缀的小模型就是测试专用配合 tests/run-tests.sh 跑收尾whisper.cpp 把 Whisper 塞进了最轻的 C/C 壳子里无依赖、全离线、从树莓派到 Apple Silicon GPU 通吃。记住三条主线即可——最小路径clone → cmake →whisper-cli、场景化示例examples/ 下移动、服务端、语音助手全覆盖、选型公式实时选 tiny、通用选 base、多语言上 large内存紧张就量化。关键入口README.md官方文档、examples/全部可运行示例、models/README.md模型与格式说明、bindings/Go/Java/JS 绑定、tests/回归测试与参考文本。【免费下载链接】whisper.cppPort of OpenAIs Whisper model in C/C项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表