Transcribe: Arabic & Darija Audio, Video, and Call Transcription Suite
A web and Android transcription suite built on FastAPI and chunked Gemini audio pipelines that handles hour-long meetings, WhatsApp voice notes, and code-switched Moroccan Darija recordings.
FastAPIPythonAndroidGemini STT

Context
Generic speech-to-text services mangle Moroccan Darija mixed with French and English technical terms, and often time out or truncate recordings that run past a few minutes.
Scope I disclose publicly
- Chunked FFmpeg audio normalization and segmentation pipeline so hour-long meetings and phone recordings process reliably without hitting token or payload limits.
- Dialect-aware prompting that preserves Moroccan Darija phrasing and embedded French/English vocabulary instead of hallucinating stiff translations.
- A clean web studio at mbardouni.dev/transcribe paired with a native Kotlin Android companion app for background recording and upload.
Decisions and trade-offs
- Segmenting and normalizing audio server-side with FFmpeg so the API handles arbitrary phone formats (.ogg, .m4a, .aac, .mp4) consistently.
- Preserving code-switched French/Arabic terms verbatim rather than forcing monolingual output.
- The trade-off: batch chunk processing prioritizes accuracy on long, noisy recordings over instant word-by-word streaming captions.
The live web application is publicly accessible at mbardouni.dev/transcribe.
Check the public sourceDisclosure: No user audio recordings or transcripts are published.
