World-class Quran speech recognition with Tarteel-style mistake detection, Iqra/memorization mode, and multilingual translations.
Languages: Arabic · English · Somali · Amharic · Swahili
Author: Abdirahman Ahmed · Offered as sadaqa jariyah
- Features
- Build with Iqra AI
- Quick Start
- Project Structure
- Tabs
- Languages
- Data Sources
- Requirements
- Contributing
- Images
- Acknowledgements
- License
- ASR — Tarteel whisper-base-ar-quran (fine-tuned for Quranic Arabic)
- Verse matching & mistake detection — Green (correct), red (missed/incorrect), yellow (extra)
- Iqra mode — Pick Surah:Ayah, recite, compare with canonical text and see mistakes
- Translations — Arabic, English, Somali, Amharic, Swahili via Quran Enc
- Letter practice — Hijaiyah letter classification
- Export — TXT, JSON, SRT via CLI
After cloning, use the modules to build your own apps:
| Build | Use |
|---|---|
| Quran memorization app | Import asr_engine, matcher, quran_data → transcribe recitation, match verses, show mistakes. |
| Mobile / web app backend | Run app.py or wrap transcribe() + match_and_analyze() in your API. |
| Letter learning app | Use hijaiyah classifier from app.py for kids/learners. |
Tip
On first run, Arabic XML and ASR models download automatically. Translations require internet.
git clone https://github.com/AbdirahmanNomad/IqraAI.git
cd IqraAIpython3 -m venv venv
source venv/bin/activate # Mac/Linux
# OR on Windows: venv\Scripts\activate
pip install -r requirements.txtpython app.pyOpen http://127.0.0.1:7860 in your browser.
python transcribe.py path/to/audio.wav --match --export jsonNote
First run downloads ~500MB of models — expect a short wait.
├── app.py # Gradio web app (entry point)
├── transcribe.py # CLI for transcription & export
├── config.py # Models, URLs, translation keys
├── asr_engine.py # Whisper pipeline, audio preprocessing
├── matcher.py # Verse matching, mistake detection
├── quran_data.py # Tanzil Arabic XML + Quran Enc API
├── data/ # Arabic Quran XML (auto-downloaded)
├── requirements.txt
├── README.md
└── LICENSE
| Tab | Description |
|---|---|
| Transcribe | Record or upload, get transcription + verse match |
| Iqra Mode | Select Surah:Ayah, see canonical verse (RTL), record recitation, compare |
| Letter Practice | Say one hijaiyah letter, get top-3 predictions |
| Language | Code | Source |
|---|---|---|
| Arabic | ar |
Tanzil |
| English | en |
Quran Enc (Rwwad) |
| Somali | somali |
Quran Enc |
| Amharic | amharic |
Quran Enc |
| Swahili | swahili |
Quran Enc |
More languages will be added in the future.
| Source | Data |
|---|---|
| Tanzil | ceefour/qurandatabase — Arabic Quran (text from Tanzil.info, CC-BY-ND-3.0) |
| Quran Enc | Quran Enc API — English (Rwwad), Somali, Amharic, Swahili |
- Python 3.10+
- Mac M3: Metal (MPS) acceleration supported; falls back to CPU
Note
First run: Arabic XML and ASR models download automatically. Translations require internet (Quran Enc API).
Contributions are welcome. See CONTRIBUTING.md for guidelines.
For logos or screenshots in this repo: use PNG or JPG. Logo/banner: 1280×640 or 1200×630 px. Inline images: max 800px width, under 1MB. GitHub supports up to 10MB per file.
Thank you to the projects and APIs that make Iqra AI possible:
- Tanzil & ceefour/qurandatabase — Arabic Quran text
- Quran Enc — Translations (English, Somali, Amharic, Swahili)
- Tarteel — Quran ASR model (whisper-base-ar-quran)
- ojisetyawan — Hijaiyah letter classification model
- Hugging Face — Transformers & model hosting
- Gradio — Web UI framework
Open source. See LICENSE for details.
Abdirahman Ahmed · abdirahman.net