Skip to content

Add speakrs head-to-head harness and measured DER results - #89

Merged
ekhodzitsky merged 9 commits into
masterfrom
feat/speakrs-h2h-harness
Aug 4, 2026
Merged

Add speakrs head-to-head harness and measured DER results#89
ekhodzitsky merged 9 commits into
masterfrom
feat/speakrs-h2h-harness

Conversation

@ekhodzitsky

Copy link
Copy Markdown
Owner

Summary

  • Wire speakrs into the cross-engine benchmark (speakrs_runner, warm-batch speakrs-rttm helper, score_h2h.py).
  • Refresh the polyvoice runner for the v2+VBx default (not legacy).
  • Full matched H2H under benchmarks/der.py on Apple M1 Pro:
    • VoxConverse-test 232: polyvoice 15.22% vs speakrs-coreml 11.08% no-collar micro (gap 4.14 pp, confusion-dominated).
    • AMI-test 16: polyvoice 23.40% vs speakrs-coreml 17.43% (gap 5.97 pp; speaker exact 2 vs 11).
  • Document measured results in docs/BENCHMARKS.md and docs/COMPETITORS.md (speakrs as primary Rust peer).
  • Artifacts under benchmarks/results/speakrs-h2h-2026-08-03/ (PROTOCOL / VERDICT / JSON scores).

Why

speakrs is the closest peer (Rust + ONNX/CoreML, community-1 style). Their published ~11% Vox DER is reproduced on our scorer. The residual is speaker confusion/count, not RTF.

Test plan

  • Build benchmarks/tools/speakrs-rttm (--features coreml on macOS)
  • Smoke 10-file Vox subset (polyvoice + speakrs cpu/coreml)
  • Full VoxConverse-test 232 matched score
  • AMI-test 16 matched score
  • CI green on PR (harness code + docs only; full DER not PR-gated)

Notes

  • speakrs-rttm path-depends on a local speakrs checkout by default (../../../../speakrs from the tool crate); see benchmarks/tools/speakrs-rttm/README.md.
  • RTF: polyvoice cold CLI ~40–56×; speakrs CoreML warm ~144–215× on M1 Pro (do not compare to their M4 Pro 631× without labeling HW).

Wire speakrs into the cross-engine benchmark (single der.py scorer),
add a thin speakrs-rttm CLI helper, refresh polyvoice runner variants
for the v2+VBx default, and record the locked H2H protocol plus an
interim 4-file matched-set DER summary.
10-file VoxConverse-test under der.py: speakrs-coreml 13.74% vs polyvoice
17.72% no-collar micro; gap is confusion-dominated. polyvoice remains faster
on cold CLI (~53× vs ~23× CoreML on M1 Pro).
Process a directory of WAVs with a single loaded pipeline and --hyp-dir
output, skipping cached RTTMs. Enables full-split CoreML runs in tens of
minutes instead of cold-starting per file.
Warm batch on VoxConverse-test (M1 Pro, 144× RTFx) reproduces speakrs
published accuracy. Gap vs polyvoice remains ~4 pp, confusion-dominated.
Matched der.py scoring on full VoxConverse-test. Gap is 4.14 pp no-collar
micro and almost entirely confusion (8.04 vs 3.63).
Record speakrs CoreML 11.08% vs polyvoice 15.22% under the same der.py
scorer (full 232, collar 0). Gap is confusion-dominated. Update
COMPETITORS with speakrs as the primary Rust peer threat.
Same der.py scorer on Mix-Headset. Gap is 5.97 pp no-collar; speakrs
gets speaker count roughly right (11/16 exact) while polyvoice collapses
(2/16). Documents both corpus H2H tables in BENCHMARKS.
@ekhodzitsky
ekhodzitsky merged commit 8302944 into master Aug 4, 2026
47 checks passed
@ekhodzitsky
ekhodzitsky deleted the feat/speakrs-h2h-harness branch August 4, 2026 10:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant