ferraus silence detect

Find silent regions and report their start, end, and level

Synopsis

ferraus silence detect <input> [options] [-o <output>]

What it does

Lists every stretch quieter than --threshold that lasts at least --min, with its start, end, duration, and average level. Nothing is changed. --markers also writes the regions as a marker file (CSV for editors and spreadsheets, or JSON) named <input>.silence-detect.csv unless -o says otherwise.

Examples

List pauses of 300 ms or more below -40 dBFS

ferraus silence detect interview.wav --json

Write long pauses to a CSV marker file

ferraus silence detect lecture.mp3 --threshold -50dB --min 2s --markers -o pauses.csv

Write pauses of a second or more to a JSON marker file next to the input

ferraus silence detect podcast.wav --min 1s --markers --markers-format json

Find even short, very quiet gaps, such as the breaths between words of a clean studio take

ferraus silence detect take.wav --threshold -60dB --min 100ms --json

Options

FlagTypeDefaultMeaning
--thresholdgain-40dBLevel (dBFS, RMS over 10 ms) below which audio counts as silence
--mintime300msShortest silence (duration) to report
--markersflag—Also write the regions to a marker file
--markers-formatcsv | jsoncsvMarker file format when -o has no .csv/.json extension

Global options

Every command also accepts the global options (-o, --json, --dry-run, --overwrite, --progress, ...). See Global options.

Exit codes

CodeMeaning
0Success
1Processing failed
2Usage or parameter error
3Input missing or unreadable
4Unsupported format or codec
8Cancelled
70Internal error (bug)

Common mistakes

  • Forgetting that outputs are never overwritten: pass --overwrite or a new -o path when re-running.
  • Beat-based times (4b, 1/4) need a tempo: pass --bpm or write 4b@120.
  • Gains need a unit when not in dB: 0.5x is a factor, -6 and -6dB are decibels.

For models

  • MCP tool: ferraus_silence_detect
  • Schema: ferraus schema silence detect
  • Pipeline: { op: silence detect, args: { ... } } (flag names with _ instead of -)
  • fx stage: no
{"command": "silence detect", "defaults": {"threshold": "-40dB", "min": "300ms", "markers_format": "csv"}}