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.

MP3WAVFLACM4AOpusAIFF

…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

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

  1. Drop the recordings in. Each file shows the silence it detected as markers on the waveform.
  2. Leave the threshold at −45 dB and raise the minimum silence to 1,500 ms so only real gaps qualify.
  3. Turn on Interior removal for this use — it is exactly what you want between takes.
  4. 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 formats accepted by this page
InputWhat it isChromeFirefoxSafariiOS
MP3The universal lossy format. Plays on essentially every device made since 1998.NativeNativeNativeNative
WAVRaw PCM samples with a small header. Perfect fidelity, roughly 10 MB per stereo minute.NativeNativeNativeNative
M4AApple’s default AAC container. Better quality than MP3 at the same bitrate.NativeNativeNativeNative
AACBare AAC frames with no MP4 wrapper — used by broadcast streams and some hardware.NativePartialNativeNative
OGGRoyalty-free lossy codec. Standard in game engines, Godot, Unity and Wikimedia.NativeNativeEngineEngine
OpusThe best-sounding lossy codec below 128 kbps. Used by WhatsApp, Discord and YouTube.NativeNativePartialPartial
FLACLossless compression, typically 50–60% of WAV size, bit-identical when decoded.NativeNativeNativeNative
AIFFApple’s uncompressed PCM format — the WAV equivalent for Logic and Pro Tools.PartialPartialNativeNative
M4RAn M4A file with a .m4r extension. iOS only lists it as a ringtone if it is ≤ 40 seconds.PartialPartialNativeNative
AMRPhone-call speech codec: 8 kHz mono, 4.75–12.2 kbps. Decode only — nothing should be created in it.EngineEngineEngineEngine
CAFApple container used by older iOS Voice Memos. Usually holds ALAC, IMA4 or raw PCM.EngineEnginePartialPartial
3GPLegacy phone recording container, normally AMR-NB or low-bitrate AAC audio.EngineEnginePartialPartial
MOVQuickTime video from iPhone and DSLR cameras. Audio is normally AAC or PCM.PartialEngineNativeNative
MP4The standard video container. Its audio track is almost always AAC.NativePartialNativeNative
WebMOpen container used by browser recorders and YouTube downloads. Audio is Opus or Vorbis.NativeNativePartialPartial
Output formats this page can write
OutputEncoderBitrates / depthSample ratesTags
MP3libmp3lame32–320 kbps8–48 kHzYes + artwork
WAVpcm_s16le16, 24, 32-bit8–96 kHzYes
FLACflac16, 24-bit8–96 kHzYes + artwork
M4Aaac32–320 kbps8–48 kHzYes + artwork
Opuslibopus16–256 kbps8–48 kHzYes
AIFFpcm_s16be16, 24-bit8–96 kHzYes
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.

Read the full privacy detail

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.