Insert two Add(+1e-8) nodes into the statistics pooling
subgraph to match pyannote.audio.models.blocks.pooling.StatsPool
(pyannote-audio 4.0.4, pooling.py:52,58).
Bug fixed: the original ONNX export omitted both eps guards from
pyannote PyTorch source, causing div-by-zero -> +inf -> f32::MAX
embedding corruption on (chunk, speaker) pairs with 1-2 active
frames out of 589. Measured: 10/964 corrupted pairs on
testaudioset 10_mrbeast_clean_water before patch.
After patch:
- Bit-identical to original on healthy masks (full, half, 10-frame
sparse): L2 diff = 0.0
- Clean output (norm ~0.54) on degenerate 1-2 frame masks where
original gave norm=inf
Validation:
- All 6 in-repo parity fixtures pass bit-exact (spk + seg + DER=0)
- 7/8 testaudioset audios bit-exact spk + seg + DER=0 (was 2/8)
- Patch script: scripts/fix_wespeaker_pooling_eps.py in dia repo
drop orphaned external-data sidecar (canonical wespeaker_resnet34_lm.onnx is now the single-file packed form)