How to reduce sibilance without uploading anything
- Step 1Open the tool (then go offline if you want) — Load the de-esser page. Once the page and FFmpeg WebAssembly core have loaded, processing no longer needs the network — you can disconnect to be certain nothing leaves the machine.
- Step 2Drop the sensitive file in — Add the recording. MP3, WAV, FLAC, M4A, OGG, Opus, or video are accepted. The File API hands the bytes to the in-browser engine; no upload request is made.
- Step 3Verify privacy in the network tab (optional) — Open DevTools -> Network before processing. As the file is de-essed you'll see no outbound request carrying the audio. The only network activity is the one-time core load (already done) and an optional content-free usage counter.
- Step 4Set the Intensity — Use the single Intensity (0-1) slider. Default
0.6(-7.2 dB) suits most voices. The cut is exactlyintensity x -12 dB; step is0.05. - Step 5Process locally and download — FFmpeg WebAssembly applies the notch on your machine and re-encodes to the same format you supplied. The result downloads directly — it was never on a server to begin with.
- Step 6Chain other private steps if needed — Need to also redact spoken PII or remove noise from the same recording? Those run locally too: pii-redactor for muting sensitive ranges and ai-noise-reducer for in-browser denoise.
What stays on your device vs. what touches the network
A precise breakdown of the privacy model. The audio content is never transmitted; only a one-time engine load and an optional, content-free counter use the network.
| Item | Network? | Notes |
|---|---|---|
| Your audio file bytes | Never | Read via the File API, processed in-browser, never uploaded |
| The de-essed output | Never | Generated locally; downloaded straight to your device |
| FFmpeg WebAssembly core | Once, on load | Static asset served same-origin; cached after first load |
| Usage counter (signed-in) | Optional | A single content-free 'file processed' tick for dashboard stats; opt-out in account settings |
| Your Intensity setting | Never | Stays in the browser tab; not sent anywhere |
Intensity reference for redaction-grade consistency
Because the de-ess is a fixed curve, the same Intensity yields identical processing across files — useful when a workflow must be repeatable and documentable. Cut depth is exactly intensity x -12 dB.
| Intensity | Cut at 7-9 kHz | Use |
|---|---|---|
0.5 | -6 dB | Light, transparent — preserves the most original character |
0.6 (default) | -7.2 dB | Standard de-essing for most voices |
0.7 | -8.4 dB | Stronger, for bright/harsh source recordings |
1.0 | -12 dB | Maximum; risk of dulling — A/B before adopting |
Cookbook
De-essing recipes for material that must stay on-device. Each names the Intensity and the privacy point that matters.
Confidential source interview for journalism
An off-the-record interview that cannot be uploaded to any third-party service. Process it locally, verify no upload in the network tab, keep the source protected.
File : source-interview.wav (sensitive) Step : drop -> DevTools Network shows no audio upload Control: Intensity = 0.6 (-7.2 dB) Result : esses tamed; file never left the laptop
Privileged legal recording
A deposition or client call where chain-of-custody and confidentiality matter. Local-only processing means no server copy exists to subpoena or breach.
File : client-call.flac (privileged) Workflow: go offline -> drop -> de-ess -> download Control: Intensity = 0.55 (-6.6 dB) Note : output stays FLAC; nothing transmitted at all
Medical dictation cleanup
Patient-identifiable dictation that can't go to a cloud processor under privacy rules. The fixed curve also makes the treatment documentable and repeatable across files.
File : dictation-2026-06.m4a (PHI)
Control: Intensity = 0.6
Why fixed: same Intensity = identical processing,
so the method is repeatable for compliance
Output : m4a (AAC), processed entirely on-deviceAir-gapped machine processing
On a network-restricted workstation, once the page and core are loaded you can disconnect entirely and still de-ess.
Setup : load page on connected machine, then go offline Drop : internal-call.mp3 Control: Intensity = 0.6 Result : processed with no network at all
De-ess then redact PII, all local
Combine local-only steps: tame sibilance, then mute spoken identifiers. Both run in the browser with no upload.
Step 1: de-esser, Intensity 0.6 (this tool) Step 2: pii-redactor -> mute ranges with names/numbers Both : in-browser, no upload, file stays on device
Edge cases and what actually happens
Worried the file is secretly uploaded
Preserved (local only)It isn't. Verify yourself: open DevTools -> Network and process a file — there is no outbound request carrying the audio. The only network calls are the one-time core load and an optional content-free usage tick you can disable in account settings.
Processing on a fully offline machine
SupportedOnce the page and FFmpeg core are loaded, de-essing runs with no network. You can disconnect entirely and still process. This is by design for sensitive workflows on air-gapped systems.
Free plan blocks the tool
Pro requiredThe de-esser is Pro-only. Sensitive-material handling doesn't change the tier gate — you need Pro or higher (200 MB / 120 min per file on Pro).
Very large confidential file over the size cap
RejectedPro caps each file at 200 MB. A large multi-hour recording may exceed that. Because uploading isn't an option for sensitive content, split it locally with audio-splitter, or upgrade to Pro-media / Developer (100 GB).
Need to redact spoken names, not just esses
Different toolThe de-esser cuts sibilance; it does not remove or mute speech content. To silence spoken PII (names, account numbers), use pii-redactor, which also runs locally with no upload.
Output format isn't selectable
By designThe de-esser re-encodes to the same format you supplied. There's no format dropdown. For sensitive files you usually want to keep the original format anyway; convert locally afterward only if required.
Browser tab closed mid-process
Nothing leakedIf you close the tab before finishing, no partial file exists anywhere — processing was in-memory on your machine, and nothing was ever sent to a server. Just reopen and re-run; the original file is untouched.
Harshness isn't sibilance
Out of bandThe de-esser only cuts 4500-12000 Hz. If the recording is harsh for another reason (boxiness, hum), no Intensity helps — use voice-eq or ai-noise-reducer, both of which are also local-only.
Over-cutting dulls a low-fi phone recording
ExpectedPhone and call recordings are often band-limited already. A high Intensity can dull what little top end exists. Keep it modest (0.4-0.5) on low-fi sources, or skip de-essing if there's little 7-9 kHz energy to begin with.
Frequently asked questions
How do I know my recording really isn't uploaded?
Open your browser's DevTools, go to the Network tab, and process a file. You'll see no outbound request carrying your audio — only the one-time FFmpeg core load (a static same-origin asset) and an optional content-free usage counter. The de-essing happens on FFmpeg WebAssembly inside your tab, on your machine.
Can I use this on an offline / air-gapped computer?
Yes. Once the page and the FFmpeg core have loaded, processing needs no network. You can disconnect entirely and still de-ess. This is intended for sensitive workflows where the machine shouldn't touch a network during processing.
Is any copy of my file kept on a server?
No. The file is never uploaded, so there's no server copy to retain, breach, or subpoena. The de-essed output is generated locally and downloaded straight to you. The only server-side data is an optional, content-free 'file processed' counter you can disable in account settings.
What does the de-esser actually do to the audio?
It applies a fixed FFmpeg firequalizer notch — flat at 4500 Hz, deepest across 7000-9000 Hz, flat by 12000 Hz — to reduce sibilant s/sh energy. You set the depth with one Intensity (0-1) slider, where the cut equals intensity x -12 dB.
Why is a privacy-focused tool still behind a Pro plan?
The local-only processing model applies to all tiers, but the de-esser itself is a Pro feature (minTier: pro) regardless of how sensitive the content is. Pro allows 200 MB / 120-minute files; Pro-media and Developer add unlimited duration and 100 GB files. The privacy guarantee is the same at every tier.
Can I also remove spoken names or numbers from the same file?
The de-esser only reduces sibilance — it doesn't mute speech. To silence spoken PII, use pii-redactor, which lets you mute specific time ranges and also runs entirely in-browser with no upload.
Does it work without an internet connection?
After the initial page and core load, yes. The processing is self-contained in the browser. You can verify by going offline and confirming a file still de-esses successfully.
What's the strongest setting, and is it safe for confidential audio?
Intensity 1.0 gives a -12 dB notch. It's safe for the file (lossy only in the sense of any re-encode), but acoustically it risks dulling the voice. For accuracy-critical confidential audio (e.g. transcription later), prefer a lighter setting like 0.5-0.6 so the speech stays natural.
What output format do I get for a sensitive file?
The same format you dropped in, re-encoded locally with the matching codec. There's no format selector. Keeping the original format is usually what you want for confidential material anyway.
How large a confidential file can I process?
Pro handles up to 200 MB and 120 minutes per file. Since uploading isn't an option for sensitive content, split larger files locally with audio-splitter, or upgrade to Pro-media / Developer for files up to 100 GB and unlimited duration.
If I close the tab mid-process, does anything leak?
No. Processing is in-memory on your machine and nothing is transmitted, so closing the tab leaves no partial file anywhere and no server trace. The original file is untouched — just reopen and re-run.
What if the harshness isn't from S sounds?
Then the de-esser won't fix it; it only cuts 4500-12000 Hz. Other harshness (boxiness, hum, hiss) needs voice-eq or ai-noise-reducer — both of which also run locally with no upload.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.