{"id":23777,"date":"2021-06-11T16:57:43","date_gmt":"2021-06-11T23:57:43","guid":{"rendered":"https:\/\/www.podfeet.com\/blog\/?p=23777"},"modified":"2021-06-13T17:41:37","modified_gmt":"2021-06-14T00:41:37","slug":"textsniper-ocr","status":"publish","type":"post","link":"https:\/\/www.podfeet.com\/blog\/2021\/06\/textsniper-ocr\/","title":{"rendered":"On-Device OCR with TextSniper for macOS"},"content":{"rendered":"<p><a href=\"https:\/\/apps.apple.com\/us\/app\/textsniper-ocr-simplified\/id1528890965?mt=12\" target=\"_blank\" rel=\"noopener\"><\/p>\n<figure style=\"float: right; margin-left: 5px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/06\/TextSniper-in-the-Mac-App-Store.png\" alt=\"TextSniper in the Mac App Store\" title=\"#title#\" width=\"450 \" height=\"182\"><figcaption style=\"text-align:center\">TextSniper in the Mac App Store<\/figcaption><\/figure>\n<p><\/a>During Apple\u2019s WWDC keynote, they showed off some amazing new text recognition features coming to the Mac and iOS. You\u2019ll be able to select text right out of an image.  They even demonstrated pointing an iPhone\u2019s camera at a whiteboard and using a finger to drag across the hand-written text and have it actually select it and copy it as text. It was, as I said on Shelly Brisbin\u2019s Parallel podcast, the Simone Biles of text recognition.<\/p>\n<p>I\u2019ve got a Mac app tip for you that isn\u2019t quite as cool as what\u2019s coming in the next OS updates for Apple fans, but you can have it now, and you don\u2019t need a brand new Mac to use it.<\/p>\n<p>The app is called <a href=\"https:\/\/apps.apple.com\/us\/app\/textsniper-ocr-simplified\/id1528890965?mt=12\" target=\"_blank\" rel=\"noopener\">TextSniper, and it\u2019s $9.99 in the Mac App Store<\/a> or available <a href=\"https:\/\/setapp.com\/apps\/textsniper\" target=\"_blank\" rel=\"noopener\">through Setapp<\/a>. You can also buy it directly from the developer\u2019s website for $6.99 at <a href=\"http:\/\/textsniper.app\" rel=\"noopener\" target=\"_blank\">textsniper.app<\/a>. The main problem that TextSniper sets out to solve is to allow you to copy text that isn\u2019t really text, but actually a graphical representation of text. One of the main places I&#8217;m aggravated by non-text text is in the App Store. I\u2019m often reviewing an app and want to use the description the developer so carefully crafted, and yet it\u2019s not real text so I can\u2019t copy it.<\/p>\n<p>Think about this use case, you get a PDF from someone but it hasn\u2019t been OCRd (had optical character recognition applied to it), with TextSniper you can convert it to text.<\/p>\n<figure style=\"float: right; margin-left: 5px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/06\/TextSniper-Menu-Options.png\" alt=\"TextSniper Menu Options\" title=\"#title#\" width=\"259 \" height=\"285\"><figcaption style=\"text-align:center\">TextSniper Menu Options<\/figcaption><\/figure>\n<p>TextSniper is a menu bar app with a very simplistic interface.  Before digging into all of the options, let me explain how easily it works. In the menu bar app, select capture text, and your cursor changes to cross hairs just as though you\u2019re starting a screenshot.<\/p>\n<p>Click and drag across the area with the text you want to capture, and you\u2019ll hear a playful beepboop sound, and you\u2019ll very briefly see a happy thumbs up on screen that says \u201cCopied to Clipboard\u201d. If you\u2019re a cranky pants with no joy in your heart, both the playful beepboop and happy thumbs up can be disabled from TextSniper\u2019s Preferences.<\/p>\n<p>As soon as you capture the text with TextSniper, you can paste it into the app of your choice.<\/p>\n<figure style=\"float: left; margin-right: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/06\/TextSniper-Preferences-General.png\" alt=\"TextSniper Preferences General\" title=\"#title#\" width=\"450 \" height=\"\"><figcaption style=\"text-align:center\">TextSniper Preferences General<\/figcaption><\/figure>\n<p>Before we go much further into what TextSniper can do, I\u2019m sure most of you are thinking, \u201cSure Allison, that sounds great, but how well does it work?\u201d  In my testing, if the text on screen is typed, it\u2019s been 100% accurate. However, in testing TextSniper on handwritten text, it\u2019s not very accurate at all.  Maybe it would save you a bit of typing, but the variations in handwriting are so vast that it really struggles at that task.<\/p>\n<p>You might have dismissed TextSniper immediately because of its inability to accurately interpret handwritten text and you might be thinking, \u201cI\u2019ll just wait till macOS 12 come out.\u201d  While it absolutely does look awesome, the optical character recognition that\u2019s coming from <a href=\"https:\/\/www.macrumors.com\/2021\/06\/09\/macos-monterey-features-for-m1-macs-only\/\" target=\"_blank\" rel=\"noopener\">Apple requires a Mac with an Apple Silicon chip to work<\/a>. Right now only the M1 Macs will be able to use this feature.<\/p>\n<p>Now that I have your interest back, let\u2019s dig deeper into what TextSniper can do.  If you\u2019re grabbing text that is in a narrow column, the text you snipe will have line breaks to keep it consistent with what you saw.  But if you really just want the text so it won\u2019t look dumb in another application, in the menu bar dropdown you can disable \u201cKeep Line Breaks\u201d.<\/p>\n<p>If you\u2019re going to be grabbing many snippets of text that you\u2019ll need to assemble later, it would be inefficient to grab the text, switch apps, paste, go back to the graphic, grab another section, and switch back.  TextSniper solves this problem with an option in the menu dropdown called \u201cAdditive Clipboard\u201d.  Simply capture repeatedly and you\u2019ll get all of the text in one paste to your text application.<\/p>\n<p>When you\u2019re done capturing multiple snippets of text, there\u2019s a menu option to Clear Clipboard History, and uncheck Additive Clipboard.  I bet that 100% of the time I use Additive Clipboard I\u2019ll forget to turn it off. It happened already once in my testing!<\/p>\n<p>I\u2019ve demonstrated the built-in ways on macOS and iOS to have your device read to you with text to speech, but TextSniper can do this with graphics containing text.  In the menu, enable Text to Speech, and not only will the text be read out loud to you, but it will also still be captured to the clipboard.<\/p>\n<p>If you\u2019re a text to speech fanatic, then you probably like to listen at insane speeds.  In General preferences for TextSniper, you can change the text to speech rate from 50 to 700 words per minute.  I can listen up to about 400 words per minute, but you do you!<\/p>\n<p>One of the annoying things about text to speech, in general, is that sometimes you get it started and realize you didn\u2019t really want to hear that much, so having a way to stop it is pretty important. There\u2019s an easy menu pick to stop text to speech in TextSniper.  The entire text you grabbed will still be in the clipboard though.<\/p>\n<p>Seeing that TextSniper can do text to speech made me wonder how accessible it might be. I\u2019m happy to report that every bit of TextSniper is accessible to VoiceOver on the Mac.  I did find a weirdness that it seemed to say the names of the Preference options twice the first time through but other than that it was grand. I\u2019m not entirely sure how as a VoiceOver user you would use the screen selection tool, but I\u2019ll leave that to the more highly trained users.<\/p>\n<figure style=\"float: right; margin-left: 5px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/06\/podfeet-url.png\" alt=\"https:\/\/podfeet.com embedded in QR Code\" title=\"#title#\" width=\"100 \" height=\"100\"><figcaption style=\"text-align:center\">https:\/\/podfeet.com<\/figcaption><\/figure>\n<p>Another slick feature of TextSniper is that it can read barcodes and QR codes. Using the menu dropdown, select Read QR\/Bar Code, and then drag across the code and you\u2019ll have copied whatever secret message was buried in the code.  I don\u2019t run into barcodes I need to read very often, but QR codes come up time to time for me.  I created a QR code that should take you to podfeet.com and tested it with TextSniper and it immediately captured the URL. Pretty cool party trick.<\/p>\n<p>As a side tip, did you know that if you point your iPhone\u2019s camera at a QR code for a URL, you\u2019ll see a popup offering to open the URL for you?<\/p>\n<p>If you start using TextSniper pretty often, you may want to add a keyboard shortcut to trigger the app. In TextSniper Preferences, there are many options to add keyboard shortcuts.  Not only can you record shortcuts to Capture Text, but you can also add them to Capture Last Selection, Capture Without Line Breaks, Capture With Line Breaks, Read QR\/Bar Code, and the ever-important feature, Stop Speaking.<\/p>\n<figure style=\"float: left; margin-right: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/06\/TextSniper-Preferences-Shortcuts.png\" alt=\"TextSniper Preferences Shortcuts\" title=\"#title#\" width=\"450 \" height=\"\"><figcaption style=\"text-align:center\">TextSniper Shortcuts Preferences<\/figcaption><\/figure>\n<p>You can imagine if you get used to using TextSniper on a regular basis, there will be times you want line breaks and times you don\u2019t. There\u2019ll be times you want additive clipboard and times you won\u2019t.  There\u2019ll be times you want TextSniper to talk to you and times you want it to be silent.<\/p>\n<p>Luckily for the power users, there are toggles to enable and disable each of these features after you enable TextSniper but before you click and drag across the text.  For example, if Text to Speech is enabled by default, but you\u2019re in a library and want to be very very quiet, you can hold down command-S after you trigger TextSniper and you\u2019ll see \u201cOFF Text to Speech\u201d in a very brief popup window.  Note that this is different from stopping speaking, it means don\u2019t start in the first place.<\/p>\n<p>You can enable\/disable\/enable line breaks, additive clipboard, and text to speech right before you start the text capture.<\/p>\n<p>While I was testing the toggle shortcuts I just described, I accidentally hit the space bar after I triggered TextSniper, and the window over which my cursor was hovering turned blue, just like it does when you\u2019re doing a screen capture.  It turns out you can capture an entire window\u2019s text with TextSniper in this way.  I had no idea it could do this so it was a delightful surprise.<\/p>\n<p>The privacy-conscious amongst you might be concerned about what the developer might be doing with all this text you\u2019re capturing. Put those worries aside, TextSniper uses on-device optical character recognition to do its magic. I didn\u2019t just take developer Valerijs Boguckis\u2019s word for it, I unplugged Ethernet from my dock and turned off WiFi on my MacBook Pro, and tested it myself and it continued to work perfectly.<\/p>\n<figure style=\"float: right; margin-left: 5px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/06\/TextSniper-Preferences-Custom-Words.png\" alt=\"TextSniper Preferences Custom Words\" title=\"#title#\" width=\"450 \" height=\"\"><figcaption style=\"text-align:center\">TextSniper Preferences Custom Words<\/figcaption><\/figure>\n<p>If the text you often need to capture has domain-specific jargon, such as medical or technical terms, in preferences, you can add the words you think TextSniper will need to recognize to a Custom Words dictionary.<\/p>\n<p>TextSniper text recognition is available in English, French, Italian, German, Spanish, Portuguese, and Chinese, both simplified and traditional.  By the way, I\u2019ve gotten so used to using TextSniper to capture text for me that I tried to use it to capture that list of languages from TextSniper\u2019s preferences, but the ONE place it doesn\u2019t work is within its own preferences.  It felt so archaic to have to type that out by hand!<\/p>\n<p>The final thing to know about TextSniper is that you can remove it from the menu bar altogether. This doesn\u2019t make it run as a traditional app or show in your dock for easy access, it simply makes it invisible in the background. If you\u2019re a keyboard shortcut wizard, this might work quite well for you, but I think I\u2019ll be keeping it in my menu bar for the duration!<\/p>\n<p>When I first considered telling you about TextSniper, I figured it would take about 30 seconds to describe it, because I had no idea how in-depth this app actually was. I know $10 sounds like a lot for a small utility app, and perhaps the price is too steep for your wallet, but I\u2019ve used it about 20 times in the last week since I installed it. I may buy it outright, but for now, I\u2019ve added it to the reasons I like Setapp. I was able to test it without additional cost because I have a subscription and now I know I love TextSniper.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TextSniper in the Mac App Store During Apple\u2019s WWDC keynote, they showed off some amazing new text recognition features coming to the Mac and iOS. You\u2019ll be able to select text right out of an image. They even demonstrated pointing an iPhone\u2019s camera at a whiteboard and using a finger to drag across the hand-written [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":23771,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[147],"tags":[1104,472,473,4621,4620],"class_list":["post-23777","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-posts","tag-macos","tag-ocr","tag-optical-character-recognition","tag-text-recognition","tag-textsniper"],"jetpack_featured_media_url":"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2021\/06\/TextSniper-in-the-Mac-App-Store.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/23777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/comments?post=23777"}],"version-history":[{"count":11,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/23777\/revisions"}],"predecessor-version":[{"id":23802,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/23777\/revisions\/23802"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/media\/23771"}],"wp:attachment":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/media?parent=23777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/categories?post=23777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/tags?post=23777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}