Skip to content

[audio]

Audio is captured through CPAL (PipeWire or PulseAudio on Linux). v1 requires 16 kHz mono output for the ASR pipeline regardless of the input device format.

[audio]
backend = "cpal"
device = "default"
target_sample_rate = 16000
channels = 1
max_record_seconds = 300
[audio.gates]
min_record_ms = 350
min_rms_energy = 0.003
min_peak_energy = 0.015
notify_on_no_speech = true
OptionTypeDefaultDescription
backendstring"cpal"Audio capture backend. Only cpal is supported in v1.
devicestring"default"Input device name or "default" for the system default microphone.
target_sample_rateinteger16000Sample rate written to WAV files and sent to Whisper. Must be 16000 in v1.
channelsinteger1Output channel count after downmix. Must be 1 in v1.
max_record_secondsinteger300Safety cap on recording length for a single job (5 minutes by default).

Gates run when a recording stops. Failed gates produce a no_speech error instead of running ASR.

OptionTypeDefaultDescription
min_record_msinteger350Minimum recording duration in milliseconds. Shorter clips are rejected.
min_rms_energyfloat0.003Minimum RMS energy across the clip. Lower values accept quieter speech.
min_peak_energyfloat0.015Minimum peak sample energy. Helps reject near-silent recordings.
notify_on_no_speechbooleantrueWhen [notifications].enabled is true, show a desktop notification if gates reject a clip.
  • Increase min_rms_energy or min_peak_energy in noisy environments to reduce false triggers.
  • Decrease them if legitimate speech is rejected (skald doctor and failed toggles with no_speech).
  • Run skald calibrate mic to measure ambient microphone noise and print recommended gate values.
  • Run skald calibrate mic --apply only when you want Skald to write the recommended gate values to config.
  • Setup wizard recording uses the same gates as normal dictation.

Recalibrate after changing microphones, input gain, room noise, desk position, or audio backend settings. Calibration records a short ambient sample without starting a dictation job and does not write captured audio to disk.

  • Stereo input is mixed to mono before resampling.
  • Preview uses a separate RMS threshold in [preview].min_rms_energy for chunk gating.