распознавание текста для Mac

обновлено · автор

часть текста на экране просто не выделяется. кадр видео, которое играет в Chrome, pdf с запретом на копирование, диалог, в котором приложение не даёт тронуть ни слова. hop обводит любой кусок экрана и отдаёт текст обратно — его видно, его можно поправить и скопировать.

панель hop в строке меню macOS: 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, в котором не выделяется ни одного слова
  • скриншот, который вам прислали в переписке
  • сообщение об ошибке от приложения, которое не даёт его скопировать
  • фотография документа, чека, книжной страницы
  • картинка, которую вы перетащили в окно из Finder

видео — случай с самым большим числом исключений, и он заслуживает отдельного разбора: какие плееры отдают текст сами, какие не отдадут никогда и что делать со вторыми. скопировать текст с видео или из закрытого документа

что Live Text уже умеет и где он кончается

Live Text встроен в macOS и достаёт дальше, чем признаёт большинство страниц на эту тему. фотография в «Фото», картинка на веб-странице, страница в «Просмотре» — текст выделяется так же, как в документе. это бесплатно, это уже на вашем Mac, и если ваш случай этим закрыт, больше ничего не нужно.

видео тоже закрыто, и ещё с Ventura. поставьте ролик на паузу в Safari, QuickTime Player или в быстром просмотре по пробелу — кадр разбирается как картинка, и текст на нём выделяется. кто до сих пор говорит, что Mac не умеет снимать текст с остановленного видео, отстал на три выпуска.

у этого поведения есть имя в документации Apple: вид плеера «пытается найти объекты, текст и людей, когда вы ставите воспроизведение на паузу», и с macOS 13 оно включено по умолчанию (страница английская): AVPlayerView.allowsVideoFrameAnalysis

куда он не дотягивается

граница следует из той же фразы: разбор принадлежит плееру Apple. программа, которая рисует видео сама, его не получает — Chrome, Firefox, VLC. не получает и окно, которое вообще не картинка: диалог, лицензионный ключ в установщике, таблица в утилите без кнопки копирования. демонстрация экрана на созвоне — это чужие пиксели, приехавшие видео, так что выделять там тоже нечего.

этот зазор и есть причина, по которой модуль существует. с видео система справляется сама, а вот произвольный прямоугольник она не прочитает. когда вы читаете прямоугольник, уже неважно, кто нарисовал пиксели.

отсканированный pdf на диске — другая работа и другой модуль: он не на экране, и нужен весь файл, а не та часть, которую видно. конвертер вытащит текст из pdf

так нужно ли это, чтобы вытащить текст из картинки

если пиксели принадлежат тому, что Apple узнаёт, — фотографии, странице pdf, ролику на паузе в Safari или QuickTime, — берите Live Text и дальше эту страницу не читайте. простой случай заканчивается в ту секунду, когда пиксели рисует кто-то другой, и бесплатный путь перестаёт быть «выделить и скопировать», а становится «снять скриншот, открыть скриншот, выделить, скопировать, убрать файл».

что у вас естьбесплатный путьс hop
фотография, чек, скриншот в «Просмотре»Live Text: выделяется как текстне нужен — берите Live Text
ролик на паузе в Safari или QuickTimeLive Text читает кадр ещё с Venturaтот же результат, менять инструмент незачем
ролик на паузе в Chrome, Firefox или VLCснять скриншот и прочитать скриншот через Live Textобвести область, текст возвращается
диалог с ошибкой, в котором ничего не выделяетсяскриншот, открыть, выделить, убрать файлобвести диалог прямо там, где он стоит
слайд в чужой демонстрации экранауспеть снять скриншот, пока не пролистнулиобвести, пока он на экране
таблица или кусок кодавозвращается одной лентой, строки собираете самипереносы строк сохраняются
та же работа сорок раз за деньсорок скриншотов, которые потом убирать с рабочего столахоткей и рамка

каждое распознавание одновременно ложится в историю буфера, поэтому текст, снятый час назад, всё ещё там, даже если вы его никуда не вставляли. как устроена история буфера

как снять текст с картинки на Mac

обведите кусок экрана

кнопка «выделить на экране» даёт системный прицел, которым вы очерчиваете нужный кусок, — жест тот же, что у скриншота. текст возвращается в окне, а не сразу в буфер, и окно здесь и есть смысл: вы читаете, правите символ, который шрифт подсунул не тот, и копируете всё целиком или только ту строку, которая вам была нужна.

хоткей, языки, которые он читает, и куда попадает результат — подробная инструкция на вашем языке: распознавание текста в инструкции

или бросьте картинку в окно

если картинка уже лежит файлом, обводить экран — крюк. перетащите её в окно из Finder или вставьте через ⌘V: читается то же самое, и окно с результатом то же.

ничего не пропадёт, если закрыть это окно слишком быстро: распознанное лежит в истории вместе со всем, что вы сегодня копировали. найти то, что копировали раньше

download hopfree · macOS 14+ · Apple silicon and Intel

переносы строк выживают

большинство распознавалок возвращает одну длинную ленту слов. таблица превращается в кашу, кусок кода — в мусор, и на починку результата уходит больше времени, чем ушло бы на то, чтобы перенабрать его руками.

hop оставляет переносы там, где их нашёл. таблица остаётся таблицей, фрагмент кода — фрагментом кода, а адрес — тремя строками вместо одной. мелочь ровно до первого раза, когда вы вставляете таблицу на двенадцать строк и не трогаете её после.

коды читаются тем же проходом

коды читаются вместе с текстом — отдельного режима нет, и переключаться во второе приложение не нужно. если в распознанном оказался веб-адрес, рядом появляется кнопка «открыть ссылку». только веб-адреса: отсканированный код — это ввод от постороннего, поэтому телефон, пароль от Wi-Fi или визитка остаются обычным текстом и никуда сами не уходят.

снять код с экрана — своя работа, со своими причинами и своими граблями: qr-код нельзя проверить глазами до того, как по нему пойдёшь. как отсканировать qr-код на Mac

движок тот же, и до него можно дотянуться самому

одна вещь в этом модуле вообще не наша. распознаёт Vision от Apple — тот самый каркас, на котором стоит Live Text, — и он ни за каким приложением не спрятан: короткий файл на Swift дотягивается до него из терминала, с одними Command Line Tools и без Xcode.

мы запустили это, пока писали страницу, на macOS 26.6.2 и без установленного Xcode. пятнадцать строк вокруг VNRecognizeTextRequest прочитали тестовую картинку и вернули её три строки в исходном порядке, с переносами. тот же вызов сообщает, сколько языков принимает движок: тридцать, и скачивать для этого ничего не надо.

запрос — открытый api, и так с macOS 10.15, так что никакого обходного пути тут нет (страница английская): VNRecognizeTextRequest

значит, ценность модуля не в распознавании. движок стоит на каждом Mac, бесплатно, и открыт любому, кто готов написать этот файл и потом где-то его держать. чего у скрипта нет, так это ответа на вопрос, куда целиться: он берёт файл, а вся задача была в том, что текст на экране и ни в каком файле не лежит. hop — это прицеливание, а не чтение.

с вашего Mac ничего не уходит

распознавание идёт на месте, на том же движке Vision. картинка никуда не загружается, ваш экран не видит ни один сервер, и всё работает с выключенным Wi-Fi — здесь это важнее обычного, потому что обводят люди счета, договоры и чужие слайды.

у hop нет ни учётных записей, ни профилей, ни телеметрии. единственное, что он отправляет, — свой номер версии, когда проверяет обновление.

чтобы обвести область, нужно разрешение прочитать то, что внутри, и macOS спросит его в первый раз. не всякому экранному инструменту это нужно: цвет берётся системной лупой, которая отдаёт один пиксель и не требует ничего. пипетка и почему она ничего не просит

frequently asked questions

умеет ли macOS сама вытаскивать текст из картинки?
да — Live Text делает это в «Фото», «Просмотре», быстром просмотре и Safari, а с Ventura и на видео, поставленном на паузу в плеерах Apple. он кончается там, где пиксели рисует кто-то другой: Chrome, Firefox, VLC или окно приложения, которое не картинка.
чем это отличается от Live Text?
Live Text работает с тем, что система опознала как картинку или как играющее видео. hop обводит любой прямоугольник экрана, поэтому становится неважно, что под ним: видео в Chrome, диалог, чужая демонстрация экрана.
работает ли без интернета?
да. распознавание идёт на вашем Mac, на движке Vision от Apple. ничего не загружается, и подключение ни для чего не нужно.
какие языки он распознаёт?
те, что знает системный движок, — список приходит от macOS, а не от нас. на macOS 26.6.2 он назвал тридцать, с основными европейскими и азиатскими письменностями, и скачивать для этого ничего не надо.
можно ли обратиться к Vision из терминала самому?
можно. короткий файл на Swift вокруг VNRecognizeTextRequest запускается с одними 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.

what people do with this

об авторе

Антон Шакиров, автор hop

создаёт hop

создаёт hop и все страницы этого сайта. девятнадцать инструментов под одной иконкой в menu bar, MIT и открытый код. на issue и письма отвечает сам.

download hopfree · macOS 14+ · Apple silicon and Intel