Sophon 2.0 is here
Sophon Docs
Sophon Voice

Voice Surfaces

Every place you can talk to Sophon — the Voice page, a chat's voice ribbon, the Command Bridge and Sophon Mobile — plus what a paired node and the desktop app do, and the rules that differ between them.

One engine runs the three Dashboard surfaces, so listening, playback and interrupting behave the same on all of them. What differs is what each surface is for: which chat it talks on, whether it offers push-to-talk, and whether it will read an approval or a question out loud.

The matrix

SurfaceHow you startPush-to-talkHands-freeApprovals read outQuestions read outSession and agent
Voice page (/voice)Open Voice in the Dashboard navYesYes, when Conversation mode is onYes, in your browser's voiceYes, with numbered choicesA new chat session per visit unless the URL carries ?sessionId=; the default agent
Chat voice ribbonOpen the voice ribbon inside a chatYesYes, when Conversation mode is onNo — they stay on the chat's own cardsNoThe chat you have open, and that chat's agent
Command BridgeArm the voice barNoHands-free onlyYes, in your browser's voiceYes, with numbered choicesA new chat session each time you arm it; the default agent
Sophon MobileThe Voice tabYes — tap to talk, tap to stopYes, Conversation ModeYes, in your phone's voiceNo — answered on screenAgent picker on the tab
Paired nodeNot something you talk to——NoNoOperator-driven, off by default
Desktop appNo voice features of its own—————

Prompts are read out by the browser's or the phone's built-in voice, never by the text-to-speech provider you picked. If speech output is set to provider-only, or the native speech fallback is off, prompts are not read aloud at all — you still get the card, the buttons and the mic.

The Voice page

A full-height page with no header. Top to bottom: an availability banner when there is something to say, an error strip, the orb, a live transcript preview card, and the controls.

  • Each visit starts a new chat session, and talks to the default agent. There is no agent picker. Pass ?sessionId= in the URL to attach to an existing chat instead.
  • The mic behaves differently depending on what's configured. With a speech-to-text provider it is push-to-talk: click to start, click again to send. The preview card offers Send now and Cancel. With the browser recognizer there is no send step — it ends the utterance at a pause.
  • The hands-free toggle appears only when Conversation mode is turned on in Voice settings and hands-free can actually run. Your first mic press then starts a hands-free conversation.
  • Pressing the mic while Sophon is thinking or speaking interrupts first, then opens the mic.
  • The status bar reads Voice · … with one of: Starting voice session…, Reconnecting…, Listening, Thinking, Speaking, Awaiting approval, Waiting for your answer, Conversation active, Ready.
  • The ✕ control ("Exit voice mode") ends voice and returns you to /chat. Ending voice in one tab ends the shared session for every tab attached to it.

The chat voice ribbon

A single row between the chat thread and the composer, on the chat you already have open.

  • It uses server speech-to-text when a provider is active. Before 2.0 the ribbon was browser-only.
  • It never speaks approvals or questions. Prompts belonging to that chat appear on the chat's own cards, where you answer them by tapping. This is deliberate: the ribbon sits inside a thread that already shows the card.
  • It is keyed to the chat. Switching chats ends voice on the old chat and restarts it, listening, on the new one, so a reply is never spoken into the wrong conversation.
  • Its states read Listening, Thinking, Speaking, Starting, Voice stopped or Voice ready, with a one-line caption and, when something goes wrong, an error line.

The Command Bridge

The fleet view carries a hands-free voice bar at the bottom of the screen.

  • Hands-free only. There is no push-to-talk on the Bridge.
  • It listens once you arm it. Each arm starts a new chat session with the default agent; there is no agent choice.
  • It turns itself off and shows why. When nothing is left listening — the silence timeout, the inactivity limit, a microphone failure it cannot retry, or a lost connection — the bar disarms and keeps the reason on screen, instead of looking ready while nothing is listening.
  • It is offered only when hands-free can run: an active speech-to-text provider, or a browser that has speech recognition. Otherwise the button explains what is missing.
  • While an approval or question is waiting, the mic button's job changes to Answer by voice: pressing it opens the mic so you can answer out loud. A separate Stop voice ✕ appears next to it, which turns voice off without answering — the prompt stays on its chat card and its own timer keeps running.

Sophon Mobile

The Voice tab is a full-screen orb, an agent picker, a transcript and a tap-to-toggle mic.

  • Recognition uses your phone's own recognizer by default. The Sophon STT fallback, when you turn it on, records the utterance and uploads it to the Gateway for transcription after you stop speaking. Mobile cannot stream audio to the server, so there is no live server-side transcript on the phone.
  • Replies come back as provider audio when a text-to-speech provider is active, or from the device voice.
  • Conversation Mode listens again after each reply.
  • Approvals are spoken and can be answered out loud, with the same risk rule as the Dashboard, and only for that voice conversation's own chat. The hint under the card is risk-aware: at High and Critical risk it tells you to say "yes, approve".
  • Questions are not spoken on Mobile. Answer them on screen.

A paired node

A node is an output device for speech, not a way to talk to Sophon.

  • It cannot listen. There is no microphone capture on a node and no wake word.
  • It speaks through the operating system's own speech synthesiser — Windows, macOS say or Linux spd-say.
  • Out of the box it does not speak replies. The only path that makes a node speak is the Gateway's node wake route, which returns 404 until an operator sets Sophon:Voice:NodeWake:Enabled, and no shipped client calls it. Speaking commands also need the node's voice.runtime scope, which is not granted by default.
  • Admins see a Voice tab under Devices for nodes that report voice commands, plus a voice indicator in the fleet view.
  • Approvals are never spoken to a node. They stay in the chat, the Dashboard, Mobile or the channel the request came from.

Turning the node wake routes on is a deliberate act with a real surface area. Read Privacy & Data and Sophon Node permissions before you do.

The desktop app

The Electron desktop app has no voice features of its own. There is no global push-to-talk shortcut, no tray voice mode and no separate voice overlay: Ctrl/⌘+Shift+Space opens Quick Chat and Ctrl/⌘+Shift+S toggles the window.

It hosts the Dashboard, so the Dashboard's voice surfaces are present inside it. How well browser speech recognition works in that runtime is not something this release verifies; if you rely on the no-provider path, use Chrome or Edge, or configure a speech-to-text provider.

Where to go next