Sonia is a local, Linux-first voice assistant that combines an LLM with streaming STT and TTS to run entirely on a personal machine without a dedicated GPU and in under ~15 GB of RAM. It supports true full‑duplex audio (mic stays open while speaking), responsive barge‑in, bilingual mirroring (Italian/English), persistent chat with rewind, and a task banner for timers/watches/commands. Function‑calling tools are available (datetime, timers, notes, shell, skills) but are gated by a tool‑gate that rechecks each call per round and a CMD_MODE setting to limit risky shell use; skills are externally managed and activated per turn. Speech stack components include audio.cpp servers for streaming ASR (Voxtral Mini) and TTS (Pocket TTS), an in‑process Silero VAD, and a Smart Turn classifier. The primary LLM leg is an external OpenAI‑compatible llama‑server (Qwen3.5/4B style models served externally) with an optional experimental pi CLI backend.
The runtime is a TypeScript harness running a 32 ms frame loop and coordinating audio.cpp servers, turn decision, tool gating and LLM calls. Installation requires bun, an external llama‑server on :8080, and a one‑time local build of audio.cpp (CMake/Ninja + Vulkan SDK) to avoid AVX‑512 binary crashes; a CPU backend is available if Vulkan/iGPU isn’t present. Speech models (~3.3 GiB) are downloaded separately; the repo never fetches the LLM itself. Startup steps include bun install, copying .env, compiling audio.cpp, models-download, starting your llama‑server unit, then bun run start to launch the harness and UI.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.