How to redact pii from audio — browser tool, zero upload
- Step 1Open the redactor and drop your recording — Open the redactor and drop the recording. Because nothing uploads, you can run it on an air-gapped or offline machine once the page is cached. Accepted input is audio; Pro-tier limits are 200 MB / 120 min per file.
- Step 2Let the file decode in your browser — The tool decodes the audio locally to read its duration. Nothing is uploaded — FFmpeg 8.1 runs as WebAssembly inside the page, so the recording never leaves your device. The decoded duration becomes the upper bound for every range you add.
- Step 3Add a redaction range — Click Add range. A row appears with Start and End number inputs (in seconds). A new range defaults to 0 s to 1 s; type the real start and end of the segment you want silenced.
- Step 4Mark every segment that needs silencing — Working from a review pass (and any transcript you have), add a range for each PII utterance. The reviewer owns the decision — there is no automatic detection, which is a feature for chain-of-custody: every silenced span is one a person chose.
- Step 5Process the file — Run the tool. For each range it applies
volume=0gated tobetween(t, start, end), so the audio inside every marked range becomes pure silence. The rest of the timeline is untouched and the file is re-encoded to the output format. - Step 6Download and verify — Verify the
-redactedoutput against your review notes, listening across each boundary. Store the original under access control; distribute only the redacted copy.
What the redactor actually does
Every row verified against the browser processor and the range UI. The tool mutes — it does not bleep, beep, or insert noise.
| Behaviour | Implementation | What it means for you |
|---|---|---|
| Redaction method | Volume set to 0 (full silence) inside each marked range via the FFmpeg volume filter with an enable='between(t,start,end)' gate | No tone, beep, or noise is inserted — the range goes silent |
| Marking | Manual only — you add ranges with Add range and type Start and End in seconds | There is no auto-detection, transcription, or phone-number finder in the tool |
| Time granularity | Start/End inputs step in 0.1 s (100 ms) increments | Type a finer value directly if your browser allows; the filter uses your exact number |
| Range bounds | Each input is clamped to min 0 and max = the file's decoded duration | You cannot mark a range past the end of the file |
| Output format | Defaults to the input file's extension and is re-encoded through FFmpeg | Lossy inputs (MP3/M4A/OGG/Opus) are re-compressed; WAV/FLAC stay lossless |
| Filename | Original name with a -redacted suffix | e.g. interview.mp3 becomes interview-redacted.mp3 |
| Empty input guard | Throws Add at least one redaction range if no range is set | At least one Start/End pair is required before processing |
Input and output formats
Output is re-encoded through FFmpeg 8.1 (WebAssembly). The output extension follows the input by default; the encoder is chosen from that extension.
| Format | Output encoder used | Lossy on re-encode? |
|---|---|---|
| MP3 | libmp3lame | Yes — re-compressed (one extra lossy generation) |
| WAV | pcm_s16le | No — lossless PCM |
| FLAC | flac | No — lossless |
| M4A / AAC | aac | Yes — re-compressed |
| OGG (Vorbis) | libvorbis | Yes — re-compressed |
| Opus | libopus | Yes — re-compressed |
Audio tier limits that apply to redaction jobs
PII redaction runs inside the audio tool family, so the audio family limits apply. Numbers are per the live tier table; durationMin is a per-file duration cap that is separate from the file-size cap.
| Tier | Max file size | Max duration / file | Files per job |
|---|---|---|---|
| Free | 50 MB | 30 min | 1 |
| Pro | 200 MB | 120 min | 10 |
| Pro-media | 100 GB | Unlimited | 100 |
| Developer | 100 GB | Unlimited | Unlimited |
Cookbook
Privacy-first recipes. The point of every one is that the file stays on your device — these are just how you drive the ranges.
Redact on an offline machine
For maximum control, load the tool once while online, then disconnect. Redaction still runs because FFmpeg is already in the page as WebAssembly.
1. Load /audio-tools/pii-redactor (online, one time) 2. Disconnect network 3. Drop sensitive.wav, add ranges, process 4. Download sensitive-redacted.wav - no byte ever left the device
One range per reviewer-flagged utterance
Your transcript review flagged four PII utterances with timestamps. Translate each into a Start/End range.
Transcript flags -> Ranges [02:14] full name -> Start: 134.0 End: 135.5 [05:48] account number -> Start: 348.2 End: 352.0 [09:03] address -> Start: 543.0 End: 547.6 [12:30] date of birth -> Start: 750.4 End: 752.0
Preserve timeline for an evidence log
Because muting keeps total length identical, your evidence log timestamps still match the redacted file exactly.
Original duration: 18:42 Redacted duration: 18:42 (unchanged) Log entry 'PII at 05:48' still points to the same moment in the redacted copy - only the audio there is silent.
Lossless workflow for an archived master
Keep a FLAC master lossless by outputting FLAC, so only the muted spans change and the kept audio is bit-accurate to the source codec.
Input: case-2026-014.flac Output: flac (libflac, lossless) File: case-2026-014-redacted.flac
Re-run after a second review pass
A later review finds one more PII mention you missed. Reprocess from the original master, not the already-redacted file, to avoid stacking re-encodes.
Add the new range to your existing set, then process the ORIGINAL master again (not the prior -redacted output). This keeps the kept audio to a single re-encode generation.
Edge cases and what actually happens
Network disconnected mid-job
SupportedProcessing is local, so losing the network after the page loads does not interrupt redaction. This is the intended privacy property — the audio is never in flight.
No range added
RejectedThe tool throws Add at least one redaction range if you process with no ranges. Add Start/End values first.
Reviewer expects auto-detection of PII
Not supportedThere is no speech-to-text or entity detection. Marking is manual — for chain-of-custody this is preferable, but it means a person must identify and enter every range.
Redacting an already-redacted file
AvoidRe-running on a prior -redacted output adds a second re-encode to the kept audio (for lossy formats). Always reprocess from the original master with the full range set.
PII present in file metadata
Not handled hereAudio redaction leaves ID3 tags and cover art untouched. Use id3-editor and album-art-extractor to clear embedded data, and sanitise the filename.
Overlapping reviewer ranges
SupportedTwo flags that overlap in time are fine — the union is silenced. No need to merge them manually.
Range End below Start
By designAn inverted range mutes nothing. The audio stays audible, so confirm End is greater than Start for every flagged utterance.
File exceeds tier size or duration cap
RejectedSize and duration are capped separately by tier. A long, large case recording may need Pro-media (100 GB, unlimited duration).
Video file dropped in
Not acceptedInput is audio. Extract the soundtrack first (e.g. video-to-wav), redact, then re-mux into the video elsewhere.
Frequently asked questions
Is my recording uploaded to a server?
No. All processing is 100% in your browser using FFmpeg 8.1 compiled to WebAssembly. The audio is decoded and redacted locally and never transmitted, which is what makes the tool suitable for sensitive recordings. You can disconnect from the network after the page loads and redaction still works.
Can it automatically find names, numbers, or card details?
No. Marking is manual only — you add ranges and type the Start and End seconds yourself. There is no speech-to-text, entity recognition, or phone-number detector built in. Play the recording, note the timestamps where sensitive content is spoken, and enter those ranges. This keeps everything in the browser with zero upload, but it does mean you (or a reviewer) decide what gets silenced.
Can the silenced audio be recovered from the output file?
No. The samples inside each range are replaced with silence before encoding, so the original audio in those spans is not present in the output file — there is nothing to un-mute. Keep your original recording in a secure location if you ever need the un-redacted version; the redacted file cannot be reversed back to it.
Does the tool insert a beep, tone, or white noise over the redacted part?
No. The redactor sets the volume to 0 inside each range, so the segment becomes full silence. There is no beep tone, 1 kHz tone, or white-noise option in the tool — it is a mute, not a bleep. If you specifically need an audible censor beep for broadcast style, you would have to add it in a separate audio editor; this tool's output is silent across the marked ranges.
Will the redacted file be the same length as the original?
Yes. Muting a range does not remove time — the silenced spans stay in place, so the total duration is unchanged. This is intentional: it keeps every later timestamp aligned with your notes, transcript, or video. If you actually want the file shorter, trim or strip silence instead.
How many separate sections can I redact in one pass?
As many as you need — click Add range for each section. Every range is applied in the same processing pass as its own volume=0 gate, so a call with ten scattered account numbers is one job, not ten. There is no fixed cap on range count; the practical limits are the file-size and duration caps for your tier.
Does redacting also remove names or numbers stored in the file's metadata?
No. This tool silences audio samples within the ranges you mark; it does not touch ID3 tags, comments, or cover art embedded in the file. If a phone number or name is sitting in the title/artist/comment fields, edit those separately with id3-editor, and consider whether the filename itself leaks anything.
Do I have to add ranges in chronological order?
No. Order does not matter — the filter gates are evaluated by timestamp, not by the order you typed them. You can add a range near the end of the file, then add an earlier one; both are silenced correctly. If a range's End is earlier than its Start, that range simply silences nothing, so double-check the numbers.
Can I redact the audio inside a video file?
This tool's accepted input is audio. To redact a video's soundtrack, first extract the audio (for example with the video-to-mp3 or video-to-wav tools), redact the ranges here, then mux the cleaned audio back over the video in a video editor. The redactor itself outputs audio, not video.
Will redacting reduce the audio quality of the parts I keep?
The output is re-encoded through FFmpeg, so a lossy input (MP3, M4A, OGG, Opus) goes through one extra compression generation — usually inaudible but technically present. WAV and FLAC outputs stay lossless. If your input is MP3 and you want to minimise quality loss, you can choose a WAV output, but the file will be larger. The unredacted regions are otherwise the same content, just re-encoded.
How is this different from the silence-stripper?
Opposite goals. silence-stripper detects and removes quiet gaps to tighten a recording, shortening it. The PII redactor inserts silence into specific time ranges you choose, keeping the total length identical so timing and any synced transcript line up. Use the redactor when you must blank out content without shifting everything after it.
Is muting the audio enough for a compliance obligation?
Muting the spoken PII is a meaningful data-minimisation step, but it is one part of a process, not a full compliance programme. You still need to control the original recording, document what was redacted and why, and confirm no PII survives elsewhere (file metadata, filename, accompanying transcript). Scrub embedded tags with id3-editor and rename the file. Consult your Data Protection Officer for your specific obligations.
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.