v0.3.18 · PUBLIC BETA
مفتوح المصدر
ل Lisan
Arabic-first local dictation for macOS
إملاء صوتي عربي، يعمل على جهازك — بدون إنترنت
RECORDING
AR · EN · AUTO
· AR · 0.6s اكتب للفريق إن لسان جاهز وبدون ما يخرج الصوت من الجهاز · EN · 0.8s Ship the new Arabic dictation build to the team by tomorrow.
whisper.cpp · Metal GPU · 239/239 tests · Notarized · eval WERs forthcoming from public Arabic eval
Arabic-First Public Beta Runs Locally Whisper.cpp Metal GPU 10 Dialect Packs Correction Memory Open Source
Try Beta v0.3.18 ↓ View Source →
جرّب البيتا — مفتوح المصدر برخصة MIT · ما زال يتحسن
macOS 14+ · Apple Silicon · MIT License · Public Beta
What's inside
ما في داخل لسان
ع
Arabic-First
عربي أولاً
Explicit Arabic mode (-l ar), auto-detect with opt-in two-pass preflight for short clips, and vocabulary packs for Khaleeji / Shami / MSA biasing. One language per recording — whisper.cpp does not code-switch.
Runs Locally
يعمل على جهازك
whisper.cpp with Metal GPU on Apple Silicon. Your voice never touches a server — no cloud, no API keys, no telemetry.
Press-to-Talk
اضغط وتكلّم
Hold a hotkey, speak, release. Transcript is typed directly where your cursor is — Slack, Xcode, Messages, anywhere.
10 Bundled Dialect Packs
١٠ حزم لهجات جاهزة
Khaleeji, Shami, Saudi places, Saudi government, medical Arabic, tech bilingual, MSA business, GCC brands, agency, Islamic terms. Multi-select with priority ordering — packs are fed to whisper as decoder bias, not find-and-replace.
Correction Memory
ذاكرة التصحيح
Correct a transcript once, and Lisan learns. Right-click any history entry → edit what it should have said → proposed word substitutions get saved to your personal lexicon, app-scoped or global, and bias every future dictation.
Bilingual Cleanup
تنظيف ثنائي اللغة
Arabic chunks run through a dedicated normalizer + punctuator (harakat, tatweel, alef/yeh variants, Arabic comma/question mark). English chunks use a rule-based cleanup. No LLM in the loop — fully local, rule-governed.
Two-Pass + Segmented Auto
كشف لغة دقيق ومقسّم
Auto mode adds opt-in `-dl` preflight to fix whisper's English bias on short Arabic clips. Segmented mode splits long recordings on silence and detects language per segment — the closest honest thing to phrase-level code-switch (whisper.cpp does not code-switch word-by-word).
Four Model Sizes
أربعة نماذج للاختيار
Tiny (74MB) · Base (141MB) · Small (465MB, recommended for Arabic) · Medium (1.5GB). Downloaded on demand from the in-app Model picker, size-verified, stored locally. Switch any time.
App-Specific Profiles
ملفات لكل تطبيق
Terminal / iTerm / VS Code / Claude / ChatGPT → passthrough (dictated text goes in raw). Notes / Obsidian → long-form structure. Messages / WhatsApp / Telegram → chat tone. Sensible defaults, fully overridable.
Local History, You Control
سجل محلي تتحكم به
Raw + cleaned transcripts kept in a 0600 owner-only file, excluded from iCloud/Time Machine backup. Retention window is user-configurable; tightening it prunes old entries immediately on disk. Toggle the whole thing off for session-only memory.
Press-to-Talk, Anywhere
اضغط وتكلّم — في أي تطبيق
Hold Option, speak, release. CGEvent typing for most apps, Accessibility for native fields, clipboard-paste for terminals — automatic fallback picks what actually works per bundle ID.
Zero Subscription, MIT
بدون اشتراك · رخصة MIT
No account, no usage caps, no telemetry, no opt-out because there's nothing to opt out of. Fork it, port it, modify it. The only outbound HTTP is the model download to Hugging Face when you click Download.
How it works
كيف يعمل
01 · CAPTURE
التقاط الصوت
Hold Option, speak, release. AVAudioRecorder writes a local WAV to a temp path. Nothing is buffered beyond the recording — no streaming, no cloud, no upload.
02 · TRANSCRIBE
النسخ محلياً
whisper-cli runs on Metal GPU with your chosen model (Tiny → Medium). Enabled vocab packs are concatenated in priority order and passed as --prompt. Auto mode can run a -dl preflight for short-Arabic clips, or split on silence for phrase-level code-switch.
03 · INSERT
الإدراج الذكي
Bilingual cleanup splits and normalizes Arabic + English chunks separately. Your personal lexicon (built up by correcting past transcripts) is applied. InsertionService picks CGEvent / Accessibility / clipboard-paste based on the target app's bundle ID.
Privacy · خصوصية
صوتك لا يغادر جهازك. أبداً.
Your voice never leaves your Mac. No server. No telemetry. No API key. Fully offline.