RobOS Voice
Speech-to-text dictation and spoken replies for the desktop, with a local HTTP API on port 19188.
RobOS Voice turns speech into text and speaks text aloud. A third job, answering short questions by voice, is only partly built. This page is the app summary. Setup, the API and the command-line client are covered in RobOS Voice.
The window
The tabs are Dictation & Context, Outgoing Voice (Natural TTS) and RobOS Desktop Assistant.
- Dictation & Context. Activate Microphone starts recording. Recognized text streams into the panel, and Save Voice Prompt stores it. A context panel shows the focused app, window title, running apps and the active workspace and branch. The default push-to-talk hotkey is
Super+V, set bypushToTalkKeyin the voice preferences. - Outgoing Voice. Choose the engine (Kokoro-82M, Edge-TTS, Piper or Speech Dispatcher), a voice, speed, pitch and volume, and preview with Speak Out Loud. “RobOS” is spoken as “Row Bose”.
- RobOS Desktop Assistant. The code can detect phrases such as “hello robos” or “row bose” followed by a question and send the question, with the active window and workspace as context, to the AI agent library. Nothing in the app passes the live speech stream to that code, so hands-free activation does not work yet. If no AI provider answers, the assistant returns a generic acknowledgement and does not answer the question. See RobOS Voice.
A floating HUD window shows speech bubbles and command results, and a commands dialog lists the spoken commands that map to RobOS apps and skills.
What it needs
| Part | Requirement |
|---|---|
| Speech-to-text | @xenova/transformers with the Xenova/whisper-tiny.en model, run on the machine. A microphone, captured with pw-record (PipeWire) or arecord (ALSA). |
| Kokoro voices | The model file ~/.local/share/kokoro/kokoro-v1.0.onnx and python3. |
| Edge-TTS voices | The edge-tts command, which calls an online Microsoft service. |
| Piper voices | A piper binary and voices in ~/.local/share/piper/voices. |
| Assistant answers | An AI provider configured for robos-lib/ai-agent: an agent CLI set as active in RobOS Agents. See AI agents and API mode. |
Files and ports
- Saved prompts:
~/.config/robos/voice-prompts.json. - HTTP API:
http://localhost:19188(change it withROBOS_VOICE_PORT). Routes include/api/status,/api/stream(server-sent events),/api/activate,/api/deactivate,/api/dictate,/api/context,/api/prompts,/api/speakand/api/assistant/chat. - Command line:
packages/voice-prompt/bin/robos-voice-prompt, and therobos-voicescript inpackages/robos-cli.
Run it
Launch RobOS Voice from the app launcher, or run npm start in packages/voice-prompt. Set ROBOS_TEST=1 to start it without microphone hardware.
Related guides
More in AI & Agent Workflows
Agent Chat A chat window with session history, a model and mode selector and tool cards; replies are currently scripted samples. Agent Sidebar A prototype 320-pixel sidebar that mocks up an agent's plan, tool feed and approve/refine buttons. Agents Manager Browse and continue sessions of Claude Code, GitHub Copilot and Codex, and configure each provider's login, models and MCP servers. AI Prompt Studio Type a task in plain English and run it through the Claude CLI or GitHub Copilot CLI, with optional skills attached as hints. Context Manager Register GitHub repositories and local folders as context sources, check which agent instruction files they contain, and build one combined context text. Desktop Agents Viewer A prototype viewer that mocks up watching several agents on their own virtual desktops. MCP Manager Lists the MCP servers registered on this machine, lets you call their tools from a form, and records which agents should have which servers. Skills Manager Catalog of command snippets and prompt templates for RobOS apps, with custom entries and installable packs from GitHub. Task Implementer Pick a GitHub or Jira task, choose a developer persona, and run the Claude Code CLI on it with streamed output. Task Planner Describe a feature or pick a template, have GitHub Copilot draft epics and tasks, edit them, and create them as issues on your task server.