Find silent sections across every channel, not just the left. Threshold, hysteresis, minimum length, and cut padding all re-run instantly. Export a tightened WAV or MP3, split into clips as one ZIP, or save the timeline as CSV or JSON.
Initializing in your browser…
Detect tempo from onset autocorrelation, within 0.20 BPM across thirteen known-tempo fixtures. Draws the beats it found and plays them back as a click so you can check by ear.
Turn audio into a waveform image in five styles, exported as PNG or real vector SVG. Reads every channel, shows true level in dBFS, and redraws correctly at any size.
Cut a region out of any audio file, exact to the sample and measured at zero milliseconds of error. Waveform handles, real keyboard shortcuts, click-free cut fades, and WAV or MP3 output that matches its extension.
A stereo interview has the guest on the right channel only, plus long dead-air gaps you want trimmed.
Input
interview.wav · noise floor measured at −58 dB · threshold −48 dB · min length 1.5 s · keep 100 ms
Detected timeline
sound 00:00:00.000 → 00:03:12.400 silence 00:03:12.400 → 00:03:19.400 (7.0 s) sound 00:03:19.400 → 00:11:48.100 silence 00:11:48.100 → 00:11:51.300 (3.2 s) … 9 silences, 46.2 s removed, 39:14 remaining
Loudness is measured on every channel and the loudest decides, so the guest-only stretches count as audio instead of being swallowed into the surrounding gaps. Because measurement happens once when the file loads, dragging the threshold re-runs detection instantly. Cuts keep 100 ms of silence on each side and get an 8 ms fade, so the tightened file sounds trimmed rather than chopped.
Scan an audio file and find every silent stretch automatically. The Silence Detector measures loudness across all channels, marks regions that stay below your threshold for longer than a minimum length, and lets you tune the threshold, minimum duration, hysteresis, and cut padding with the results updating as you drag. Then remove the silence into one tightened file, split the recording into clips at its gaps, or export the timeline as CSV or JSON.
Raise the minimum duration to 2 or 3 seconds so only chapter-length pauses register, then split the file into one clip per chapter in a single ZIP.
Find dead air in an interview or lecture, hover a timeline row to see exactly where it falls, and play from that point.
Remove the long pauses from a recording while keeping 100 ms on each side, so the result sounds trimmed rather than chopped.
Export the timeline as CSV or JSON to drive an edit list, a chapter file, or a script elsewhere.
Detection happens in two stages, which is what makes the controls feel instant. When a file loads, a Web Worker decodes it and slides a 20-millisecond window across the audio in 5-millisecond steps, computing the RMS energy of each window on every channel and keeping the loudest. That per-window loudness track is the only thing later steps need, so changing the threshold, the minimum duration, the hysteresis, or the padding re-runs detection over a few thousand numbers instead of millions of samples: the result updates as you drag, with no Analyze button to press.
Taking the maximum across channels rather than reading channel zero is a correctness fix, not a refinement. A stereo recording with the guest on the right channel and nothing on the left is not silent, but single-channel detection reports it as silence and merges the real gaps on either side into one long false positive. The tool also applies hysteresis: a window enters silence below your threshold, but the signal has to climb a few decibels above that threshold to end the silence. Without it, material hovering near the threshold flickers between states and splinters into dozens of fragments. The measured noise floor and peak level of your actual file are printed under the waveform, so you can set a threshold from evidence rather than guessing; roughly 10 dB above the noise floor is a good starting point.
Detection reports the true silence boundaries. Padding is applied separately, at cut time: the Keep Padding Around Cuts control leaves a chosen amount of silence in place on each side of every cut, so speech attacks are not clipped and reverb tails are not chopped mid-decay. The waveform draws this distinction, with the removed core in solid red and the retained padding in a paler tint, and a silence shorter than twice the padding is left alone rather than cut to nothing. Every splice gets an 8-millisecond linear fade, which lands inside the retained padding and removes the click that a hard join between two different instantaneous amplitudes would otherwise produce.
All heavy work runs in a Web Worker, so the tab stays responsive and a Cancel button can stop an export. Exports come in two shapes: Remove Silences produces one tightened file, and Split into Clips saves every sounding stretch as its own file inside a single ZIP rather than firing a series of separate downloads. Both offer WAV, which is written as 16-bit PCM and adds no second generation of loss, or MP3 at 128, 192, 256, or 320 kbps. The timeline itself exports too: CSV gives one row per stretch with its type, start, end, and duration, and JSON adds the settings used and the measured noise floor and peak, so a detection run can be recorded or fed to another tool. Everything happens in your browser through the Web Audio API; supported inputs include MP3, WAV, OGG, AAC, M4A, FLAC, WebA, MP4, and WebM.
Start from the measured noise floor printed under the waveform and set the threshold about 10 dB above it. For a typical quiet room that lands somewhere near -40 dB. If too much is flagged, lower the threshold; if real gaps are missed, raise it. The result updates as you drag, so it is quick to find.
No. Loudness is measured on every channel and the loudest one decides, so a stretch with sound on the right channel only is correctly treated as audio. Tools that read only the first channel report exactly that case as silence and merge the surrounding gaps into one long false positive.
Cutting exactly at the detected boundary removes the very start of the next word and the tail of the previous one. The padding control leaves a chosen amount of silence in place on each side of every cut, 100 ms by default. Detection still reports the true boundaries; only what gets removed changes.
No. Every splice gets an 8 millisecond linear fade, which lands inside the retained padding, so joins are inaudible rather than the step discontinuity a hard cut produces.
WAV writes 16-bit PCM, adds no further lossy encoding, and is near-instant. Use it whenever the file is going back into an editor. MP3 is smaller and takes noticeably longer to encode; choose it when the file is the finished deliverable.
No. This tool works on one file at a time so that the threshold can be tuned against that recording's measured noise floor, which differs between recordings. Export the timeline as CSV or JSON if you want to record the settings you used.
No. Decoding, loudness measurement, and encoding all run in a Web Worker, so the interface stays responsive and long exports show progress and can be cancelled.
Audio is decoded and processed locally with the Web Audio API. Your files are never uploaded to a server.