Skip to content

Add an opt-in full native speaker refinement worker - #1164

Draft
silverstein wants to merge 14 commits into
mainfrom
feat/full-diarization-worker-20261019
Draft

silverstein wants to merge 14 commits into
mainfrom
feat/full-diarization-worker-20261019

Conversation

@silverstein

@silverstein silverstein commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

The existing Community-1 integration does not run the full reconstruction/PLDA/VBx pipeline evaluated in #1157. This adds that pipeline as an explicitly selected, separately built CPU worker (engine = "speakrs"). The helper is not bundled, downloaded or selected automatically. Live capture and ASR keep their existing paths; this engine returns anonymous activity and refuses named enrollment and anonymous private-audio capabilities.

The host binds an immutable executable and input digest, verifies a private local model snapshot, and supervises bounded stdin/stdout/stderr, cancellation, deadlines and process-tree retirement. The separate dependency graph pins Speakrs af8013f with CPU-only features. Linux uses system OpenBLAS, macOS Accelerate, and Windows pinned static OpenBLAS. CPU-native flags apply only to the unbundled helper built on its execution host. Compiled helper objects are not shared between runners.

Qualification remains incomplete. Current head 5ac299091b578404e98c5a2e09f39a9644bf1bb3 incorporates release main d7d5bd43 and is being tested in native run 39374677352. This draft is excluded from v0.30.6 and stays draft until its required gates pass. The current Linux job has completed and still fails the speed gate: 329.50 seconds / ratio 0.3491 on IS1008a. Quality, four-speaker count and input preservation pass, with DER 9.9478%. Cumulative timing reaches 57.127 seconds at segmentation completion, 314.974 at embedding completion and 315.028 at inference completion. All reported source, checker and manifest hashes match this exact head. Intel macOS also completed: 346.56 seconds / ratio 0.3671, with the same DER, four-speaker count and input-preservation passes, but a failed speed gate. Its cumulative timings are 25.779 seconds at segmentation, 316.948 at embedding completion, and 317.057 at inference completion; all source, checker and manifest hashes match this head. Apple Silicon and full Windows inference remain pending.

The new diagnostics observe only the pinned pipeline's segmentation and embedding completion events. They publish fixed labels and bounded cumulative milliseconds; arbitrary messages, paths and audio are discarded. One already-seen Linux control reproduced four speakers, DER 9.9478% and an unchanged input. The interval from segmentation to embedding completion was 148.171 seconds, including decoding and preparation. That local run had concurrent Clippy work and is diagnostic characterization, not an isolated speedup measurement or complete platform qualification.

Source inspection also found that the Windows fence closed all non-stdio handles, including non-inheritable handles owned by the trusted runtime. The candidate preserves those runtime handles while retiring inheritable parent handles. Its isolated Windows regression requires real inherited process and file handles to be valid and inheritable before the fence, invalid afterward, and a separate runtime handle to remain usable. The actual Windows job has passed the helper regression step, including the inherited process/file handle canaries; full-recording inference remains pending. This does not establish the cause of the previous native access violation. The workflow now saves a completed pinned static BLAS build before a later inference failure, retaining its image/CPU/triplet/source cache identity.

Evidence from the previous tested revision is preserved: on 2c9c21ad, Apple Silicon passed all three complete AMI controls (ratios 0.1512, 0.1557 and 0.1569); Linux and Intel preserved quality/count/input but failed the first speed gate (317.33 seconds / 0.3362 and 370.90 seconds / 0.3929). Windows passed the silence smoke, then failed during full inference with 0xC0000005; there was no completed engine result. No model parameter, memory/deadline cap or acceptance threshold has been relaxed.

Local validation after updating to release main: strict feature-specific host Clippy, rebuilt model-free CLI, ten host tests, actual native-helper silence smoke, twenty Python controls (two optional skips), sixteen coverage-auditor tests, formatting, actionlint, packaging seals and generated-output checks. Whole-workspace Clippy passed on macOS at merged snapshot be4c50d5, with all 64 changed files matching the Linux source exactly. The final follow-up strengthens the Windows-only test with a file canary and updates documentation; The Windows helper regression has now passed in native CI; full-recording inference remains pending. A Linux whole-workspace attempt reported unused-code lint errors in unchanged Tauri platform code; changed core and helper strict checks passed.

Numeric receipts, exact source bindings and limits are in the integration investigation. These are already-seen regression controls. Real ASR alignment, multilingual/short-turn/similar-voice/headphone cases, named false positives, concurrent live latency and installed-app acceptance remain in the parent qualification work. No default-model or release change is included.

This branch has not been deployed

No deployments
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