Mac 上的文字识别

更新于 · 作者

屏幕上有些文字就是选不中。Chrome 里正在播的一帧视频、一份禁止复制的 pdf、一个不让你碰的对话框。hop 在屏幕上框出任意一块,把文字交回来——可以读、可以改、可以复制。

macOS 菜单栏中的 hop 面板:text recognition
text recognition in hop at a glance
what it istext recognition inside hop, a menu bar app for macOS
pricefree — no trial, no pro tier, no account
licenceMIT, source on GitHub
requiresmacOS 14 or later, Apple silicon or Intel
works offlineyes
data sent anywherenone
download hopfree · macOS 14+ · Apple silicon and Intel

文字识别能从屏幕上读到什么

屏幕能显示的一切。文字长在图片里、视频里,还是在一个关掉了复制的应用里,hop 都不在意——它读的是像素,不是文件。

  • 一张网络研讨会的幻灯片,或者通话里别人共享屏幕的某一帧
  • 一份连一个词都不让你选中的 pdf
  • 别人在聊天里发来的一张截图
  • 某个应用弹出的、拒绝被复制的报错
  • 一份文件、一张小票、一页书的照片
  • 你从「访达」里拖进窗口的一张图

实况文本已经能做什么,又在哪里到头

macOS 自带实况文本,而且它够得比大多数同题文章愿意承认的要远。「照片」里的一张相片、网页上的一张图、「预览」里的一页——文字就像在文稿里一样直接选。它免费,已经在你的 Mac 上,如果它覆盖得了你的情况,你什么都不用再装。

视频也在覆盖范围里,从 Ventura 起就是。在 Safari、QuickTime 播放器或「快速查看」里把片子暂停,那一帧就会被当成图片来分析:文字变成可选的。谁要还跟你说 Mac 没法从暂停的视频上复制文字,那是落后了三个大版本。

这个行为在 Apple 自己的文档里有名字:播放器视图会「在你暂停播放时尝试找出其中的物体、文字和人物」,从 macOS 13 起默认开启(英文页面): AVPlayerView.allowsVideoFrameAnalysis

它够不到的地方

边界就落在那句话里:这套分析属于 Apple 的播放器视图。自己画视频画面的软件永远拿不到它——Chrome、Firefox、VLC。压根不是图片的窗口也一样:一个对话框、安装程序里的一串许可证密钥、一个连复制按钮都没做的工具里的表格。通话里的屏幕共享,是别人的像素以视频的形式送过来,那里同样没有什么可选。

这个缺口就是这个模块存在的理由。视频系统自己处理得很好;它不肯做的是读任意一个矩形。而一旦你读的是一个矩形,像素是谁画的就不再重要了。

躺在硬盘上的扫描版 pdf 又是另一件事、另一个模块:它不在屏幕上,而且你要的是整个文件,不是眼前看得见的那一块。 转换器能把 pdf 里的文字取出来

那从图片里取文字到底需不需要这个

如果这些像素属于 Apple 认得的东西——一张相片、一页 pdf、在 Safari 或 QuickTime 里暂停的一段片子——用实况文本,这一页剩下的都可以跳过。简单的情况在像素换了人画的那一刻结束,从那之后,免费的路子就不再是「选中、复制」,而变成了「先截图、打开截图、选中复制、再把文件删掉」。

你手上是什么免费的路子用 hop
一张相片、一张小票、「预览」里的一张截图实况文本:像文字一样选中用不上,用实况文本就行
在 Safari 或 QuickTime 里暂停的片子从 Ventura 起实况文本就读得了这一帧结果一样,没有理由换
在 Chrome、Firefox 或 VLC 里暂停的片子先截图,再对着截图用实况文本框出这块区域,文字就回来了
一个选不中的报错对话框截图、打开、选中、删掉文件就地把对话框框起来
别人屏幕共享里的一张幻灯片趁它还没翻页赶紧截图它还在的时候框一下
一张表格或一段代码回来的是一长条,行得你自己重排换行原样保留
同一件事一天做四十遍桌面上四十张截图等着清一个快捷键,加一次拖放

每一次识别同时落进剪贴板历史,所以一小时前取出来的那段文字仍然在,你不必为了留住它而先粘到什么地方去。 剪贴板历史是怎么工作的

在 Mac 上怎么从图片里取出文字

在屏幕上框出一块

在屏幕上你要的那一块外面框一下——和截图是同一个动作——文字会出现在一个窗口里,而不是直接进剪贴板。那个窗口才是关键:你读一遍,把字体害它认错的那个字改掉,然后整段复制,或者只复制你真正需要的那一行。

快捷键、它读得懂哪些语言、结果落在哪里——手册那一侧,中文的: 说明书里的文字识别

或者把图片拖进来

图片本来就是个文件的时候,再去框屏幕就是绕路。从「访达」把它拖进窗口,或者用 ⌘V 粘一张进来——识别是同一套,交回文字的窗口也是同一个。

download hopfree · macOS 14+ · Apple silicon and Intel

换行留得住

大多数识别交回来的是一长条词。表格变成一锅粥,代码片段直接不能用,你修结果花的时间比重新打一遍还长。

hop 把它找到的换行保留下来。表格还是表格,代码片段还是代码片段,地址还是三行而不是一行。这件事小得不值一提,直到你第一次粘进一张十二行的表格、而且一个字都不用动。

码和文字一次读完

码是跟文字一起读出来的——没有单独的模式,也不用切到第二个应用。识别结果如果是一个网址,旁边会多一个「打开链接」的按钮。只有网址才有:扫出来的码是不可信的输入,所以电话号码、Wi-Fi 密码或者一张联系人卡片都只是纯文本,不会自己跑去做任何事。

从屏幕上读码是另一件事,有它自己的理由和自己的坑——二维码在你点进去之前,是没法用眼睛检查的。 怎么在 Mac 上扫二维码

同一个引擎,你自己也够得着

这个模块里有一样东西根本不是我们的。识别用的是 Apple 的 Vision,也就是实况文本底下那套框架,而它并没有藏在任何应用后面——十几行 Swift 就能在终端里调到它,装个 Command Line Tools 就行,不需要 Xcode。

写这一页的时候我们跑过:macOS 26.6.2,没装 Xcode。围着 VNRecognizeTextRequest 写的十五行代码读了一张测试图,按原顺序交回了三行,换行完好。同一个调用还会报出引擎接受多少种语言:三十种,什么都不用下载。

这个请求从 macOS 10.15 起就是公开 api,所以这里没有任何取巧的成分(英文页面): VNRecognizeTextRequest

所以这个模块的价值不在识别。引擎每台 Mac 上都有,免费,谁愿意写那个文件并把它收好,谁就能用。脚本答不上来的是「往哪儿瞄」:它收的是文件,而整个问题恰恰是文字在屏幕上、不在文件里。hop 做的是瞄准,不是识别。

什么都不会离开你的 Mac

识别在本地跑,用的就是那个 Vision 引擎。没有图片被上传,没有服务器看得见你的屏幕,关掉 Wi-Fi 也照样能用——这一点在这里比平时更要紧,因为人们框起来的往往是发票、合同和别人的幻灯片。

hop 没有账号、没有画像、不收集任何使用数据。它唯一会发出去的,是检查更新时报上自己的版本号。

框一块区域意味着要读取框里的内容,所以 macOS 第一次会问你要权限。并不是每个跟屏幕打交道的工具都需要:取色走的是系统放大镜,它只交回一个像素,什么权限都不用。 取色器,以及它为什么什么都不问

frequently asked questions

macOS 自己能从图片里提取文字吗?
能——实况文本在「照片」「预览」「快速查看」和 Safari 里都能做,从 Ventura 起,在 Apple 自家播放器里暂停的视频上也能做。它止步于像素是别人画的地方:Chrome、Firefox、VLC,或者一个压根不是图片的应用窗口。
这和实况文本有什么不一样?
实况文本作用在系统认定为图片或正在播放的媒体上。hop 框的是屏幕上任意一个矩形,所以底下是什么——Chrome 里的视频、一个对话框、一次屏幕共享——都不再重要。
没有网络也能用吗?
能。识别在你自己的 Mac 上完成,用的是 Apple 的 Vision 引擎。什么都不上传,什么都不需要联网。
它认得哪些语言?
系统引擎认得的那些——这份名单来自 macOS,不是来自我们。在 macOS 26.6.2 上它报的是三十种,覆盖主要的欧洲和亚洲文字,而且不用下载任何东西。
我能不能直接在「终端」里用 Apple 的 Vision?
可以。围着 VNRecognizeTextRequest 写的一个短 Swift 文件,只装 Command Line Tools 就能跑。不过它读的是文件——要让它对准屏幕上的一个矩形,那一部分得你自己做。
真的免费吗?
完全免费。没有试用期、没有专业版、没有什么需要解锁。hop 是开源的,文字识别模块对所有人也一样敞开。
需要录屏权限吗?
框区域需要,macOS 第一次会问。什么都不会被录下来,什么都不会被存下来——那一帧读完就丢。把文件拖进窗口则完全不需要权限。

other tools in hop

  • qr code scannerread the code where it sits on screen — no reaching for your phone.
  • keyboard lockwipe the keyboard clean without shutting the Mac down.
  • vpn switcherevery vpn your Mac knows about, one switch each.

关于作者

hop 的作者 Anton Shakirov

开发 hop

开发 hop,也编写本站的每一页。十九个工具收在一个菜单栏图标下,MIT 许可,源码公开。issue 和邮件都由他本人阅读和回复。

download hopfree · macOS 14+ · Apple silicon and Intel