Silence removal
Remove silence from audio
Sections quieter than your threshold for longer than your minimum duration are cut out. You choose whether to trim the start, the end, interior gaps, or all three, and how much padding to leave around what is kept.
…or drag files and folders here. Add as many as you like — everything is processed on this device.
.3g2 .3gp .aac .aif .aifc .aiff .amr .caf .flac .m4a .m4r .m4v .mkv .mov .mp3 .mp4 .oga .ogg .opus .qt .wav .wave .weba .webm
In one paragraph
Almost every recording starts and ends with dead air — the walk back to the microphone, the pause before the first word, the fumble for the stop button. Trimming that is uncontroversial and usually the only edit needed. Interior silence is different: cutting the pauses out of speech changes the rhythm of it, and destroys any timestamp alignment you might need for transcription or video sync.
This page separates the two decisions deliberately. Leading and trailing trimming are on by default; interior removal is off and stays off unless you turn it on. Detection uses an RMS level over short windows against your threshold, with a minimum-duration requirement so a brief gap between words is never mistaken for silence, and padding so cuts do not clip the attack of the next word.
Does this change the audio quality?
Removing silence changes the duration of the file. The audio that is kept is untouched — no fades, no level changes — beyond the padding you specify around each cut.
- Interior removal changes timing. Do not use it on anything that has to stay in sync with video or with transcription timestamps.
- A threshold that is too high cuts quiet speech. Preview the detected regions before converting.
- Recordings with audible hiss or air conditioning may have no section below the threshold at all, in which case nothing is removed and the file reports that.
A worked example
Cleaning up rehearsal takes with long gaps between them
- Drop the recordings in. Each file shows the silence it detected as markers on the waveform.
- Leave the threshold at −45 dB and raise the minimum silence to 1,500 ms so only real gaps qualify.
- Turn on Interior removal for this use — it is exactly what you want between takes.
- Check the preview markers, then convert. The result panel reports how much time was removed.
Start at −45 dB, 500 ms, leading and trailing only
−45 dB is below any realistic room tone and above the noise floor of a decent recording, so it detects genuine silence rather than quiet passages. A 500 ms minimum ignores the natural gaps in speech. Padding of 100–150 ms keeps consonant attacks intact. Raise the minimum to 1,500–2,000 ms before enabling interior removal, and lower the threshold to −55 dB if the recording is very clean and you are cutting too much.
Supported formats, limits and browser notes
Sonic Batch decodes with the browser when it can (faster, no engine download) and falls back to the self-hosted WebAssembly engine when it cannot. Every combination below works in every listed browser; the column only tells you which decoder does the work.
| Input | What it is | Chrome | Firefox | Safari | iOS |
|---|---|---|---|---|---|
| MP3 | The universal lossy format. Plays on essentially every device made since 1998. | Native | Native | Native | Native |
| WAV | Raw PCM samples with a small header. Perfect fidelity, roughly 10 MB per stereo minute. | Native | Native | Native | Native |
| M4A | Apple’s default AAC container. Better quality than MP3 at the same bitrate. | Native | Native | Native | Native |
| AAC | Bare AAC frames with no MP4 wrapper — used by broadcast streams and some hardware. | Native | Partial | Native | Native |
| OGG | Royalty-free lossy codec. Standard in game engines, Godot, Unity and Wikimedia. | Native | Native | Engine | Engine |
| Opus | The best-sounding lossy codec below 128 kbps. Used by WhatsApp, Discord and YouTube. | Native | Native | Partial | Partial |
| FLAC | Lossless compression, typically 50–60% of WAV size, bit-identical when decoded. | Native | Native | Native | Native |
| AIFF | Apple’s uncompressed PCM format — the WAV equivalent for Logic and Pro Tools. | Partial | Partial | Native | Native |
| M4R | An M4A file with a .m4r extension. iOS only lists it as a ringtone if it is ≤ 40 seconds. | Partial | Partial | Native | Native |
| AMR | Phone-call speech codec: 8 kHz mono, 4.75–12.2 kbps. Decode only — nothing should be created in it. | Engine | Engine | Engine | Engine |
| CAF | Apple container used by older iOS Voice Memos. Usually holds ALAC, IMA4 or raw PCM. | Engine | Engine | Partial | Partial |
| 3GP | Legacy phone recording container, normally AMR-NB or low-bitrate AAC audio. | Engine | Engine | Partial | Partial |
| MOV | QuickTime video from iPhone and DSLR cameras. Audio is normally AAC or PCM. | Partial | Engine | Native | Native |
| MP4 | The standard video container. Its audio track is almost always AAC. | Native | Partial | Native | Native |
| WebM | Open container used by browser recorders and YouTube downloads. Audio is Opus or Vorbis. | Native | Native | Partial | Partial |
| Output | Encoder | Bitrates / depth | Sample rates | Tags |
|---|---|---|---|---|
| MP3 | libmp3lame | 32–320 kbps | 8–48 kHz | Yes + artwork |
| WAV | pcm_s16le | 16, 24, 32-bit | 8–96 kHz | Yes |
| FLAC | flac | 16, 24-bit | 8–96 kHz | Yes + artwork |
| M4A | aac | 32–320 kbps | 8–48 kHz | Yes + artwork |
| Opus | libopus | 16–256 kbps | 8–48 kHz | Yes |
| AIFF | pcm_s16be | 16, 24-bit | 8–96 kHz | Yes |
- Max per file
- 400.0 MB
- Max per queue
- 4.00 GB
- Max duration
- 4:00:00
- Max archive
- 1.50 GB
These are enforced ceilings, checked before any decoding starts, not measured maximums — a file over the limit is rejected rather than allowed to exhaust the tab’s memory. Real-world capacity is lower on older phones, which is why the scheduler runs one file at a time on iOS and Safari.
Where your audio goes
Nowhere. Your file is read from disk into this browser tab with the File API, decoded and encoded by code running in that same tab, and handed back to you as a download. It is never transmitted.
That is a structural property of the application, not a policy promise: there are no API routes, no server actions and no third-party processing services in this project, so there is nothing capable of receiving a file. The page’s Content-Security-Policy also restricts connections to this origin, and the automated test suite includes a browser test that fails if any network request during import, preview, conversion or download carries media bytes.
The trade-off, stated plainly:results live in your tab’s memory until you download them. Closing or reloading the page discards them. There is nothing on a server to recover, because nothing was ever put there.
Troubleshooting
Nothing was removed.
The recording probably has a noise floor above your threshold — hiss, traffic, a fan. Lower the threshold towards −35 dB, or check the detected-region markers to see what the analysis found.
Words are being clipped at the start.
Increase the padding. 150–200 ms preserves plosives and sibilants that a tight cut removes.
The speech now sounds unnaturally fast.
Interior removal is on and is cutting the natural pauses in the delivery. Turn it off, or raise the minimum silence duration substantially.
Frequently asked questions
How does silence detection work?
The decoded audio is measured as RMS level over short overlapping windows. Windows below your threshold that form a run longer than your minimum duration are marked as silence, then padding is added back at each boundary.
Will this remove background noise?
No. It removes sections that are quiet; it does not process the audio that remains. Noise reduction is a different operation and is not part of this tool.
Can I see what will be cut before committing?
Yes. The detected regions are shown as markers on the waveform for each file, and the summary tells you how much total time would be removed.
Does it work in batch?
Yes, with the same thresholds applied to every file, or per-file overrides where a recording needs different treatment.