TUESDAY, SEPTEMBER 1, 2026
HifzAI: an on-device coach for Qur'an memorization
In development — a working prototype, not a finished app.
First, some background. "Hifz" means memorizing the Qur'an, the whole book, word for word. Someone who has finished is called a hafiz. Memorizing it the first time is one thing. Keeping all of it is another. Students recite what they've memorized back to a teacher or parent on a set schedule so mistakes get caught: a wrong word, words in the wrong order, or a wrong harakat, which is the vowel mark that changes how an Arabic word is pronounced.
The problem is that a teacher or parent isn't always free to sit and listen. HifzAI is an iPhone app a student can use for that on their own between lessons. You recite, and the app follows along word by word and colors each one as you go: green when it heard the word correctly, red when it thinks you skipped a word, said the wrong one, or got the harakat wrong. It doesn't replace a teacher. The feedback isn't accurate enough for that yet, and it's meant for practice between lessons, not something to lean on.
Apps like Tarteel already do a version of this, but they send your recitation to a cloud service. I wanted the audio to never leave the phone, so all the speech recognition runs on the device: a FastConformer model trained on Qur'anic Arabic, converted to Core ML so it runs on Apple's Neural Engine. It doesn't need an account, a subscription, or a paid API for the speech part.
The app records from the mic with AVFoundation, converts the audio into the format the model expects, and feeds it in small streaming chunks so the colors update while you're still reciting. The model outputs Arabic text with the vowel marks included, and the app lines that up against the expected ayah.
Some of it has been hard. Getting a speech model to run on a phone with little enough delay that the feedback feels immediate took a while. So did keeping the Arabic vowel marks through the whole process instead of dropping them somewhere. The trickiest part is telling a genuinely wrong word apart from a correct word said with the wrong vowel, without marking good recitation as a mistake. It also has to handle different voices, accents, microphones, and reciting speeds. The first version was a web app wrapped in Capacitor, but the recitation screen kept freezing under WebKit, so I rebuilt that part natively in Swift and UIKit.
Right now it works for a couple of short surahs, Al-Fātiḥah and Al-Ikhlāṣ, which is enough to show the whole thing works. The word-following and the green and red marking are solid. The harakat and pronunciation checks are in there but experimental, and I don't trust them yet. It needs a lot more testing with different reciters, accents, background noise, and actual iPhones before I would. After that I want to add the rest of the 114 surahs, cut the delay further, make the vowel and tajwīd checks more reliable, and build the planning side: scheduling revision, telling a student what to go over, and tracking the words they keep missing.



