Ask HN: How to transcribe 1000s of handwritten notes
I have 10 years’ worth of journals.
My handwriting is not great!
None of the off the shelf solutions come even close to recognizing my handwriting.
Can you think of anything better than just opening every single file and manually transcribing it?
I have been thinking about training a model to first divide the images into lines of text. Then, it will be easier to transcribe, and automatically those transcriptions will be associated with areas of the image, in case I figure out a good handwriting model.
145 comments
[ 2.9 ms ] story [ 190 ms ] threadIf a note's a minute, 1000 notes are around 16 hours of reading. Scale time needed depending on if it takes less or more than a minute to read. Add a note reference to the start of each recording, like a zettelkasten, so the scanned file, recording and text cross-reference.
If assessing other solutions, that's at least an upper bound on the cost of any other solution.
https://zapier.com/blog/best-text-dictation-software/#window...
https://otter.ai/
(Haven't actually tried Otter, but it gets a LOT of good reviews.)
Any techie will desperately try to come up with a tech solution to this problem.
A few months of development later, you might have something that yields trustworthy output.
But 16 hours? No tech solution will be done faster than that.
Don't build a factory for a one-off.
True
> Don't build a factory for a one-off.
One thing on my wishlist is that I end up with a way to instantly transcribe my notes.
Many of the implementations are clunky in my opinion, but this exists as a feature in many note taking tablet apps.
If you are willing to use special paper, there is existing Neo Smartpen ( https://shop.neosmartpen.com/ )
Both will force use to us D1 ballpoint pen cartridges, so no suggestions in you must write with favorite fountain pen, or are a Hi-Tec-C only pen lifestyle.
Adobe also has the whole scan thing, and apple can — in some cases — correctly transcribe characters from images.
https://github.com/tesseract-ocr/tesseract
I really doubt it can handle handwriting
Eventually, they’ll learn and speed will go up, but with this amount of work, work will be finished before they make up for the learning curve.
But overall, if I were suggest an ideal process: 1) transcribe notes w/ Whisper, 2) play back the media in VLC with the transcripts and correct the errors. T = 16 hours of proofing/correction + ~8 hours of headless transcription of *.wav before hand.
I’d be tempted to at least try breaking down the notes into one line long images (about a sentence) each and give it ago with Gemini. I haven’t tested their ocr, but even if it has errors, I bet you could just ask Gemini again to best fix the sentence.
Maybe other people can use the software, so it's not a one-off?
Documented here: https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33....
I can recommend https://www.videototextai.com/ for transcribing huge amounts of audio. (Disclaimer, I am the founder of VideoToTextAI)
And, doh, took a minute, and realized I'm a dunce.* And now there's at least 3 I can think of off the top of my head, not to mention local.
Training a handwriting recognition AI is universally accessible. What a time to be alive.
* If you're dense like me: they're not saying "any AI" as "any handwriting recognition machine learning model you build from that dataset". They're saying as AI as any multimodal LLM, it'll do in context learning on what you upload.
note: I have no relation to MacWhisper, just a happy customer.
* after STT, there is objectively less info in the storage format
* OP cannot take advantage of rapidly advancing OCR tech on the storage
* inevitably OP might end up saving the originals “just in case”- rendering this entire process useless
In the days before good software transcription I saved a ton of time I grad school by splitting up interviews and using mechanical Turk or up work ( can’t remember which one, to transcribe 1 minute snippets, and then took another pass)
If you're into dreaming up cool solutions, you could try using smart pens or tablets to write stuff and then teach a model to recognize your handwriting. But for now, it's just a dream.
I’m interested in these journals for autobiographical / psychiatric reasons. Therefore, indeed, the more recent information is more valuable, but not with such a steep drop-off.
The oldest 10% might contain 5% of the value.
For knowledge to be reusable, it needs to be actively maintained, curated, summarised, integrated. It takes work so one shouldn't bother at all if one doesn't expect to want to refer to it later.
greener pastures
This is something I want done eventually, and I’m smelling the flowers on the way there.
This HN comment thread is one of the flowers on the path to my OCR pure land zen state
Good luck with whatever approach you choose!
In order to get that data I’ll probably need to chop up the words in my diaries for privacy, then outsource to a human-in-the-loop labeling service.
- Google Cloud OCR
- Transkribus
- ChatGPT(4V)
- EasyOCR
- Tesseract
- MacOS text highlighting
https://yandex.cloud/en/docs/vision/pricing
https://yandex.cloud/en/docs/vision/operations/ocr/text-dete...
Not sure about their training on English content, but they made a search engine for parish registers kept in a number of local archives last year (in Russian):
https://habr.com/en/companies/yandex/articles/712510/
imho. (!)
* if you have a lot of "uniform" pages - read something like A4 -, get yourself a scanner with an automatic sheet-feeder
or throw some rainy-weekend afternoons on it & scan your notes with some decent SOHO scanner
* don't get too excessive with resolution, 400+ pixels/inch are enough for OCR ...
i always scan with 1200 and reduce the images to 600 px via simple batch-processing / for example imagemagick "convert".
* get yourself a decent OCR software, which is able to read your notes ...
i'm a big fan of abbyys "finereader", but sadly its prohibitively expensive ... ;)
idk how well FOSS OCR software a la tesseract works for hand-written notes.
* create pdfs with automatically detected text in the background for search and the scanned image of the notes.
it additionally generates XML-metadata & from there: whatever you want (web frontend ... :)
just my 0.02€
Unfortunately the half-dozen or so OCRs I’ve tried fail miserably on even my clearest pages.
Lots of good ideas in this thread, though.
Thank you!
Take my journals, and run a relatively simple word separation algorithm over them.
Shuffle up those words and pay to have them annotated.
Reconstruct the dataset from there.
If you do go for GPT-4, just be careful of this. Where other transcription services might fail, or give some implausible output which highlights that you need to check the source, ChatGPT might give a highly plausible but incorrect transcription from which you might not immediately identify that transcription has failed.
What’s funny is my son made an error in the arithmetic and ChatGPT corrected it - that was the hallucination.
Which is understandable… :’)
I like the idea of doing it by speech recognition, or of chopping it up for privacy and then outsourcing that to humans at cost.
One thing I … Imagine … would help—is having a private web app where I could pull up a document and then make a voice recording on my phone.
Maybe I’ll put this together on my plane trip.
If the original text is “I’m getting married on the 10th July”, you’ll know to check the handwritten note if it says “I’m getting married on the l@ July” but not necessarily if it says “on the 16th July”. ChatGPT seems to do the second quite often.
I found an app online (I wont even name it) which promised incredibly accurate handwriting transcription. Signed up and found it was true, but they were just sending images directly to chatGPT and returning the result and then charging a fee on top.
I started working on an open source version. It took me only a few hours and I'm sure anyone else could pull it together. used chatGPT example code to connect to API and send an image with a prompt along the lines of "please transcribe the text in this image and return only that, nothing else". even with that instruction it still sometimes prefaces with "sure! I can do that.", which I think is the AI equivalent of Homer Simpson writing "ok" in the "please leave this section blank" part of the form. Anyhoo, I had a basic job queue written, pull in images in order of file creation date and fire them off, append the text to a text file after. There was some cleanup of the file required (weird line breaks) but it saved me days of typing.
You still need a chatGPT API key for it but it does take a good bit of the work out.
At the moment I'm investigating using a free local model. LLava is just as accurate but takes longer than sending it to ChatGPT. but if you were worried about burning credits it would be the way to go.
Take scans of your journal pages, split the jpegs/pics into word fragments, display a couple of fragments to captcha clients, generate completed journal entries when the consensus gets reasonably high for each word fragment.
Not sure how captcha services start from scratch - probably ask around/check with google search.
Privacy goes out the door, but you should be able to show disjointed word fragments so no one could reconstruct enough of a single journal entry to expose your more personal info unless they were very determined. Or maybe split the scans into individual letter fragments instead?
Then monetize this for other people in the same situation...
And if anyone decides to do this, let me know!
Privacy is one of the reasons I would pay for a service like this, rather than pay a person to (try) to do it.
These journals contain a lot of psychiatric-level information about me, which is both what makes it valuable and sensitive.
That's basically what Amazon Mechanical Turk is, without the captcha bit.
Sadly, it is no longer software I would recommend:
https://news.ycombinator.com/item?id=36609641
No, because the work of manual transcription is a way of telling if transcribing them is worth doing. Or maybe pay someone to transcribe it. Spending money is also a good way to tell if something matters (assuming you have sufficient money).
Orthogonally, maybe building a system is what you really want to do (for many people that would be more enjoyable than revisiting old journal content).
Finally, starting from hand transcription is an entry point into rewriting what you wrote. Rewriting is writing and if there's publication on your roadmap, you will be rewriting anyway.
There's no easy way to write well. Good luck.
Yes, for a percent of the work. I have spent a bunch of time already digitizing my journals (including a loooong detour where I had to organize them because I didn’t exactly have them in chronological order…)
I have seen and manually transcribed enough of my journals to know I want the rest.
But it’s not worth it to do it manually at this time.
> Orthogonally, maybe building a system is what you really want to do (for many people that would be more enjoyable than revisiting old journal content).
And I do want to build a system to do this, as part of my own personal mind bike.
Thanks for your comment.
I put special stop words like highlight/return so then I can post process and ensure the markdown formatting looks good.
https://cloud.google.com/vision/docs/handwriting
I threw together a basic UI with the transcribed text in an editable area next to the image where I would edit any adjustments as it wasn't 100% perfect.
If it works then scan all the pages and run though it with a script.
Shouldn't take you more than about an hour to code ( with Chat GPT!) in Python.
Oh well.
It is designed to do exactly what you are looking for, and has been used very successfully by many others for that same purpose (I’m the founder).
It is not as cheap per page as Google Document AI, for example, but it does tend to be much more accurate for handwriting, so usually ends up cheaper when editing time is factored in.
If you find it does work well with your handwriting, please get in touch and I can try to fit the pricing to your use case.
I’m still experimenting with pricing, and agree that per page pricing makes logical sense. Still, it’s harder for me to build a sustainable business on that model.
I will probably test a few per-page or single payment options soon, though.
I expect the answer may be a combination of the two.
With this strategy you might be more successful in making a workflow out of it, and nudge people over to a monthly model. Just don't make the packs so small that they can be aligned with their normal workflows, eg. Transcribing a 40 page note book. I would advise to do some statistics to see how many pages people typically scan at the same-ish time.
Also: it is considered good practice to indicate that you are affiliated when promoting a product
Thanks for the feedback and great suggestions. It's something I will try to implement in the coming days.
p.s. I tried to make my affiliation clear - I wrote "I’m the founder" in the original comment above :)
I don’t see a way to fine tune on here, though. Is that right or am I missing it?
There's no way to fine tune at present, but it does pretty well with all but the scrawliest of handwriting out of the box.
btw I wrote to the email in your profile, not sure if you got it.
update: I tired it and it works to some degree and a lot better than chatgpt.