Workflow · Updated October 2, 2026

Clean up audio andhit -14 LUFS with Claude

Claude Code runs a broadcast dialogue chain in ffmpeg: high-pass at 80 Hz, a soft expander, light denoise, EQ, 3:1 compression, a de-esser and a limiter. Then it measures loudness and sets the gain to land at -14 LUFS with true peak under -1 dBTP. The final number is re-measured on the encoded file, not assumed.

The dialogue chain, in order

  1. High-pass80 Hz
  2. Soft expander1:3, 18 dB max
  3. Breath reduction-12 dB
  4. Denoise, de-clicklight
  5. EQ-2 dB 200 Hz · +2.5 dB 4.2 kHz
  6. Compressor3:1
  7. De-esserpeaks only
  8. Limiterbelow -1 dBTP
-14 LUFSintegrated, re-measured on the encoded file. -16 for podcast apps.

What you need

  • Claude Code in a terminal, pointed at a folder with your footage.
  • ffmpeg and ffprobe on your PATH.
  • A local Whisper model for word-level transcripts.
  • Python with numpy, soundfile and OpenCV for the checks.

The dialogue chain, in order

High-pass at 80 Hz, a soft expander per mic, automix, breath reduction, light denoise and de-click, EQ, 3:1 compression, de-esser, limiter. Order matters.

The chain Sprites runs on its podcast
StepSettingWhy
High-pass80 HzRumble and handling noise out.
Soft expander, per mic1:3 below a threshold halfway between room and speech, 18 dB max, 4 ms attack, 80 ms hold, 250 ms releaseRoom and bleed down without chopping word onsets.
AutomixGain sharing between micsKills bleed and comb filtering on two-person shows.
Breath reductionStretches 24 dB under speech pulled down 12 dBBreaths softened, never removed. Never dead silence.
Denoise and de-clickLightHiss and mouth clicks.
EQ-2 dB at 200 Hz, +2.5 dB at 4.2 kHz, +1 dB at 9 kHzMud out, presence and air in.
Compressor3:1, 10 ms attack, 160 ms releaseEven level.
De-esserSibilant peaks onlyHarsh "s" sounds.
LimiterTrue peak below -1 dBTPNo clipping after encoding.
The dialogue chain after the per-mic expander and automix: high-pass, light denoise and de-click, EQ, 3:1 compression, de-esser.
ffmpeg -i mix.wav -af "highpass=f=80,afftdn=nr=10:nf=-50:tn=1,adeclick,\
equalizer=f=200:t=q:w=1:g=-2,equalizer=f=4200:t=q:w=1:g=2.5,equalizer=f=9000:t=q:w=1:g=1,\
acompressor=threshold=0.125:ratio=3:attack=10:release=160:makeup=1.4,\
deesser=i=0.4:m=0.5:f=0.55:s=o" work/voice.wav

Normalize to -14 LUFS, then measure again

-14 LUFS integrated with true peak below -1 dBTP for social video; -16 LUFS for podcast apps. Measure the finished mix and move the fader, because single-pass loudnorm lands about 2 LU off on a voice-and-music mix.

Measure, then move the fader and limit. Single-pass loudnorm lands about 2 LU off on a voice-and-music mix.
ffmpeg -i work/voice.wav -af loudnorm=I=-14:TP=-1:print_format=json -f null - 2>&1 | tail -12
# if it reads input_i -17.6, the gain is -14 - (-17.6) = +3.6 dB
ffmpeg -i work/voice.wav -af "volume=3.6dB,alimiter=limit=0.79:level=disabled" work/voice_-14.wav
Re-measure on the encoded mp4, not the wav you mixed: integrated -14 LUFS, true peak under -1 dBTP.
ffmpeg -i out/clip.mp4 -af ebur128=peak=true -f null - 2>&1 | grep -A12 Summary

Every Claude video editing guide

Remove Filler Words From Video With Claude (2026)Cut um, uh, stutters and long pauses from a talking-head video with Claude Code, ffmpeg and a primed Whisper transcript. Exact prompts, commands and checks.Turn a Podcast Into Shorts With Claude (2026)Turn a long podcast or video into vertical shorts with Claude Code: pick moments from the transcript, tighten, pace, reframe to 9:16 and caption. Real steps.Auto Captions and Subtitles With Claude (2026)Add captions and subtitles to video with Claude Code: word timings from Whisper, an SRT rebuilt from the cut, burned-in captions that shrink to fit, a QA gate.Auto Reframe Video to 9:16 With Claude (2026)Reframe horizontal video to vertical 9:16 with Claude Code: measure the face per shot, crop around it with ffmpeg, keep the head in frame and check every shot.Remove Silence and Jump Cut Video With ClaudeTrim dead air and pauses from talking-head video with Claude Code and ffmpeg: detect pauses over 0.4 s, cut them to 0.2 s and hide the jump. Commands included.Make YouTube Thumbnails With Claude (2026)Make YouTube thumbnails, Shorts covers and LinkedIn crops with Claude Code: the frame where the hook lands, the title in the middle band, four shapes.Descript Alternative: Edit With Claude Instead (2026)Replace Descript with Claude Code, ffmpeg and Whisper: filler removal, transcript cuts, captions and Studio Sound-style cleanup. Prices compared, limits stated.Opus Clip Alternative: Make Shorts With Claude (2026)Turn podcasts into shorts with Claude Code instead of Opus Clip: transcript-picked moments, 9:16 reframes, captions. Opus Clip, Riverside, Vizard prices.CapCut Alternative: Edit Talking-Head Video With ClaudeA CapCut alternative for talking-head and podcast video: Claude Code with ffmpeg and Whisper for captions, silence and filler cuts, 9:16 reframing and loudness.Submagic Alternative: Captions and Shorts With ClaudeA Submagic alternative: Claude Code writes word-timed captions, cuts silences and fillers with ffmpeg. Submagic, Captions and Vizard prices compared.

Frequently asked questions

How do I normalize audio to -14 LUFS?

Measure integrated loudness with ffmpeg loudnorm or ebur128, apply the difference to -14 as gain, limit true peak below -1 dBTP, and re-measure the encoded file.

What LUFS should a podcast be?

-16 LUFS for podcast apps and -14 LUFS for social video, both with true peak below -1 dBTP.

Can AI clean up podcast audio?

Yes. Claude Code runs a full dialogue chain in ffmpeg (high-pass, expander, denoise, EQ, compression, de-esser, limiter) and checks the speech level is unchanged while the noise between words drops 8 to 12 dB.

Want finished ads, not editing sessions?

Director by Sprites is a full creative team for your startup. Every Monday you get finished, on-brand video ads, reviewed by a human. Strategy, hooks, scripts, shooting and editing, end to end. You never write a prompt. You pick the winners. Sprites ships the campaigns. In private beta.