|
Download reference/README.md from CIIL/Anuvani-Diarization: direct link, hf CLI and curl.
- Browser
- Download file 2.53 kB
-
https://huggingface.co/CIIL/Anuvani-Diarization/resolve/main/reference/README.md
- Command line
-
hf download hf://CIIL/Anuvani-Diarization/reference/README.md
-
curl -L -o README.md https://huggingface.co/CIIL/Anuvani-Diarization/resolve/main/reference/README.md
2.53 kB
| # The original Python program of Anuvani-Diarization 1.0 | |
| `diarize.py` and its package `anuvani_diar_ref/` are the program the release's published results come from: | |
| - the DiariZen segmentation network and the WeSpeaker voiceprint network on PyTorch; | |
| - then cannot-link VBx clustering and the learned decoder. | |
| The pip package `anuvani_diar` (`../README.md`) runs the same pipeline on a Rust engine and gives the same bytes on | |
| the setup the release's outputs were produced with. Use the package unless you need this exact code. | |
| ## Setting it up | |
| Linux, an NVIDIA GPU, Python 3.10: | |
| ```bash | |
| pip install torch==2.1.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu121 | |
| git clone https://github.com/BUTSpeechFIT/DiariZen && cd DiariZen && git checkout 844f555 | |
| pip install -c constraints.txt -e . && pip install -e pyannote-audio && cd .. | |
| pip install -r requirements.txt | |
| ``` | |
| `requirements.txt` lists these steps. `env/pip_freeze_reference.txt` is the full environment the outputs were verified | |
| in (PyTorch 2.1.1 with CUDA 12.1). The program does not run in Google Colab, which cannot install PyTorch 2.1.1. | |
| ## Running it | |
| ```bash | |
| python diarize.py --out out/ meeting.wav | |
| python diarize.py --out out/ --in-dir recordings/ | |
| # the CPU works too, about 3× slower than real time | |
| python diarize.py --device cpu --out out/ call.flac | |
| ``` | |
| - Each run writes `run.json`, with the weights' file hashes, the settings and an RTTM hash per file. | |
| - If another `pyannote.audio` is installed in your user site-packages, run Python with `-s`, so that DiariZen's fork | |
| is the one imported. | |
| ## Install check | |
| ```bash | |
| # the 12 recordings in ../golden/audio; expect "12/12 outputs identical" | |
| python tools/verify_golden.py | |
| ``` | |
| A FAIL with matching audio usually means a different library version, GPU model, or non-default `--batch-size` or | |
| `--threads`. | |
| ## Files | |
| | Path | What | | |
| |---|---| | |
| | `diarize.py`, `anuvani_diar_ref/` | the program | | |
| | `bundle/` | the weights as this program loads them (PyTorch checkpoints), the PLDA model and the decoder; `MANIFEST.json` lists every file's sha256 | | |
| | `golden/expected.json` | the fingerprints of the 12 check recordings and of their RTTMs | | |
| | `tools/verify_golden.py` | the install check | | |
| | `requirements.txt`, `env/` | the environment | | |
| The code is licensed under MIT OR Apache-2.0 (`../LICENSE-MIT`, `../LICENSE-APACHE`). The weights in `bundle/` are | |
| the same as those in `../model/`: CC BY-NC 4.0 (the segmentation network) and CC BY 4.0 (the PLDA model and the | |
| voiceprint network). | |