Find every quiet gap in an audio file
A silence detector scans the raw audio waveform and reports the start and end of every stretch that falls below a chosen loudness threshold. That is useful for trimming dead air from podcasts, splitting long recordings into tracks, or finding the boundaries between spoken phrases — all without uploading your file to a server.
How it works
The file is read into an ArrayBuffer and decoded to raw PCM with AudioContext.decodeAudioData, giving one Float32Array of samples per channel where each value sits between -1 and 1. For every sample the tool takes the absolute peak across channels and compares it to an amplitude threshold derived from the dBFS slider using amp = 10^(dB / 20). So -50 dBFS becomes an amplitude of about 0.00316.
Consecutive samples under the threshold are grouped into a run. A run only counts as silence if it is at least as long as the minimum-length setting, computed as minSamples = (minMs / 1000) * sampleRate. Each surviving run is converted to seconds with index / sampleRate to produce the reported timestamps.
Tips and notes
- Start at -50 dBFS and adjust: raise it toward -30 dBFS for noisy recordings, lower it toward -65 dBFS for clean studio audio.
- A minimum length of 300–500 ms avoids flagging the natural micro-pauses between words.
- The percentage figure (total silence ÷ duration) is a quick way to gauge how much dead air a recording contains before you edit.
- Because decoding happens in-browser, very large files use more memory; for multi-hour recordings consider analysing shorter sections.
What to do with the silence timestamps
The output of this tool is a list of silence segments with start time, end time, and duration. Here is how to use those timestamps in common editing workflows:
Audacity (free, cross-platform)
Use the Truncate Silence effect (Effect → Special → Truncate Silence) for automated removal, or paste the detected timestamps into the label track (Tracks → Add New → Label Track) to mark each segment manually, then select and delete.
ffmpeg (command line)
Use the silencedetect filter to cross-check against this tool’s output, then use silenceremove to trim:
ffmpeg -i input.mp3 -af "silenceremove=start_periods=1:start_silence=0.5:start_threshold=-50dB" output.mp3
Adjust start_threshold to match the dBFS value you used in this detector.
Adobe Premiere / DaVinci Resolve
Import the audio, create markers at each silence timestamp, then trim or cut at the marker positions. The timestamps from this tool (in seconds) can be entered directly into the timeline position field.
Common use cases for silence detection
Podcast editing: Dead air between sentences, filler pauses, and awkward gaps between host and guest cut the perceived production quality. Running silence detection across a raw interview recording gives you a hit list of edits before you even listen through.
Splitting recordings into tracks: A multi-hour recording with distinct segments (rehearsal, performance takes, interview segments) often has natural silence between sections. Gaps longer than a few seconds reliably identify the segment boundaries.
Finding interview boundaries: When an interviewer recorded questions and answers separately and later merged them, silence gaps mark the joints.
Audiobook quality control: Listeners expect consistent, controlled pause lengths between chapters and paragraphs. A silence detector surfaces any section where the pause is unusually long (system glitch, premature stop) or suspiciously absent (edits that ran sentences together).
Threshold calibration guide
Getting the threshold right is the most important step. Here are starting points for common recording environments:
| Environment | Suggested threshold | Notes |
|---|---|---|
| Studio recording (quiet room) | -60 to -65 dBFS | Very sensitive; catches near-inaudible background |
| Home studio with low noise | -50 to -55 dBFS | Good default for podcast recordings |
| Room tone / HVAC present | -40 to -45 dBFS | Raises floor to sit above ambient hum |
| Noisy field recording | -30 to -35 dBFS | Only flags near-total silence |
| Phone or video call recording | -40 to -50 dBFS | Background codec noise varies significantly |
A minimum silence length of 500 ms works well for most spoken-word content — it ignores the natural micro-pauses between words while catching genuine pauses. For music, set the minimum length shorter (100–200 ms) to detect count-ins and separations between tracks.