speech-diarizer

Installation
SKILL.md

speech-diarizer

turn a local media file into a speaker-labeled transcript where each turn is attributed to a speaker (SPEAKER_00, SPEAKER_01, ...). this is the diarization-specialized counterpart to speech-video-transcriber: use this one whenever the recording has more than one voice and the user cares who said what.

the pipeline is fully local and runs well on apple silicon:

  • transcribe with faster-whisper (via whisperx), default model large-v3, on cpu (ctranslate2 is cpu-only on macos)
  • align to word-level timestamps
  • diarize with pyannote/speaker-diarization-3.1 (uses mps on apple silicon when available)
  • assign speakers to words and write .txt, .srt, and .json

self-contained scripts

  • scripts/diarize.py - the engine. a PEP 723 inline-script declaring its own python (>=3.10,<3.13) and dependency (whisperx>=3.3), so uv run --script builds and caches an isolated environment automatically. nothing is installed into the repo's shared .venv.
  • scripts/enroll.py - names speakers in the voiceprint store (PEP 723, depends only on numpy).
  • scripts/voiceprints.py - shared store + cosine-matching module imported by both (not run directly).
  • the enrolled voiceprint store is machine-global, not bundled with the skill. it lives at ~/.config/speech-diarizer/voiceprints.json by default, so every copy of the scripts on this machine shares one set of voiceprints. override with --store /path or $SPEECH_DIARIZER_VOICEPRINTS (point it at an iCloud/synced path for cross-machine use).

speaker identification (who, not just which)

Installs
1
GitHub Stars
1
First Seen
9 days ago
speech-diarizer — rami-maalouf/ai-agents-config