Voice
Dictation, read-aloud, and live streaming voice with barge-in.
Fosnie speaks to external speech engines over the standard OpenAI audio API, so speech-to-text (STT) and text-to-speech (TTS) run inside your perimeter like everything else. There are three modes.
Modes
- Dictation – a mic button next to send transcribes your speech into the message box; you send it.
- Read-aloud – you dictate, the model answers, and the answer is read back, turn by turn.
- Live voice – real-time streaming both ways, with voice-activity detection, natural turn-taking, and barge-in (start speaking and it stops talking and listens). Built, and off by default.
Enabling it
- Dictation and read-aloud: set
features.voice = true(boot) and configure the STT/TTS endpoints on the ML service. If an engine is missing, the voice endpoints return503rather than failing silently. - Live voice: additionally set
features.voice_live = trueand configure the live-voice engine block.
The ML service needs ffmpeg on its PATH to transcode browser audio; without it only WAV/MP3/FLAC transcribe. STT and TTS are separate servers.
How it behaves
- Push-to-talk by default, no wake-word. The live, editable transcript is the product – you verify it before any action, and text is always available.
- Barge-in needs browser acoustic echo cancellation; where that's unavailable, the UI falls back to push-to-talk.
- On a batch-only box everything degrades gracefully to per-utterance STT and per-clause TTS.
Audit logs record voice metadata only – never audio or transcript content.
Was this page helpful?