A silence finder returns a cut list, not a cleaned file
RMS-below-threshold stretches are timestamps you paste into an editor; auto-deleting them is how you lose breaths that were doing work.
RMS-below-threshold stretches are timestamps you paste into an editor; auto-deleting them is how you lose breaths that were doing work.
Audio Silence Finder decodes the file, measures RMS in short windows, and reports stretches quieter than your threshold for longer than your minimum. The waveform shows the hits. The download is a CSV of silence and keep rows. It does not rewrite the audio. Treating that map as a one-click cleanup is the mistake: the tool cannot tell a held breath from a gap, and splicing compressed audio without a click at every join is an editor’s job.
RMS below a threshold is not a pause
Silence here is RMS below a dB threshold, not “no one is talking.” Room tone, a noisy street, and a compressed podcast all sit at different floors. Default threshold is −40 dBFS, slider −70 to −20. Default minimum region is 0.3 s (down to 0.05). Drop the threshold for a quiet pause in a noisy file; raise it if ambience is being flagged. Always check the waveform before you cut.
The analyser uses the first channel only, 50 ms windows, 25 ms hops. decodeAudioData resamples to the AudioContext rate, often 48 kHz, and expands the whole file into PCM. Caps are stated up front: audio up to 80 MB and 20 minutes once decoded. A long podcast is heavy even when the mp3 looks small. Video is accepted; the tool still only needs a decodeable audio track. AC-3 and some MPEG variants fail in the browser. Try MP4/AAC, WebM, MP3, or WAV.
A “pause” in a performance is often a breath, a swallow, or a half-second of room that tells the listener someone is still there. Those regions can sit under −40 dBFS on a dry VO and look identical to a true gap on the flags. The waveform is the disagreement mechanism. If the red band covers a breath you can still hear, the region is a candidate, not a cut.
The download is timestamps
The CSV is type,start,end,duration with silence rows and keep rows. The filename is {original}-cutlist.csv. Paste the timestamps into an editor. The table on the page is the same data: start, end, duration, labelled silence.
That is the whole product. You still have the original file. You have a map of the quiet. You do not have a new take, a new codec, or a new waveform with the gaps removed. The browser can decode. It is not a DAW. Joining two compressed packets at an arbitrary sample is how you get a click, a missing consonant, or a room-tone jump that is louder than the words you kept.
The complementary tool is Audio Trimmer: in and out points on a real waveform, export 16-bit PCM WAV of one region. That is a re-encode of a slice you chose, not a silence-removal pass. Use it when the job is “keep 0:12–0:41.” Use the finder when the job is “where are the gaps.” Do not ask the finder to do the trimmer’s job, and do not ask either of them to invent a cleaned podcast.
Why auto-delete eats breaths
Auto-silence-removal as a one-click cleanup assumes every sub-threshold stretch is waste. It is not. Breaths that were doing work:
- Mark a sentence boundary the listener already heard as a pause.
- Keep a dry VO from reading as a machine-gun of clauses.
- Hold room so a cut to the next keep region does not jump in noise floor.
Delete them all and the read gets faster, then brittle, then wrong. You will also delete the half-second before a plosive that was the speaker getting to the word. The finder will flag it. A human should refuse some of the flags.
If you need a loudness number rather than a map of quiet, that is Loudness Meter: peak, RMS, a BS.1770-style estimate. It is not EBU R128, and it will not cut anything. A file can be peak-limited at 0 dBFS and still sound quiet. That pairing is a different question from “where is it silent.”
Cut in an editor, or trim on purpose
Workflow that does not throw away performance:
- Run the finder. Download the cut list.
- Watch the waveform against the table. Un-flag breaths and room you want to keep.
- Paste surviving timestamps into an editor, or set one in/out on the trimmer for a single keep region.
- Listen to every join. If you hear a click, you cut a compressed file at a bad sample; move the edit or bounce through WAV.
Pay a model when the job is a new voice, a new bed, or a new picture. Those jobs live on /cost and they bill in credits. A cut list is not that meter. A generate that “removes the pauses” will spend a clip rate to invent a take, and it will not give you this tool’s timestamps. Do the map here. Cut with a person in the loop.
FAQ
Can this delete the silences for me?
No. The CSV is timestamps you can paste into an editor. Splicing without a click at every join is not a Canvas job, and auto-removing every hit is how you lose breaths that were doing work.
Why did it mark room tone as silence, or miss a pause?
Silence is RMS below a dB threshold, not “no one is talking.” Drop the threshold for a quiet pause in a noisy file; raise it if ambience is being flagged. Check the waveform before you cut.
Is the cut list the same as a trim?
No. The finder returns many regions. The trimmer exports one in/out as WAV. Use the list to decide; use the trimmer only when you already know the slice.
Should I generate a new VO without pauses instead of cutting?
Only if you want a different performance. A new generate bills in credits and will not preserve the breaths you meant to keep. Map the file you have, then cut.