12 — Simple Mode
Branch: dev/simple-pro-modes (merged). Design notes: simple_ui_plan.md.
Validation: simple_ui_validation.md.
Goal
Collapse the full Pro UI into a one-click Start All / Stop All experience without losing the underlying capability. The two modes share a single codebase and live behind a global mode toggle in the main window.
Simple Mode Panel
vocal10n.ui.widgets.simple_mode_panel.SimpleModePanel exposes:
- Source language picker.
- Target language picker.
- TTS backend selector (GPT-SoVITS or Qwen3-TTS).
- Audio output device selector.
- “Save subtitles” toggle (binds to the
output.*flags). - Start All and Stop All buttons.
- Status pills showing STT / LLM / TTS / session state at a glance.
- Compact metrics single-liner replacing Section A2.
- Tabbed text panes for source / translation in place of the Pro A1 split.
- Tooltips on every control (commit
6db6b27).
Section A is rebuilt in a Simple-specific layout when the mode is
active (commit e96bcb9).
Staged Startup
Start All walks a fixed sequence with per-stage timeouts and progress
states, so users see what is happening and failures are recoverable.
The state machine is documented in simple_ui_plan.md and implemented
in commits 0a9cc55, 5ca6555, 81cedf4, fdf978c.
stateDiagram-v2
[*] --> Idle
Idle --> LoadingSTT: Start All clicked
LoadingSTT --> LoadingLLM: STT ready
LoadingLLM --> WarmingTTS: LLM ready
WarmingTTS --> Ready: TTS warm
Ready --> Stopping: Stop All
Stopping --> Idle
LoadingSTT --> RollingBack: timeout / error
LoadingLLM --> RollingBack: timeout / error
WarmingTTS --> RollingBack: timeout / error
RollingBack --> Idle: unload loaded modules
note right of WarmingTTS
Qwen3-TTS uses a longer
warm-up budget (commit 81cedf4)
end note
If any stage fails or times out, the panel rolls back the modules that were loaded and returns to Idle with an error pill. A busy lock prevents the user from re-clicking Start during the transition.
Stop with Keep-Models-Loaded
Stop All ends the session. By default it also unloads STT/LLM/TTS to
free VRAM. A “keep models loaded” toggle (commit 5ca6555) leaves the
models resident for fast restarts during back-to-back sessions.
Simple-Mode Defaults
Some defaults differ from Pro mode to keep the experience predictable:
- TTS backend: when Qwen3-TTS is chosen, the panel forces
tts_qwen3.voice_mode = clonewith the configured reference audio (commitfdf978c). - STT and LLM are always enabled together; the manual-input shortcut paths from Pro mode are not exposed.
- File outputs follow a single “Save subtitles” toggle that flips the source/target SRT/TXT pairs together.
Validation
simple_ui_validation.md is the manual QA checklist. The current
matrix covers Start/Stop with each TTS backend, mid-run mode switches,
missing model paths, and busy-lock behaviour during transitions.