dilo
An offline-first AI voice assistant that never leaves the browser
What I did
The problem
Voice assistants typically require a server round-trip for every interaction, introducing latency, privacy concerns, and dependency on network connectivity.
The solution
Built a Progressive Web App that runs Whisper.cpp via WebAssembly for speech-to-text directly in the browser. Web Workers offload transcription to background threads. Graceful degradation to Gemini API fallback. Coqui-style TTS handles speech output.
Key features
- Whisper.cpp running client-side via WebAssembly
- Web Worker-based transcription for responsive UI
- Graceful degradation to Gemini API fallback
- Coqui-style TTS synthesis (speech output)
- Progressive Web App (offline-capable)
Engineering highlights
★WebAssembly + Web Worker Architecture
Running Whisper.cpp via WebAssembly in the browser requires careful memory management and thread isolation. The Web Worker architecture keeps transcription completely off the main thread.
Engineering decisions
Whisper.cpp inference too heavy for the main thread
Offloaded all WASM transcription to dedicated Web Workers with message-passing
UI remains fully responsive during transcription.
Technology stack
Impact
Ready to build something exceptional?
Let's discuss how custom software can accelerate your business outcomes.