doxa-maps/backend/rudder-engine
Doxa Maps bfd1b78b4e
Some checks are pending
Deploy to GitHub Pages / build (push) Waiting to run
Deploy to GitHub Pages / deploy (push) Blocked by required conditions
Rudder is thin-client by default; the robot voice is an experimental opt-in (High performance mode)
Rudder is built for a thin client: by default the whole budget goes to speech-to-text and nothing of the
robot voice runs or even loads.

- Settings → Robot voice is marked "experimental". Ticking it first shows a warning (in the page, not a
  browser dialog the desktop webview may block): it runs an extra voice engine, uses more CPU and ~150 MB
  while it speaks, and can slow voice-to-text on a smaller laptop or shared dev server. "Turn on anyway"
  switches to High performance mode; the settings show the current mode.
- Engine: POST /api/rudder/mode {robot} switches thin-client ↔ high performance, and refuses the robot when
  the machine has under ~500 MB available (/proc/meminfo) — a voice tool must never crash someone's laptop.
  /api/rudder/tts refuses in thin-client mode, so an old saved setting can't start the robot either. In
  thin-client mode Piper would yield the CPU; in high performance mode it runs at normal priority.
- The voice list loads only when the robot voice is turned on; a robot voice left on re-enters high
  performance mode on the next visit (the engine re-checks memory).
- Verified on the engine: starts thin-client; speaking refused (409); on → high-performance; speaks; off →
  thin-client; speaking refused again.
2026-09-28 15:35:51 +00:00
..
devices.go rudder-engine builds for macOS and Windows, finds its runtime per platform, and accepts the desktop webview's stream 2026-09-28 02:38:49 +00:00
go.mod Add Rudder (rudder-voice): offline streaming voice-to-text, a desktop-target plugin 2026-09-27 08:23:17 +00:00
go.sum Add Rudder (rudder-voice): offline streaming voice-to-text, a desktop-target plugin 2026-09-27 08:23:17 +00:00
main.go Rudder keeps streaming on a thin client: reconnect a broken speech stream, say when it falls behind 2026-09-28 15:31:19 +00:00
procattr_linux.go Rudder keeps streaming on a thin client: reconnect a broken speech stream, say when it falls behind 2026-09-28 15:31:19 +00:00
procattr_other.go Rudder keeps streaming on a thin client: reconnect a broken speech stream, say when it falls behind 2026-09-28 15:31:19 +00:00
setup-runtime.sh Rudder: Robot voice — speak each sentence in a synthetic voice, offline, for videos without your real voice 2026-09-28 14:30:56 +00:00
tts.go Rudder is thin-client by default; the robot voice is an experimental opt-in (High performance mode) 2026-09-28 15:35:51 +00:00