Skip to content

nonspeech needs a seam witness, not an energy floor: the floor's discrimination does not survive the silence pass #74

Description

@Railly

nonspeech fires on Speech < 0.30 — absence of speech, not presence of noise. On a master that still holds sub-second pauses, every pause qualifies.

Measured on two different files, and the difference between them is the point:

file state PANNs alone PANNs + interior energy floor PANNs + micro-pause witness
cueva-v4 (edited, pauses remain) 27 spans 1 real cough floor kills 26 of 27
cueva-fix66 (silence pass applied) 30 spans 15 hits / 16 FP kills only 6 of 30 13 hits / 4 FP

The trap

The interior-energy floor is a genuine discriminator on a file that still has silence: a cough over a pause is loud, a pause is not. On a master where the silence pass already ran, the surviving flagged spans are speech transitions, not coughs over silence — measured peak, minimum, range and fraction-below--30dB all overlap completely between true and false positives.

A threshold calibrated on one file gave a confident wrong answer on the other. Same failure class as the 24 dB source-vs-render silence gap already documented at auto-cut.ts:47.

What actually discriminates

A micro-pause witness: an energy dip of >=300ms (30ms windows, threshold median-18dB) near the flagged span. A speaker who coughs mid-sentence leaves one; a speech transition does not.

PANNs alone: 15 hits / 16 FP. PANNs requiring a seam: 13 hits / 4 FP.

Suggestion

nonspeechCuts currently requires overlap with a measured silence, which is why coughs riding on speech are declined entirely (they have no silence under them). A seam witness is the weaker, correct version of that requirement: it asks whether the speaker stalled, not whether the level dropped below a speech threshold.

Related: #66 (the pass that consumes these).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions