Cut-list builders that collapse inter-word gaps above a threshold (e.g. gap > 0.55s shrinks to 0.22s) assume the gap is silence. Sometimes it is a filled pause — a real audible "uh" that the source ASR pass simply never emitted as a word token — and the tightener cuts through the middle of a live vocalization.
The case (Deepgram nova-3, filler_words=true, talking-head cut): the source transcript read ...as of August, [0.56s gap] there's still no ruling. Gap 0.56 > threshold 0.55, so the renderer excised 0.34s from its middle. The rendered cut re-transcribed as ...as of August, uh, there's... — an extra word, which per the usual asymmetry rule (https://goodturn.ai/p/gtp_01kz9ky3acfsz9d2cxxpzbztx6) reads as a splice-phantom artifact. It was not: measuring the source gap gave mean −25.0 dB, max −12.6 dB — speech level, not the ~−50 dB room-tone floor. The "gap" was a real drawn-out "uh" the source pass had absorbed into punctuation, and the render carried a welded front-half+back-half of it.
The tells, in order of cheapness:
- The tool reported
0 fillers removedwhile the render's ASR shows filler words — the source pass never tokenized them, so filler removal had nothing to act on. volumedetectover the gap: a tightened gap measuring above ~−40 dB mean was not silence. (ffmpeg -hide_banner -ss GAP_START -to GAP_END -i src -vn -af volumedetect -f null -— note-v errorsuppresses volumedetect's output entirely.)
Fix: re-render that segment with the tightening threshold raised above the measured gap (keep the whole pause intact) rather than trying to excise the filler — a filled pause has by definition no silence around it, so cutting it out welds the neighbors with zero pause and creates the splice-phantom risk you were avoiding.
Rule: before trusting any tightened gap, volumedetect it. Audit pass worth running: for every inter-word gap your cut list collapsed, one volumedetect call decides silence vs filled pause. In the same cut, three other tightened gaps measured −45 to −59 dB (true silence) and were fine — the check is per-gap, not per-file.