OpenASR Release commited on
Commit
672c5b6
Β·
unverified Β·
0 Parent(s):

publish pyannote-segmentation-3.0 OpenASR packs

Browse files
Files changed (3) hide show
  1. .gitattributes +1 -0
  2. README.md +101 -0
  3. pyannote-segmentation-3.0-f32.oasr +3 -0
.gitattributes ADDED
@@ -0,0 +1 @@
 
 
1
+ *.oasr filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ base_model: onnx-community/pyannote-segmentation-3.0
4
+ pipeline_tag: voice-activity-detection
5
+ library_name: openasr
6
+ tags:
7
+ - speaker-diarization
8
+ - openasr
9
+ - oasr
10
+ ---
11
+
12
+ <div align="center">
13
+
14
+ # pyannote Segmentation 3.0 Β· OpenASR
15
+
16
+ **pyannote segmentation-3.0 β€” speaker-change and overlap aware speech segmentation for OpenASR diarization**
17
+
18
+ [![License](https://img.shields.io/badge/license-MIT-2563eb.svg)](https://huggingface.co/onnx-community/pyannote-segmentation-3.0)
19
+ [![Format](https://img.shields.io/badge/format-.oasr-7c3aed.svg)](https://github.com/QuintinShaw/OpenASR)
20
+ [![Runtime](https://img.shields.io/badge/runtime-OpenASR-111827.svg)](https://openasr.org)
21
+ [![Base model](https://img.shields.io/badge/base-pyannote--segmentation--3.0-f59e0b.svg)](https://huggingface.co/onnx-community/pyannote-segmentation-3.0)
22
+
23
+ Speaker-diarization support pack for the **[OpenASR](https://github.com/QuintinShaw/OpenASR)** runtime β€”
24
+ pure-Rust inference, **no Python at inference time**.
25
+
26
+ </div>
27
+
28
+ ---
29
+
30
+ ## ✨ Highlights
31
+
32
+ - βœ‚οΈ **Speaker-change aware segmentation** β€” PyanNet (SincNet + BiLSTM) with a powerset head that detects up to 3 concurrent speakers, including overlapped speech
33
+ - 🀝 **Quality upgrade for `--diarize`** β€” installed alongside the CAM++ embedder pack, it replaces coarse VAD slices with fine speaker-turn boundaries
34
+ - πŸ”’ **Diarization, not identification** β€” anonymous session-relative labels; nothing leaves the machine
35
+ - 🎯 **Bit-exact packaging** β€” single raw-f32 build; the pure-Rust forward pass matches the upstream ONNX logits (max abs error ~7e-5)
36
+ - πŸ¦€ **Native in OpenASR** β€” `.oasr` packs run with no Python at inference, engineered for peak performance on CPU & GPU
37
+
38
+ ## πŸš€ Quickstart
39
+
40
+ ```bash
41
+ # 1. Install the OpenASR CLI Β· https://openasr.org
42
+ # 2. Pull the pack
43
+ openasr pull pyannote-segmentation-3.0:f32
44
+
45
+ # 3. Diarize any transcription (works with every OpenASR ASR model)
46
+ openasr transcribe meeting.wav --model xasr-zh-en --diarize --format srt
47
+ ```
48
+
49
+ ## πŸ“¦ Pack
50
+
51
+ | Quant | File (`.oasr`) | Size |
52
+ |:------|:---------------|-----:|
53
+ | f32 | `pyannote-segmentation-3.0-f32.oasr` | 6 MB |
54
+
55
+ <sub>Single raw-**f32** build: the pure-Rust forward pass consumes f32 directly and the
56
+ parity gates assert bit-exact outputs vs the upstream weights, so no integer
57
+ quantization is produced.</sub>
58
+
59
+ ## 🧠 About pyannote Segmentation 3.0
60
+
61
+ pyannote **segmentation-3.0** is the local speech-segmentation model from the pyannote speaker
62
+ diarization toolkit: a PyanNet (SincNet front-end + bidirectional LSTM) classifier over a 7-class
63
+ powerset that labels every 10 s window with which of up to three speakers are active β€” including
64
+ overlapped speech. OpenASR uses it as the optional segmentation stage of its model-agnostic
65
+ diarization pipeline: when this pack is installed, `--diarize` splits speech at speaker changes
66
+ instead of relying on coarse VAD slices, then the CAM++ embedder pack clusters the segments into
67
+ anonymous speaker turns. Weights are extracted from the un-gated, MIT-licensed
68
+ **onnx-community** ONNX mirror at a pinned revision and repackaged as a raw-f32 `.oasr` pack that
69
+ runs in pure Rust β€” no Python at inference time.
70
+
71
+ ## βš™οΈ How this pack was made
72
+
73
+ Converted from [onnx-community/pyannote-segmentation-3.0](https://huggingface.co/onnx-community/pyannote-segmentation-3.0) with the OpenASR importer:
74
+
75
+ ```bash
76
+ openasr model-pack import-pyannote-local <src>.safetensors <out>.oasr \
77
+ --package-id pyannote-segmentation-3.0
78
+ ```
79
+
80
+ The `.oasr` container is GGUF-backed; every tensor is stored as raw f32 so the
81
+ pack round-trips bit-identically against the source weights.
82
+
83
+ ## βš–οΈ License
84
+
85
+ This pack **inherits the upstream model's license: MIT**
86
+ ([source](https://huggingface.co/onnx-community/pyannote-segmentation-3.0)). OpenASR packaging retains the upstream copyright;
87
+ the only modification is format conversion.
88
+
89
+ ## πŸ™ Acknowledgements
90
+
91
+ This pack is a redistribution of **pyannote segmentation-3.0**, created by HervΓ© Bredin and the
92
+ **pyannote.audio** project, via the un-gated ONNX mirror
93
+ ([onnx-community/pyannote-segmentation-3.0](https://huggingface.co/onnx-community/pyannote-segmentation-3.0)).
94
+ All credit for the architecture, training, and weights belongs to the upstream authors; the license
95
+ is inherited from and identical to the upstream model (MIT).
96
+
97
+ ## πŸ”— Links
98
+
99
+ - πŸ¦€ **OpenASR** β€” <https://github.com/QuintinShaw/OpenASR>
100
+ - 🌐 **Website** β€” <https://openasr.org>
101
+ - πŸ€— **Upstream model** β€” [onnx-community/pyannote-segmentation-3.0](https://huggingface.co/onnx-community/pyannote-segmentation-3.0)
pyannote-segmentation-3.0-f32.oasr ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:48151e322a0a9bb318000994e33991bdeeedb14aec5c8ea4cdb0ad2f63cb60af
3
+ size 5975392