How to ai noise cancellation in browser — zero upload required
- Step 1Open the tool and confirm you're isolated — Go to ai-noise-reducer. For maximum assurance, open your browser's network panel before adding a file so you can watch that no upload occurs during processing.
- Step 2Drop the sensitive recording — Add a single file (MP3, WAV, M4A, FLAC, or video). It loads into the tab from your disk; it is not transmitted anywhere.
- Step 3Choose the output format — Set Output format to WAV (default, lossless), MP3, FLAC, or M4A. There is no strength control — RNNoise applies a fixed trained suppression.
- Step 4Process locally on your CPU — FFmpeg 8.1 resamples to 48 kHz mono float, RNNoise cleans each frame, and the cleaned audio is re-wrapped to 16-bit WAV (or re-encoded to MP3/M4A at 192 kbps). All on-device.
- Step 5Verify no upload happened — Check the network panel: after the initial page + WASM load, there should be no outbound request carrying the audio. The download is a local blob.
- Step 6Keep the clean file in your secure store — Save the result directly to your encrypted or access-controlled location. For redacting spoken PII rather than denoising, see pii-redactor.
Where the data goes at each step
The point of this page: nowhere off-device. Every stage is local WebAssembly.
| Step | Location | Network activity |
|---|---|---|
| Page + WASM load | Your browser (cacheable) | One-time download of page assets + ~85 KB RNNoise module |
| File added | Your device (RAM) | None — read from local disk |
| Decode + resample | FFmpeg 8.1 (WASM, CPU) | None |
| Denoise | RNNoise (WASM, CPU) | None |
| Re-encode + download | Local blob | None — saved to your machine |
Privacy-sensitive use cases and the right handling
Denoise is local, but some workflows need a different sibling tool. Use the correct one.
| Use case | RNNoise fit | Also consider |
|---|---|---|
| Legal deposition with HVAC noise | Removes steady room bed locally | loudness-normalizer for consistent levels |
| Medical dictation with fan noise | Strong — steady noise removal | speech-leveler for even dictation |
| HR interview, confidential | Clean steady bed, no upload | silence-stripper to tighten |
| Recording containing spoken PII | Denoise only — does not redact | pii-redactor to mute ranges |
| Source tape, embargoed | Local denoise keeps it embargoed | Keep WAV for an untouched archive copy |
Cookbook
Privacy-first scenarios. The emphasis is on what stays local and which sibling tool to reach for when denoise alone is not the whole job.
Legal deposition with air-handler noise
A recorded deposition has a steady HVAC bed. It cannot be uploaded to a cloud service. Process locally and keep the WAV for the record.
Input: deposition.wav (sensitive — no upload allowed) Output format: WAV Local pipeline (no network): FFmpeg 8.1 -> 48 kHz mono float RNNoise -> remove HVAC bed Re-wrap -> 16-bit WAV Output: deposition-clean.wav (kept in secure store)
Confirming no upload in the network panel
The verifiable-privacy step. Open DevTools, watch the network during a run.
1. Open browser DevTools -> Network tab 2. Load the tool page (you'll see page assets + rnnoise WASM) 3. Clear the log 4. Drop the file and run Expected: NO new outbound request carrying the audio. The denoise is pure CPU work; the download is a local blob.
Medical dictation: denoise then level
A clinician's dictation has fan noise and uneven volume. Denoise locally, then even the dynamics so transcription is reliable.
Step 1 ai-noise-reducer dictation.m4a -> clean.wav (no upload) Step 2 speech-leveler clean.wav -> level.wav Both steps run on-device. Nothing transmitted.
Recording with spoken PII — denoise is the wrong tool
If the goal is to remove a spoken account number, denoising will not do it. Use the redactor to mute specific ranges.
Goal: silence a spoken card number at 02:14-02:19 WRONG: ai-noise-reducer (removes noise, not content) RIGHT: /audio-tools/pii-redactor (mute the time range) Denoise cleans the bed; redaction removes the words.
Offline / air-gapped use
Once the page and WASM are cached, the tool runs without a connection — useful on a locked-down machine.
1. Load the page once on a trusted connection (caches assets + WASM) 2. Disconnect from the network 3. Drop a file and denoise — works offline No upload is possible because there is no connection at all.
Edge cases and what actually happens
Confirming nothing is uploaded
Verified localAfter the page and the ~85 KB RNNoise WASM load, processing performs no upload. You can confirm this in DevTools -> Network: dropping a file and running it generates no outbound request carrying the audio. The cleaned file is produced as a local blob.
Denoiser will not remove spoken PII
Not supportedRNNoise removes background noise, not speech content. To silence a spoken name, number, or address, use pii-redactor, which mutes specific time ranges. Denoise and redaction are different jobs.
Output is mono
By designRNNoise is mono-only, so stereo is downmixed before processing. For a single-voice deposition or dictation this is fine. If stereo separation matters for the record, keep the original and split with channel-splitter before denoising.
WASM module blocked on a locked-down machine
ErrorStrict environments may block WebAssembly or the dynamic import, giving 'RNNoise WASM module is unavailable.' Allow WASM and the module load for this origin, or load the page once on an unrestricted connection so assets cache, then go offline.
Sensitive file exceeds the tier size cap
413-style rejectAI denoise caps file size by tier: Free 10 MB, Pro 50 MB. A long deposition exceeds those. Pro+Media (£19/mo) supports up to 100 GB — the practical choice for confidential long-form audio you cannot split.
Daily denoise allowance spent
Quota exhaustedFree allows one local denoise per day, Pro five. Once used, the run is blocked. For a privacy workflow you run often, Pro+Media removes the daily cap entirely.
Keep an untouched original for chain-of-custody
RecommendedDenoising rewrites the audio (resample to 48 kHz mono, then re-encode). For evidence or compliance, always retain the unmodified original alongside the cleaned copy; export WAV for the cleaned version to avoid lossy re-encode.
Sample rate and channels change
By designOutput is 48 kHz mono regardless of the source. If your evidentiary format requires the original rate/channel layout, document the transformation and keep the original; convert with sample-rate-converter if a specific rate is mandated.
Frequently asked questions
Is anything uploaded to a server?
No. RNNoise and FFmpeg 8.1 run as WebAssembly in your browser, on your CPU. The audio is decoded, denoised, and re-encoded entirely on-device. You can verify it in DevTools: after the page and WASM load, processing makes no upload request.
How can I prove to a compliance reviewer that it stays local?
Open the browser network panel, clear it, then drop a file and run. There will be no outbound request carrying the audio — only the initial page assets and the one-time RNNoise module download. The download at the end is a local blob, not a server response.
Can it run fully offline?
Yes. Load the page once so the assets and the WASM module cache, then disconnect. Processing is pure local CPU work, so it runs without a connection — which also makes upload physically impossible.
Will it redact a spoken name or account number?
No. RNNoise removes background noise, not speech content. To silence spoken PII, use pii-redactor, which mutes specific time ranges. Use denoise for the noise floor and redaction for the words.
Why is the output mono?
RNNoise processes a single mono channel, so stereo input is downmixed. For a single-voice legal or medical recording this is the expected result. If stereo matters, split channels first with channel-splitter and keep the original.
Can I control the noise-removal strength?
No. RNNoise is a fixed, trained network with no strength or mix control; the only setting is output format. The benefit for sensitive work is determinism — the same file always produces the same cleaned output.
What is the largest confidential file I can process?
Free caps the file at 10 MB, Pro at 50 MB. For long depositions or dictation that you cannot split, Pro+Media (£19/mo) supports files up to 100 GB and removes the daily run limit.
Should I keep the original for chain-of-custody?
Yes. Denoising resamples to 48 kHz mono and re-encodes, so the cleaned file is a derivative. Always retain the unmodified original, and export the cleaned copy as WAV to avoid an additional lossy step.
Does my browser send the audio to load the AI model?
No. The model is a ~85 KB WebAssembly module the page downloads once. Loading the model is a download to you; your audio is never sent up to fetch or run it.
Is this the same engine as cloud denoisers?
It uses RNNoise, the open speech-denoising network also used in OBS and Discord. Cloud services may use larger proprietary models, but those require uploading your audio. This trades a heavier model for the guarantee that nothing leaves your device.
What if a strict environment blocks the WASM?
You'll see 'RNNoise WASM module is unavailable.' Allow WebAssembly and the module's dynamic import for this origin, or load the page once on an unrestricted connection to cache it, then work offline.
Does it work on video files containing sensitive audio?
Yes. Drop the video; FFmpeg extracts the audio locally, RNNoise denoises it, and you get a clean audio file — still with no upload. Re-attaching audio to the video is a separate local step.
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.