ComingUp ComingUp
S

SpanishDrill — macOS Spanish speaking trainer

Pop-up cards you must say aloud; offline Whisper grades you. macOS, menu bar.

Aug 16, 2026 Education & Learning
language learning macos offline pronunciation spanish

About

SpanishDrill is a finished, production-ready macOS app that makes you speak Spanish instead of tapping through flashcards.Every N minutes a card floats above every window, including other apps in full screen. You hold Space, say the phrase out loud, and a local Whisper model decides whether you got it right. The window does not go away until you do. Three steps per card: word, then phrase, then a full sentence.Everything runs on-device. No API keys, no servers, no per-user inference cost, no privacy story to explain to users.What is already built and working (v1.2.0, shipping .dmg)Speech recognition: whisper.cpp (large-v3-turbo q5_0) linked into Swift, Metal + Accelerate backends, push-to-talk capture through AVAudioEngineFuzzy matcher tuned for learners, plus a 4-layer hallucination filter (Whisper's classic "thanks for watching" phantom output is handled)Content: 48 themed decks, 720 cards, 2,160 spoken units, built around real life in Spain (NIE, empadronamiento, Hacienda, alquiler, médico, DGT, autónomo and more). Every unit has Spanish, Russian and English text plus Cyrillic and English phonetic transcriptionTwo TTS engines behind one protocol: Piper (neural, bundled) and AVSpeechSynthesizerLeitner-lite spaced repetition; failed cards come back soonerMenu-bar app (LSUIElement), interval and working-hours scheduler, auto-pause, login-item autostartBilingual UI (Russian/English), switchable at runtimeCustom app icon and a one-command .dmg build (~160 MB). No Xcode required: pure SPM plus shell scriptsswift-testing unit tests over a Foundation-only core moduleMonetization a buyer can pick up immediatelyThe obvious next step is the Mac App Store as freemium: ship the app for free with a handful of decks unlocked, and sell the full 48-deck library as a one-time in-app purchase or a subscription. The deck format is one JSON file per theme, so gating content is a configuration change rather than a rewrite. Adding Portuguese, Italian or French is a content job, not an engineering one: the recognizer is already multilingual.To be precise about scope: the current build ships as an ad-hoc-signed .dmg. App Store distribution will require an Apple Developer account, sandbox entitlements and notarization. That is normal work, but it is not done yet.Honest statusThis was built as a personal tool. It has never been launched and never been marketed: 0 users, $0 revenue, no mailing list, no App Store presence. You are buying a finished codebase, a large hand-checked content library and a working build pipeline — not traction.What the buyer getsFull Swift source (41 files, clean Core / app split)All 48 decks plus the Python transcription script that generates the phonetic fieldsBuild scripts: .app packaging, .dmg image, icon generation, test runnerBRIEF.md — a long technical spec documenting every non-obvious decision (why Swift 5 language mode, why deployment target 14.0, why resources are copied by script, what breaks and how to fix it)Brand, app icon and RU/EN marketing screenshotsFull exclusive transfer of rights30 days of handover supportRequirements: Apple Silicon Mac, macOS 14 or newer. The 547 MB Whisper model is downloaded on first launch rather than bundled, which keeps the installer small.

Comments (1)

Ethel Cremin Ethel Cremin 1 month ago

does offline whisper actually catch bad pronunciation though