无需 Python 或 PyTorch 即可运行的 Whisper 语音识别模型——whisper.cpp

whisper.cpp 是 OpenAI Whisper 模型的纯 C/C 实现,无需 Python 或 PyTorch 即可运行 Whisper 语音识别模型。

也算是跟前一个 stable-diffusion.cpp 的原因同时发现的吧,这个才真真切切的是 llama.cpp 同个ggml-org项目下的仓库,当时我不知道怎么地就是没有想到下载已经编译好的二进制可执行文件,反倒是花费一二的时间将其编译后才使用的,可惜的是当时却是因为配置过低差70多MB的“内存”才能正常启动。

就这样又是搁置许久之后才再次着手“研究”起来,主要就是前不久的时候再折腾私有AI语音助手的时候接触了faster-whisper,随后就再次拾起之前搁置的whisper.cpp研究一番。

一开始是用自己编译后的版本成功启动的,后来觉得可能自己编译的不如直接在 GitHub 下载编译好的二进制可执行版本,遂将其切换成仓库编译好的版本来做如下的内容了。

核心功能

  • 🎤 实时录音转文字 – 支持流式识别
  • 📁 音频文件转文字 – 支持多种格式
  • 🌐 多语言支持 – 99 种语言识别
  • 📝 说话人识别 – 支持多说话人标注
  • 🔧 beam search & greedy – 两种解码模式
  • 💬 SRT/VTT 字幕生成 – 自动输出时间戳

适用场景

  • 📱 移动端语音识别应用
  • 🖥️ 桌面应用集成
  • 🔌 服务器端批量处理
  • 🤖 嵌入式设备部署
  • 🎮 游戏本地化
  • 📺 视频字幕自动生成

下载

可以编译亦可以下载编译好的版本,这里还是用 GitHub 编译好的版本吧。

  1. 下载:
    curl -LO https://github.com/ggml-org/whisper.cpp/releases/download/v1.9.1/whisper-bin-ubuntu-x64.tar.gz
    
  2. 解压:
    tar -zxvf whisper-bin-ubuntu-x64.tar.gz
    
  3. 运行:
    ./whisper-server -m models/ggml-base.bin --host 0.0.0.0 --language zh
    

模型选择

Model Disk SHA
tiny 75 MiB bd577a113a864445d4c299885e0cb97d4ba92b5f
tiny-q5_1 31 MiB 2827a03e495b1ed3048ef28a6a4620537db4ee51
tiny-q8_0 42 MiB 19e8118f6652a650569f5a949d962154e01571d9
tiny.en 75 MiB c78c86eb1a8faa21b369bcd33207cc90d64ae9df
tiny.en-q5_1 31 MiB 3fb92ec865cbbc769f08137f22470d6b66e071b6
tiny.en-q8_0 42 MiB 802d6668e7d411123e672abe4cb6c18f12306abb
base 142 MiB 465707469ff3a37a2b9b8d8f89f2f99de7299dac
base-q5_1 57 MiB a3733eda680ef76256db5fc5dd9de8629e62c5e7
base-q8_0 78 MiB 7bb89bb49ed6955013b166f1b6a6c04584a20fbe
base.en 142 MiB 137c40403d78fd54d454da0f9bd998f78703390c
base.en-q5_1 57 MiB d26d7ce5a1b6e57bea5d0431b9c20ae49423c94a
base.en-q8_0 78 MiB bb1574182e9b924452bf0cd1510ac034d323e948
small 466 MiB 55356645c2b361a969dfd0ef2c5a50d530afd8d5
small-q5_1 181 MiB 6fe57ddcfdd1c6b07cdcc73aaf620810ce5fc771
small-q8_0 252 MiB bcad8a2083f4e53d648d586b7dbc0cd673d8afad
small.en 466 MiB db8a495a91d927739e50b3fc1cc4c6b8f6c2d022
small.en-q5_1 181 MiB 20f54878d608f94e4a8ee3ae56016571d47cba34
small.en-q8_0 252 MiB 9d75ff4ccfa0a8217870d7405cf8cef0a5579852
small.en-tdrz 465 MiB b6c6e7e89af1a35c08e6de56b66ca6a02a2fdfa1
medium 1.5 GiB fd9727b6e1217c2f614f9b698455c4ffd82463b4
medium-q5_0 514 MiB 7718d4c1ec62ca96998f058114db98236937490e
medium-q8_0 785 MiB e66645948aff4bebbec71b3485c576f3d63af5d6
medium.en 1.5 GiB 8c30f0e44ce9560643ebd10bbe50cd20eafd3723
medium.en-q5_0 514 MiB bb3b5281bddd61605d6fc76bc5b92d8f20284c3b
medium.en-q8_0 785 MiB b1cf48c12c807e14881f634fb7b6c6ca867f6b38
large-v1 2.9 GiB b1caaf735c4cc1429223d5a74f0f4d0b9b59a299
large-v2 2.9 GiB 0f4c8e34f21cf1a914c59d8b3ce882345ad349d6
large-v2-q5_0 1.1 GiB 00e39f2196344e901b3a2bd5814807a769bd1630
large-v2-q8_0 1.5 GiB da97d6ca8f8ffbeeb5fd147f79010eeea194ba38
large-v3 2.9 GiB ad82bf6a9043ceed055076d0fd39f5f186ff8062
large-v3-q5_0 1.1 GiB e6e2ed78495d403bef4b7cff42ef4aaadcfea8de
large-v3-turbo 1.5 GiB 4af2b29d7ec73d781377bfd1758ca957a807e941
large-v3-turbo-q5_0 547 MiB e050f7970618a659205450ad97eb95a18d69c9ee
large-v3-turbo-q8_0 834 MiB 01bf15bedffe9f39d65c1b6ff9b687ea91f59e0e

使用

这一次也是以Web的方式启动的,这样一来就可以对外提供API接口了,当然对于本地运行的可以使用whisper-cli以命令行的方式运行。其中也可以编译WASM后用浏览器的方式来运行。

    curl 127.0.0.1:8080/inference \
    -H "Content-Type: multipart/form-data" \
    -F file="@<file-path>" \
    -F temperature="0.0" \
    -F temperature_inc="0.2" \
    -F no_speech_thold="0.6" \
    -F response_format="json"

参考

  • Port of OpenAI’s Whisper model in C/C++https://github.com/ggml-org/whisper.cpp
  • ggerganov/whisper.cpphttps://huggingface.co/ggerganov/whisper.cpp

ChiuYut

2026年07月20日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!