What is Sonia?
Sonia is a locally run voice assistant that combines speech recognition, text-to-speech and an LLM to handle spoken requests on a personal computer. It is aimed at people who want voice interaction without a dedicated GPU, and supports English and Italian. The speech services run locally, while the LLM connects to an OpenAI-compatible endpoint that you manage separately; an optional experimental mode can use an existing pi executable instead.
Sonia Features:
Full-Duplex Conversation: The microphone stays open while Sonia speaks, and echo-aware interruption handling can pause, resume or cancel a reply based on incoming speech.
Streaming Speech Recognition: Partial transcripts appear as you talk, while voice activity detection, silence gaps and a turn classifier help determine when your request is complete.
Language Mirroring: Sonia mirrors English or Italian spoken per turn, with a setting to localize the interface, spoken sentences and tool results.
Function-Calling Tools: Available tools cover dates and times, timers, watches, notes, skills and shell commands, with a tool gate that checks calls against the request and configurable handling for risky shell actions.
External Skills: You can point Sonia to an existing directory of SKILL.md packages and activate skills from the interface settings.
Task Banner: A banner shows pending timers, running commands and active watches, and lets you stop an individual task; watches repeat read-only commands at intervals of at least five seconds.
Chat Controls: Conversation history can persist across restarts, and rewind removes turns after a selected line while leaving that line and pending tasks in place.
Sonia Benefits:
Lower Hardware Needs: Running without a dedicated GPU makes voice assistance possible on a broader range of local computers.
More Natural Turns: Being able to interrupt a spoken answer lets you correct course without waiting for the assistant to finish.
Fewer Accidental Actions: Checking tool calls against your words and setting how risky shell commands are handled adds control before actions run.
Less Repeated Setup: Saved conversations and existing skill packages let you return to prior context and reuse skills you already maintain.
Easier Task Tracking: Seeing active timers, commands and watches together makes it easier to keep track of background tasks and stop the one you no longer need.
Use Cases:
Spoken Desktop Requests: Ask questions aloud while working at a computer, then interrupt a response to clarify or change the request.
Timers and Watches: Set a timer or recurring read-only command watch by voice, then check its status in the task banner.
Personal Notes: Use the notes tool during a spoken session to capture information for later reference.
Bilingual Interaction: Switch between English and Italian requests and have the assistant mirror the language for each turn.
Existing Skill Workflows: Use skill packages already stored in a pi, opencode or other harness directory without moving them into Sonia.

