|
|
@@ -338,7 +338,7 @@ uv run stt-daemon clear --yes
|
|
|
```
|
|
|
|
|
|
This unloads all tracked modules and removes the state file. If
|
|
|
-`~/.local/state/stt-daemon/audio.json` is already gone (reboot, manual
|
|
|
+`audio/audio.json` is already gone (reboot, manual
|
|
|
delete, crash), `clear --yes` still finds orphaned modules by name
|
|
|
(`VirtualMicSink`/`VirtualMic` via `pactl list short modules`) and unloads
|
|
|
them in reverse order (loopbacks → remap-source → null-sink), so the
|
|
|
@@ -362,10 +362,9 @@ The supervisor manages their lifetimes: if any child exits or Ctrl+C is pressed,
|
|
|
remaining children are cleanly shut down. Without `--with-tui`, you can still run
|
|
|
a separate `uv run stt-tui` in another terminal to view and control the assistant.
|
|
|
|
|
|
-With `--with-tui`, the daemon and assistant log to
|
|
|
-`~/.local/state/stt-daemon/up.log` (or `$XDG_STATE_HOME/stt-daemon/up.log`) so their
|
|
|
-output cannot corrupt the screen, while the TUI keeps the terminal. Without `--with-tui`,
|
|
|
-all output goes to the terminal.
|
|
|
+With `--with-tui`, the daemon and assistant output is discarded so it cannot corrupt
|
|
|
+the screen, while the TUI keeps the terminal. Without `--with-tui`, all output goes to
|
|
|
+the terminal. The supervisor writes nothing to disk.
|
|
|
|
|
|
Like all subcommands, `up` also accepts `--config`, `--device`, `--backend`,
|
|
|
`--model`, `--language`, and `-v` (verbose) flags.
|
|
|
@@ -486,7 +485,7 @@ uv run stt-daemon up --with-tui
|
|
|
|
|
|
This starts daemon, assistant, and TUI as child processes under a supervisor.
|
|
|
When you quit the TUI, everything stops cleanly. Daemon and assistant output is
|
|
|
-logged to `~/.local/state/stt-daemon/up.log`.
|
|
|
+discarded while the TUI owns the screen; nothing is written to disk.
|
|
|
|
|
|
#### Traditional: three terminals
|
|
|
|
|
|
@@ -590,7 +589,7 @@ The daemon uses PulseAudio's module system to create a virtual microphone from m
|
|
|
|
|
|
When you run `uv run stt-daemon setup`, the daemon:
|
|
|
- Creates all modules and records their numeric IDs
|
|
|
-- Saves the state to `~/.local/state/stt-daemon/audio.json` (or `$STT_DAEMON_STATE`)
|
|
|
+- Saves the state to `audio/audio.json` (or `$STT_DAEMON_STATE`)
|
|
|
- Allows `run` to re-provision if the sink is missing (e.g., after reboot)
|
|
|
- Allows `clear` to unload the modules it created — and falls back to
|
|
|
name-based discovery (`sink_name`/`remap_source_name` in
|
|
|
@@ -791,7 +790,7 @@ src/stt_daemon/
|
|
|
├── audio.py - Audio capture (parec, sounddevice)
|
|
|
├── pulse.py - PulseAudio/pactl wrapper (devices, modules, sink checks)
|
|
|
├── provisioner.py - Virtual sink + loopback lifecycle (setup/ensure/teardown)
|
|
|
-├── state.py - Provisioning state file (~/.local/state/stt-daemon/audio.json)
|
|
|
+├── state.py - Provisioning state file (audio/audio.json)
|
|
|
├── picker.py - Interactive device picker (questionary / numbered menu)
|
|
|
├── segmenter.py - VAD + pre-roll buffer + utterance segmentation (core)
|
|
|
├── transcriber.py - Faster-Whisper wrapper
|