Mac 上的本地 Whisper:需要什么,花多少,怎么运行
作者 Ryleigh Newman · 发布于
本地 Whisper,是指在你自己的 Mac 上运行 OpenAI 的 Whisper 语音模型,让音频在这台机器上变成文字,而不是在某个地方的服务器上。在 Mac 上,要了解的引擎是 whisper.cpp,它把 Apple 芯片当作一等公民,而真正关键的决定是模型文件:模型越大听得越准,占用的磁盘空间和内存也越多。
我会讲这些部分怎样配合,按 whisper.cpp 自己给出的数据,每种模型大小要花多少,自己运行它的命令,以及 YapToText 处在什么位置。YapToText 是我做的免费 App,它用 whisper.cpp 运行原版的 Whisper Large v3 Turbo (Q5) 文件,所以读那一部分时请把这一点考虑在内。如果你只想知道 Mac 上有没有 Whisper 的 App,Whisper Mac App 页面 回答了这个问题。
免费下载。无需账号,没有锁定的功能。需要搭载 Apple 芯片的 Mac 和 macOS 14 或更高版本。 源代码在 GitHub 上。
用其他语言阅读: English, العربية, Čeština, Dansk, Deutsch, Ελληνικά, Español, Suomi, Français, עברית, हिन्दी, Magyar, Bahasa Indonesia, Italiano, 日本語, 한국어, Norsk, Nederlands, Polski, Português, Română, Русский, Slovenčina, Svenska, ไทย, Türkçe, Українська, Tiếng Việt, 繁體中文
本页内容:12 个部分
步骤
- 从 GitHub 克隆 whisper.cpp 仓库,并在终端里打开它的文件夹。
- 用项目的 download-ggml-model.sh 脚本下载一个模型,比如 large-v3-turbo-q5_0。
- 用 CMake 编译项目,使用它的 README 里的那两条 cmake 命令。
- 把你的录音转换成 16 位的 WAV 文件,比如用 ffmpeg。
- 用你的模型文件和 WAV 文件运行 whisper-cli,在终端里阅读文字记录。
了解本地 Whisper 的三个部分
本地 Whisper 有三个部分,三个都在你的 Mac 上。模型是一个文件,引擎负责运行它,而你的音频不必离开这台机器。
- 模型。 Whisper 是 OpenAI 的语音识别模型,OpenAI 以 MIT 许可证发布了它的代码和模型权重。你只需下载一次模型文件,听的工作就由这个文件完成。
- 引擎。 whisper.cpp 是 Whisper 的纯 C 和 C++ 实现,同样采用 MIT 许可证。它的 README 把 Apple 芯片称作一等公民,通过 ARM NEON、Accelerate、Metal 和 Core ML 做了优化,并说在 Apple 芯片上,推理完全通过 Metal 在 GPU 上运行。OpenAI 自己的软件包则用 Python 运行 Whisper。
- 你的音频。 输入一段录音或你的麦克风,输出文字。只有最初下载模型文件时才需要联网。
这就是它和云服务的区别:不会上传任何内容去转写。这也意味着由你的 Mac 来干活,所以你选的模型,决定了这些活要占用多少内存和磁盘空间。

按磁盘空间和内存选择模型
whisper.cpp 公布了每个模型在磁盘上和内存里占多少,OpenAI 公布了每个模型有多少参数。Turbo 是 OpenAI 的 large-v3 的更快版本,它的 5 位文件大约只占 large 磁盘空间的五分之一。
2026年10月3日,依据 whisper.cpp 的 README 和模型列表,以及 OpenAI 的 Whisper README 核对。
| 模型 | 参数量 (OpenAI) | 磁盘上的文件 (whisper.cpp) | 内存 (whisper.cpp) |
|---|---|---|---|
| tiny | 39 M | 75 MiB | 约 273 MB |
| base | 74 M | 142 MiB | 约 388 MB |
| small | 244 M | 466 MiB | 约 852 MB |
| medium | 769 M | 1.5 GiB | 约 2.1 GB |
| large (v1, v2 或 v3) | 1550 M | 2.9 GiB | 约 3.9 GB |
| large-v3,5 位 (q5_0) | 量化的 large-v3 | 1.1 GiB | 未列出 |
| large-v3-turbo | 809 M | 1.5 GiB | 未列出 |
| large-v3-turbo,5 位 (q5_0) | 量化的 turbo | 547 MiB | 未列出 |
MiB 和 GiB 按 1,024 为一级计数,所以 whisper.cpp 列表里 547 MiB 的 turbo 文件,就是 YapToText 显示为 574 MB 的同一个文件。两个都如实的页面,就是这样把同一个文件分别写成 547 和 574,而且都没错。whisper.cpp 的内存表只涵盖最初的五种大小,没有给出 turbo 或量化文件的数字。

这两个项目里还有几点说明:
- 仅英语的模型。 tiny、base、small 和 medium 还有大小相同的 .en 文件,只能听英语。OpenAI 说,它们在英语上往往表现更好,尤其是 tiny.en 和 base.en,而到了 small.en 和 medium.en,差别就缩小了。
- 量化模型。 以 q5_0 结尾的文件是量化过的。whisper.cpp 说,量化模型需要的内存和磁盘空间更少,而且视硬件而定,处理起来可以更高效。
- Turbo。 OpenAI 称它是 large-v3 的优化版本,转写更快,准确度的下降很小,并给出大约是 large 的 8 倍的速度。这个倍数是在 A100 上测的,不是在 Mac 上,OpenAI 还说 turbo 没有为翻译训练过。
- 语言。 OpenAI 说,Whisper 的表现随语言的不同差别很大。
- OpenAI 的内存一栏。 OpenAI 的 README 列的是它的 Python 软件包所需的显存:tiny 和 base 约 1 GB,turbo 约 6 GB,large 约 10 GB。这些不是 whisper.cpp 的数字。
我给 YapToText 选了 5 位的 turbo 文件,因为在我自己的听写里,它听到的内容几乎和完整模型一模一样,内存却只要三分之一。这只是一个人的听写,不是基准测试,所以定下来之前,请用你自己的声音试两种大小。
用 whisper.cpp 自己运行 Whisper
自己运行 whisper.cpp,需要终端,以及它的 README 里的命令所假定的两个工具,Git 和 CMake。下面是 README 自己的命令,只是把模型换成了 5 位的 turbo 文件。得到的是终端里一个音频文件的文字记录,而不是输入到你各个 App 里的文字。
第 1 步:获取代码和模型
终端: 克隆 whisper.cpp,并下载 5 位的 turbo 模型。
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
sh ./models/download-ggml-model.sh large-v3-turbo-q5_0会发生什么: 项目落在 whisper.cpp 文件夹里,脚本会从 Hugging Face 把 ggml-large-v3-turbo-q5_0.bin 下载到它的 models 文件夹。想少下载一点,可以换成 base.en 或 small。
第 2 步:编译,并转写示例
终端: 编译 whisper-cli,然后在项目自带的示例录音上运行它。
cmake -B build
cmake --build build -j --config Release
./build/bin/whisper-cli -m models/ggml-large-v3-turbo-q5_0.bin -f samples/jfk.wav会发生什么: CMake 编译项目,whisper-cli 用你下载的模型转写示例,并在终端里打印出文字。
第 3 步:先转换你自己的音频
README 说,whisper-cli 目前只能处理 16 位的 WAV 文件,并给出了一条把其他格式转换过来的 ffmpeg 命令。ffmpeg 需要另外安装。
终端: 把 MP3 转成 whisper-cli 能读取的 WAV 格式。
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav会发生什么: ffmpeg 把 output.wav 写成 16 kHz、单声道、16 位的音频,然后你把它放在 -f 后面交给 whisper-cli。
或者用 OpenAI 的 Python 软件包
终端: 如果你更想用 Python,就安装 OpenAI 自己的软件包。
pip install -U openai-whisper会发生什么: pip 会安装 whisper 命令。OpenAI 的 README 说,这些代码预计可以在 Python 3.8 到 3.11 上运行,需要 ffmpeg,默认模型是 turbo。
要做实时语音,whisper.cpp 带有 whisper-stream,它每半秒对你的麦克风采样一次并持续转写。它需要 SDL2,README 称它是个简单的示例。把文字送进邮件、Slack 或你的编辑器,则是 App 要补上的部分。
不用终端,在 YapToText 里使用同一个模型
YapToText 运行的是同一个引擎、同一个文件,却没有终端窗口:App 里内置了一份用 Metal 和 Accelerate 编译的 whisper.cpp,App Store 的下载里自带 ggml-large-v3-turbo-q5_0.bin。它的 SHA-256 与 Hugging Face 上的文件一致,所以是原版模型,不是经过定制调整或重新训练的。我做这款 App,是因为我用手打字有困难,我想要的是 Whisper 把文字输入到每个 App 里,而不是打印在终端窗口里。它就是脚本下载的那个文件,变的是它周围的一切。

这款 App 在模型周围加了这些东西:
- 会归还的内存。 在 Energy 页面,Keep models in memory 决定模型在一次听写之后保持加载多久:默认是用完后 2 分钟,选项从 Only while dictating 到 Until quit。更早卸载可以节省能耗和内存,卸载之后的下一次听写要多花几秒。
- 给 macOS 留出空间。 当 macOS 内存不足时,YapToText 会立刻丢掉已加载的模型,并等五分钟再重新预热。
- 用电池时换更轻的模型。 Switch models with the power source 默认关闭,它让听写模型和整理模型各有一个接通电源时和使用电池时的选择。
- 你自己的文件。 在 AI Models 页面的 Your own models 下面,Add Model 接受任何 whisper.cpp 的 GGML .bin 文件,所以你用脚本下载的模型也能用。App 会读取文件来判断它是什么,其他的一律拒绝。
- 你的 Mac 的数字。 Energy 页面上的 This Mac 卡片显示你的芯片和内存,拿它去对照上面的表就行。
AI Models 页面上的 Dictation Model Library 还有十个 Whisper 模型,从 Tiny 到 Large v3,各自带着 App 显示的大小。AI Models 指南 列出了它们,Energy 指南 解释了内存设置。App Store 的下载大约有 2.9 GB,因为 App 的两个模型都在里面。Homebrew 版本约 12 MB,第一次听写之前需要先下载一个语音模型。
本地 Whisper 很慢或者听错时
下载更大的模型之前,先试试省事的办法。先修好麦克风和词汇,再换模型。
- 等第一次运行结束。 模型要先加载才能转写。在 YapToText 里,启动后的第一次听写要等一会儿。如果你用 Core ML 编译了 whisper.cpp,它的 README 说,在设备上第一次运行会很慢,因为 Neural Engine 服务要编译模型。
- 设置你说的语言。 YapToText 的 AI Models 页面上,Language 选择器默认是你 Mac 的系统语言,Whisper 用不了的语言会退回到自动检测。语言页面 列出了全部 29 种。
- 修好麦克风。 蓝牙麦克风是电话音质,所以 Mac 自己的麦克风听得更清楚。在 YapToText 里,请在菜单栏面板的 Input 选择器里选它。
- 教它你的词。 YapToText 的 Dictionaries 页面会用你的名字和术语预先提示 Whisper,而不只是修正它输入的文字。词典指南 介绍了做法。
- 说英语就用仅英语的模型。 如果内存紧张,而你只说英语,OpenAI 说 .en 版本往往表现更好,在 tiny 和 base 上最明显。
- 更换模型大小。 如果听错而内存允许,就换大的,如果太慢,就换小的。在 YapToText 里,AI Models 页面上的星级显示了其中的取舍,History 里的每次听写,也都显示它自己从停止到出字的时间。

本地 Whisper 改变不了的事
在本地运行 Whisper,是把活挪到了你的 Mac 上,挪动的也只有这些。本地改变的是你的声音去了哪里,而不是它被听得多准。
- 错误。 不管在哪里运行,听得准不准都由模型决定,所以它听错的名字,需要的是一个词典条目或一个更好的麦克风,而不是换个地方。
- 翻译。 OpenAI 说 turbo 没有为翻译训练过,而 YapToText 始终只让 Whisper 转写,从不让它翻译。
- 一次下载。 本地模型仍然要下载一次。whisper.cpp 的脚本从 Hugging Face 获取它,YapToText 的 App Store 版本里自带它,Homebrew 版本则从 AI Models 页面获取。
- Intel Mac。 whisper.cpp 把 Intel 和 Arm 的 Mac 都列为支持。YapToText 需要 Apple 芯片和 macOS 14 或更高版本,Intel Mac 我不作任何保证。
- 准确度的数字。 我不公布任何模型的准确度百分比。星级和你自己的 History 就是参考。
要证明某个设置确实是本地的,离线听写页面 有一个一分钟的测试:关闭 Wi-Fi,然后听写。
简短版
- 本地 Whisper。 就是你 Mac 上的一个模型文件和一个引擎,不上传任何内容。
- 模型。 5 位的 turbo 文件,在 whisper.cpp 的列表里是 547 MiB,YapToText 自带的就是它。
- 自己动手。 克隆 whisper.cpp,下载模型,用 CMake 编译,再对 16 位 WAV 文件运行 whisper-cli。
- 或者跳过终端。 YapToText 运行同一个文件,并免费输入到任何 App 里。
先根据 Mac 的内存选模型,再根据你自己的声音选。 如果这里的内容和你看到的不一样,请 在 GitHub 上提交 issue。每一条我都会看。
免费下载。无需账号,没有锁定的功能。需要搭载 Apple 芯片的 Mac 和 macOS 14 或更高版本。 源代码在 GitHub 上。
指南
更多指南(英文)
资料来源
- https://github.com/ggml-org/whisper.cpp (查阅于 2026年10月3日)
- https://github.com/ggml-org/whisper.cpp/blob/master/models/README.md (查阅于 2026年10月3日)
- https://github.com/openai/whisper (查阅于 2026年10月3日)
- https://huggingface.co/ggerganov/whisper.cpp/blob/main/ggml-large-v3-turbo-q5_0.bin (查阅于 2026年10月3日)
- https://github.com/ryleighnewman/YapToText (查阅于 2026年10月3日)
- https://apps.apple.com/us/app/yaptotext/id6786382289 (查阅于 2026年10月3日)
常见问题
怎样在 Mac 上本地运行 Whisper?
用 whisper.cpp:克隆仓库,用它的 download-ggml-model.sh 脚本下载模型,用 CMake 编译,再对 16 位 WAV 文件运行 whisper-cli。或者安装一个内置它的 App,比如 YapToText,它不用任何设置就能运行 Whisper Large v3 Turbo。
Whisper 需要多少内存?
取决于模型。whisper.cpp 列出的数字是:tiny 约 273 MB,small 约 852 MB,medium 约 2.1 GB,large 约 3.9 GB,并说量化模型需要的更少。它没有给出 turbo 的内存数字。
最好的本地 Whisper 模型是哪个?
我会从 Large v3 Turbo 开始,它的 5 位文件就是 YapToText 自带的那个,在 whisper.cpp 的列表里是 547 MiB。如果内存紧张,small 或 base 占用小得多,OpenAI 说在最小的几种大小上,仅英语的版本在英语上往往表现更好。
Whisper Large v3 Turbo 模型有多大?
在 whisper.cpp 的模型列表里是 1.5 GiB,5 位的 q5_0 文件则是 547 MiB,按十进制单位算是 574 MB。OpenAI 列出的 turbo 参数量是 8.09 亿。
本地 Whisper 需要联网吗?
只有下载一次模型时才需要。之后,whisper.cpp 和 YapToText 都不用联网就能转写,YapToText 的 App Store 版本里自带模型,连那次下载也省了。
能在 YapToText 里使用 whisper.cpp 的模型吗?
能。在 AI Models 页面的 Your own models 下面,Add Model 接受任何 whisper.cpp 的 GGML .bin 文件,App 会从文件本身判断它是什么。