Skip to content

[preview]

Optional streaming ASR on a separate small model while you record. Preview text is shown in skald watch or the overlay; it is never copied or pasted.

Preview ASR runs only when preview.enabled = true and overlay.mode = "text". Selecting visualizer mode disables the preview worker to avoid unused model and inference costs.

[preview]
enabled = false
chunk_ms = 2000
step_ms = 1000
overlap_ms = 500
min_rms_energy = 0.003
ring_buffer_seconds = 30
model_path = "~/.local/share/skald/models/ggml-small.en.bin"
gpu = false
threads = 0
OptionTypeDefaultDescription
enabledbooleanfalseWhen true, run preview ASR on rolling audio during recording. Requires a valid model_path file at validate time.
chunk_msinteger2000Length of each audio window sent to preview ASR, in milliseconds. Must be positive.
step_msinteger1000How often to advance the preview window. Must be positive.
overlap_msinteger500Overlap between consecutive windows. Must be less than chunk_ms.
min_rms_energyfloat0.003Skip preview inference when recent audio RMS is below this threshold.
ring_buffer_secondsinteger30Seconds of audio retained in the rolling buffer. Must be positive.
model_pathstringggml-small.en.bin under model_dirGGML model for preview only. Empty string uses the same default path.
gpubooleanfalseRequest GPU for the preview model (separate worker from final ASR).
threadsinteger0CPU threads for preview. 0 means use 4 threads (not asr.threads).
Terminal window
# Set preview.enabled = true, download small model, restart daemon
skald watch
skald overlay
skald toggle

When enabled = true, skald config validate requires:

  • chunk_ms and step_ms are positive
  • overlap_ms is less than chunk_ms
  • ring_buffer_seconds is positive
  • Preview model file exists on disk
  • Final dictation always uses [asr], not preview settings.
  • Preview model is kept warm in its own worker with keep_warm lifecycle internally.
  • When recording stops, the daemon unloads the preview model before final transcription so the large ASR model has GPU/RAM headroom. The preview model reloads on the next recording start (small-model reload latency; validate on your hardware).
  • CPU preview is recommended to avoid competing with large CUDA ASR on the same GPU.