Tater Voice

Tater Voice

Built-in room-aware voice runtime for paired Tater Native satellites, local microWakeWord, secure trainer publishing, stereo pairs, intercom, synchronized playback, prebuilt firmware updates, and persistent voice statistics.

Native device runtime Bundled Settings -> Voice Voice device runtime
Why it matters

Voice that understands where it is

Every voice turn carries the speaking satellite, room, resolved Person, and trusted permissions into Tater. That same room context drives device control, music playback, follow-up listening, intercom, and reply routing.

Current voice stack

Local wake detection, room context, and synchronized sound

  • Tater Voice is built into the main Tater runtime and uses secure Add Satellite pairing for supported Tater Native hardware.
  • Voice PE, Satellite1, ReSpeaker XVF3800, S3 Box, and compatible Tater Native devices keep their saved name, room, hardware family, firmware revision, and per-device settings.
  • Wake detection runs locally on each satellite with int8 microWakeWord models. Users can choose a built-in model, the shared Tater Wake Word Catalog, or a trainer-published custom JSON package.
  • Wake Word Trainer pairing uses a short-lived one-use code and a trainer-scoped credential; publishing a model cannot grant general Tater API access.
  • STT Wake Verification can run Disabled, Observe, or Enabled. Results fail open on timeout and now persist in Redis with a visible 30-day period and manual reset controls.
  • Room arbitration prevents two satellites in the same room from answering one wake while still allowing independent conversations in different rooms.
  • Stereo Pairs have their own Voice tab. Left and right members prebuffer one source, begin from a shared timestamp, preserve calibration, and remain one reusable playback destination.
  • Persistent native media sessions support music, synchronized multi-satellite scenes, TTS overlays, ducking, drift correction, and continued playback after a temporary reply.
  • Intercom can target a room, satellite, stereo pair, or broad group while using the same session state, playback routing, and TTS choices as normal voice replies.
  • The Firmware tab downloads signed prebuilt Tater Native images for OTA or Browser USB flashing; local compiling is no longer required.
  • Browser USB recovery can erase stale safe-mode state, flash the factory image, and keep USB logs visible through the restart.
  • S3 Box displays can show environment readings, voice and tool states, camera snapshots, doorbell notices, and targeted display cards.
  • Speaker ID can resolve an enrolled voice to a Person record, while optional Emotion ID adds bounded tone context without changing the trusted speaker boundary.
  • Reply playback can stay on the listening satellite, use a preferred room player, target another announcement device, or remain display-only.
  • Satellite inventory is cached and rebuilt on connect, disconnect, or settings changes with a periodic safety refresh, so the Voice UI opens quickly.
Operator controls

Everything lives under Settings -> Voice

Tater Voice is configured through Settings -> Voice, with separate Satellites, Firmware, Stereo Pairs, Stats, and Settings tabs. Each satellite owns its local microWakeWord profile, room, playback, brightness, and supported live controls, while shared STT/TTS and SpeechBrain choices live in Settings -> Models. Prebuilt OTA and Browser USB firmware, secure trainer pairing, wake verification, intercom, persistent statistics, and live logs are managed from the same local UI.

Voice experience

How current Tater Voice works from wake to playback

The current stack centers on paired Tater Native hardware, on-device microWakeWord, trusted room and Person context, prebuilt firmware, and synchronized audio.

Add SatelliteRoomsSecure pairing

Pair and organize satellites

Add Satellite creates a short-lived pairing code, then Tater remembers the device and its room.

  • Flash a supported Tater Native image, connect to its setup network, and enter the pairing code shown in Settings -> Voice -> Satellites.
  • After pairing, give the device a useful name and room. Room assignment becomes part of every trusted voice turn and can select devices or a preferred music player automatically.
  • Saved device identity and pairing credentials persist across Tater restarts and Docker image updates when the documented runtime volume is mounted.
microWakeWordWake catalogTrainer link

Local microWakeWord and trainers

Wake detection stays on the satellite and custom words publish through a scoped trainer link.

  • Choose the active wake word from each satellite's settings popup: a built-in profile, a model from Tater-Wake-Words, or a custom trainer/GitHub JSON URL.
  • The Apple Silicon and NVIDIA trainers link with a short-lived code from Tater, then publish only their own trained package and active-word selection.
  • Sensitivity and room environment controls adjust acceptance around the model's JSON threshold, sliding window, and close-miss tuning.
ObserveEnabled30-day stats

Wake verification and persistent stats

A fast STT check can observe or reject wake-word mismatches without becoming a new point of failure.

  • Observe records the transcript, match score, result, and latency while allowing the turn. Enabled rejects clear mismatches but fails open if verification errors or misses its deadline.
  • Per-satellite checks, rejections, fail-opens, latest results, and the broader voice summary are stored in Redis and remain visible while a device is offline.
  • Statistics automatically begin a new 30-day collection period and can be reset either for Wake Verification alone or for all voice statistics.
StereoMulti-roomDucking

Stereo pairs and multi-room playback

Two satellites can become one stereo destination, and larger groups can play in sync across rooms.

  • Create a left/right pair under Voice -> Stereo Pairs. Music uses real channel routing, while speech stays centered across both members.
  • Music Core and audio scenes can target individual satellites, stereo pairs, synchronized native groups, Sonos groups, generic media players, or mixed Sonos/native groups.
  • Active music keeps its persistent session while TTS plays as a temporary overlay, ducks the group together, and restores the previous level afterward.
  • Offline members are skipped safely, incomplete stereo pairs do not start, and playhead telemetry keeps synchronized members aligned.
Prebuilt imagesOTABrowser USB

Prebuilt firmware and recovery

Update by OTA or recover over Browser USB without compiling firmware locally.

  • Tater matches the selected satellite to the correct firmware family and board revision, then compares its installed version with the signed native release manifest.
  • OTA updates run one device at a time with progress and live logs. Browser USB downloads the factory image, optionally erases flash, writes it directly, and follows the device through restart.
  • Firmware currently covers Voice PE, Satellite1, ReSpeaker XVF3800, S3 Box, and the board variants published by Tater Native Firmware.
PeopleRoom awarePreferred player

Identity, rooms, and reply routing

The latest voice event decides who spoke, where they spoke, and what access applies to that turn.

  • Speaker ID aliases can link to a master Person alongside that person's WebUI and portal identities; older history cannot replace the current speaker or inherit their admin access.
  • Device Control can use the speaking room when a request says only 'turn on the lights,' while an explicitly named room overrides the satellite room.
  • Music Core follows the same rule and can honor the room's preferred player, preferring Sonos when several compatible automatic choices are available.
  • Replies can play locally, on a preferred external device, or silently on display-only hardware while follow-up listening remains attached to the original satellite.
IntercomDisplaysLive logs

Intercom, displays, and observability

Tater Voice also carries targeted announcements, visual events, firmware status, and live diagnostics.

  • Intercom resolves device and room names before starting a targeted announcement and can preserve the normal follow-up flow afterward.
  • Display APIs publish compact environment values and transient camera, doorbell, image, voice, tool-progress, status, or alert cards to selected Tater screens.
  • Voice tabs separate Satellites, Firmware, Stereo Pairs, Stats, and Settings, with live logs and direct entity controls where supported.
  • Satellite inventory and hardware state refresh through background System Tasks so opening the page does not perform a slow full-device scan.
Built-in APIs

HTTP endpoints exposed by this runtime.

GET /api/settings/voice/runtime

Load the complete Voice settings workspace.

Returns cached satellite inventory, firmware state, stereo pairs, settings, logs, and persistent voice-stat sections for the local WebUI.

POST /api/settings/voice/runtime/action

Run a Voice UI action.

Handles pairing, room and device settings, stereo-pair changes, firmware actions, intercom controls, live logs, direct entity actions, and voice-stat resets.

GET /tater-ha/v1/voice/native/status

Inspect current voice-pipeline and speech-backend state.

Reports the effective speech backends, local model roots, runtime availability, and current native voice state.

GET /tater-ha/v1/voice/satellites

List satellite playback and voice targets.

Returns connected and saved native satellites for room-aware routing and compatible companion clients.

GET/POST /tater-ha/v1/voice/intercom/*

Discover targets and control an intercom session.

Lists available destinations, reports current state, starts a targeted spoken intercom message, or cancels an active session.

GET/POST /tater-ha/v1/display/feed

Serve compact environment and status data to Tater displays.

Returns display-ready readings, labels, online state, and clock data sourced from Tater and enabled cores.

GET/POST /tater-ha/v1/display/events

Poll or publish targeted display cards.

Carries transient text, images, snapshot references, tool progress, voice states, and alert metadata to selected displays.