Cut Precision
Move cuts made from a transcript into the real pauses in the audio.
Working Runs in your browser, and nothing is uploaded. Try it below on sample data.
The problem
Cuts made from subtitle timing often clip the first or last sound of a word. Fixing each one by ear is slow.
What I built
A tool that moves every rough cut to the nearest real pause in the recording, and shows which cuts were clipping words.
- Finds pauses in the audio itself
- Protects soft first and last sounds
- Flags the cuts that clipped words
Features and limits
Built and tested
- Finds pauses from the recording's own levels: the threshold sits between its noise floor and its speech level, so it adapts to quiet and noisy rooms.
- In-cuts move late into the pause before the first word; out-cuts early into the pause after the last word, with a little air on both sides.
- Consonant guard: a faint final “t” or a soft starting “s” above the noise floor stays on the word's side of the cut.
- Each cut is marked: was it inside a word, how far it moved, and whether it now sits in a pause. With no pause in reach, it goes to the quietest point and is flagged to check by ear.
- Waveform with the original cuts dashed and the refined cuts solid; play any bite before and after.
- Reads a cut list as SRT; load your own audio (any format your browser decodes). Export decisions as CSV or JSON.
Limits
- Tested on a synthetic voice (made with the open-source Flite synthesizer) with known pauses, clean and with added hum. Not yet tested on a broad set of real interview recordings.
- A very loud noise floor can mask a faint consonant completely; such cuts still look safe. Listen to the first and last word of important bites.
- Music under the voice raises the floor and hides pauses; it works best on dialogue stems.
- It refines cut points; it does not cut media or write an edit list for your editor yet.
Planned
Visual waveform, user correction and configurable handles.
How to use
- Look at the waveform: dashed lines are where the subtitles said to cut, solid lines are where the tool moved them.
- Press Before and After on a bite to hear the difference.
- Load your own audio, then paste its SRT into the cut list.
- Export the decisions as CSV for your edit notes, or JSON.
How it works
- RMS level per 10 ms window; threshold = floor + 30% of the way to the speech level (at least 6 dB over the floor), from the 10th and 90th percentiles.
- Pauses are runs below threshold of 60 ms or more; gaps under 120 ms (stop consonants) count less when choosing.
- In-cuts consider pauses that begin before them, out-cuts pauses that end after them, so a cut never jumps to the wrong side of a word.
- The tests run on a fixed WAV with known phrase boundaries; every refined cut must land inside the true gap.
Download
No download yet. A download appears here only after the package is built from reviewed code, installed and tested.
Tested versions & limits
- Pass Unit: pauses found in a synthetic voice clip with known gaps Node 22, Linux
- Pass Unit: every coarse cut moves into the true gap; none stays inside speech Node 22, Linux
- Pass Unit: adaptive threshold with about 8 dB more hum Node 22, Linux
- Pass Unit: no pause in reach is flagged to check by ear Node 22, Linux
- Pass Unit: CSV export Node 22, Linux
- Pass Browser: analysis, playback control, CSV export Chromium (Playwright), 1280px
Last verified 2026-10-31.
The browser tool works on the synthetic voice clip and on loaded audio. Not yet tested on a broad set of real interview recordings.
Details
- Input
- Synthetic audio and initial cut list
- Output
- Refined cut decisions and preview
- Runs in
- Any modern browser. Audio and subtitles are analyzed in this tab; nothing is uploaded or stored. Playback starts only when you press a button.
- Source
- Original, rebuilt from scratch