Skip to content

v0.4.8 — speaker diarization via pyannote.audio

Latest

Choose a tag to compare

@myurasov myurasov released this 14 May 03:36
· 6 commits to main since this release

Speaker diarization (pyannote.audio)

New spectator audio diarize subcommand and --diarize flag on audio transcribe for speaker diarization. Runs in the same audio-venv as Whisper.

After spectator audio install (with the default --with-diarize):

  • spectator audio diarize call.mp3 --target <gpu-machine> — standalone; writes <stem>.diar.{rttm,json}.
  • spectator audio transcribe call.mp3 --target <gpu-machine> --diarize — Whisper + pyannote + merge in one tmux session; produces <stem>.diarized.{json,txt} (Whisper segments with speaker labels via maximum-overlap voting against pyannote turns).

Hugging Face access is needed at run time only, not at install time. See the new README section and REFERENCE.md → audio diarize for the three-form HF setup, the multi-field-form-vs-checkbox gotcha, and the merge algorithm.

Notes for new-silicon hosts

On Blackwell GB10 (sm_121) with the cu128 PyTorch wheels, the audio diarize runtime probes for nvrtc support and surgically patches Tensor.abs to compute magnitude manually (sqrt(real² + imag²)) for complex CUDA tensors only. Without the patch, pyannote's wespeaker fbank trips nvrtc: error: invalid value for --gpu-architecture (-arch). The patch costs nothing on properly-supported hardware. The proper fix lands when PyTorch ships nvrtc with sm_121 in its allowlist (cu129+ or torch nightlies on cu13).

Commits

  • be9f59d Add HUGGING_FACE_HUB_TOKEN to .creds and ensure_var_block helper
  • 361908d Add speaker diarization via pyannote.audio (audio diarize)
  • e3adc04 Document speaker diarization and bump version to 0.4.8

Full diff: v0.4.7...v0.4.8