A Russian voice assistant that actually runs offline
Irene is a Python-based voice assistant built for Russian speakers who don't want to phone home to Silicon Valley every time they set a timer.

What it does
Irene listens for her name, then executes commands through a plugin system. Out of the box she handles basics like timers, coin flips, and dice rolls using offline VOSK speech recognition and pyttsx3 for text-to-speech. The project is explicitly designed to work without an internet connection, though it can optionally reach out to LLMs via the author’s VseGPT.ru service or any OpenAI-compatible endpoint.
The interesting bit
The v13.0 release added a local streaming STT model (VOSK 0.56 via sherpa-onnx) that the README claims beats Whisper Large V3 on Russian benchmarks while running entirely on your CPU. That’s a genuine technical pivot — streaming recognition with lower latency than sending audio to the cloud, if the benchmark sourcing holds up.
Key highlights
- Plugin architecture separates “classic” rule-based skills from newer “AI” skills that use LLM tool-calling to parse free-form speech
- Windows installer repo bundles Python and Git for zero-dependency setup; Docker images exist including ARM builds
- Web-based settings manager built on Gradio since v9.0
- Optional cloud LLM integration through author’s VseGPT.ru service (ChatGPT, Claude 3, Perplexity Online) with per-call pricing in rubles
- Supports local LLM alternatives via LMStudio or Ollama for the AI plugin path
Caveats
- The new v13.0 streaming recognizer is beta: single local microphone only, no network client support yet
- AI plugins are explicitly labeled beta with sparse documentation; the README admits “пока это все для энтузиастов” (this is all for enthusiasts for now)
- Python version support is fuzzy — claims 3.5+ but recommends 3.7-3.11, with dependency files that may drift
Verdict
Worth a look if you need a Russian-speaking voice stack that doesn’t depend on Google/Amazon infrastructure and you’re comfortable trading polish for privacy. Skip it if you want a polished consumer experience or aren’t ready to debug Python environment issues.