Skip to content

Add automatic speaker diarization - #20

Open
cemoody wants to merge 1 commit into
digimata:masterfrom
cemoody:feat/automatic-speaker-diarization
Open

Add automatic speaker diarization#20
cemoody wants to merge 1 commit into
digimata:masterfrom
cemoody:feat/automatic-speaker-diarization

Conversation

@cemoody

@cemoody cemoody commented Jul 30, 2026

Copy link
Copy Markdown

Summary

  • Diarize the mixed system-audio track locally with FluidAudio’s offline Community-1/VBx Core ML pipeline and attribute transcript segments to anonymous session-local speakers.
  • Use Parakeet word timestamps to split transcript turns at diarization boundaries; only emit a speaker-N label when the time-alignment confidence clears a configurable threshold, otherwise safely retain them.
  • Record speaker source, alignment confidence, and overlap metadata in canonical transcript JSON.
  • Add model-cache readiness to quill doctor and safe fallback behavior for unavailable diarization.

Quality and evaluation

  • Adds an opt-in Core ML benchmark over 12 pinned WAV/RTTM smoke fixtures.
  • Adds portable RTTM/DER scoring, fixture integrity, and word-level attribution tests.
  • Documents fixture attribution and a consented meeting-corpus/release-benchmark checklist. The committed fixtures are explicitly documented as read-speech smoke coverage, not meeting-quality evidence.

CI

  • Ubuntu 24.04 runs portable Foundation-only tests using pinned swift:6.0 in Docker.
  • macos-15 builds Quill and runs deterministic tests.
  • The model-backed benchmark remains opt-in (QUILL_RUN_DIARIZATION_BENCHMARK=1) on a separately provisioned macOS runner with a preloaded FluidAudio model cache; normal CI never downloads models.

Validation

docker run --rm -v /home/coder/quill:/src -w /src swift:6.0 swift test

Result: 12 tests passed (fixture checksums, RTTM parsing/DER semantics, anonymous-label mapping, collar behavior, and word-level attribution fallback/splitting).

@cemoody
cemoody force-pushed the feat/automatic-speaker-diarization branch from 958e738 to e45c9ad Compare July 30, 2026 04:14
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