Skip to content

Repository files navigation

diarization pipeline

Local, CPU-only speaker diarization pipeline: audio → VAD → speaker embeddings → clustering(storing on db) → Whisper transcription → LLM name resolution.

note:all technical details are in the documentation

Setup

uv sync --python 3.12
uv run python scripts/setup_models.py   # downloads whisper + LLM gguf
brew install llama.cpp whisper-cpp      # CLI binaries

Run

uv run python main.py path/to/audio.wav 
# there's a couple in audio_data/

Options:

uv run python main.py audio.wav --no-llm       # skip LLM, heuristic name resolution
uv run python main.py audio.wav -o outputs/run # custom output dir
uv run python main.py audio.wav --db my.db     # custom sqlite db

Outputs go to outputs/, models to models/, transcript data to diarization.db.

About

a local-first pipeline to diarise any audio file, supporting multiple codecs thanks to FFMPEG. Includes an identification pipeline to identify the speakers and classify male and female voices.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages