File size: 3,377 Bytes
df2625a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Community-1 artifact provenance

This document covers the supported Community-1 artifacts in repository snapshot
`1ed7a662fdc7109e36d822db793ee6eebdaf8594`. Exact artifact hashes are recorded
in `provenance.json`.

## Source mapping

| Converted artifact | Upstream input |
| --- | --- |
| `Segmentation` | `segmentation/pytorch_model.bin` |
| `Embedding` | `embedding/pytorch_model.bin` (WeSpeaker ResNet34) |
| `FBank` | Feature-extraction graph configured from the embedding checkpoint; no separate learned checkpoint |
| `PLDA`, `PldaRho` | `plda/plda.npz`, `plda/xvec_transform.npz` |
| PLDA JSON resources | The same two NPZ files, serialized as Float32 tensors |

The immutable upstream reference snapshot is
`pyannote/speaker-diarization-community-1@3533c8cf8e369892e6b79ff1bf80f7b0286a54ee`.
Its relevant file history identifies checkpoint commit
`5428423440de6baac451412694bb79a0ad644bea` and PLDA import commit
`7aa6699f402495053a3898e112874cb3e68ee064`.

The PLDA files are byte-identical to the BUT Speech@FIT files with these hashes:

| File | SHA-256 |
| --- | --- |
| `plda.npz` | `9b77bcd840692710dd3496f62ecfeed8d8e5f002fd991b785079b244eab7d255` |
| `xvec_transform.npz` | `325f1ce8e48f7e55e9c8aa47e05d2766b7c48c4b25b8de8dd751e7a4cc5fbe8f` |

All six tensors in the two published JSON resources exactly match these inputs
after conversion to Float32. The six constants derived by the published PLDA
transformation also occur byte-for-byte in `PldaRho.mlmodelc` at the locations
referenced by its MIL graph.

## Recorded conversion environment

The modern artifacts record:

- PyTorch 2.8.0
- coremltools 9.0b1
- TorchScript source dialect
- coremlc 3500.32.1
- MIL component 3500.14.1

The public conversion reference is Mobius commit
`33fd6eab634966ae7db4d73da3376a90379642fb`, including conversion and
compilation scripts plus the locked Python environment. That commit postdates
the artifact conversion dates, so it is a reference implementation rather than
an attestation of the exact historical build.

## Reproducible successor pipeline

Mobius commit `ffbc3c8cae2d0ac83912a005a25a2874ced98a3a` adds a release command that:

1. Rejects mutable or abbreviated upstream revisions.
2. Downloads material inputs from the selected immutable revision.
3. Embeds source paths, hashes, upstream revision, and converter revision in the
   generated Core ML packages and JSON resources.
4. Compiles the packages and emits `provenance.json` containing every input and
   output SHA-256 plus the build environment and commands.
5. Refuses release builds from a dirty converter checkout.

Example:

```bash
uv run python build-release.py \
  --upstream-revision 3533c8cf8e369892e6b79ff1bf80f7b0286a54ee \
  --work-dir ./build/community-1-3533c8cf \
  --release-dir ./build/release-3533c8cf \
  --selective-fp16
```

Access to the gated upstream model and acceptance of its user conditions are
required.

## Historical limitations

- The exact upstream checkout used for the original 2025 segmentation and
  embedding exports was not recorded.
- The exact historical converter commit, invocation, Xcode installation, and
  SDK were not recorded.
- The existing segmentation and embedding artifacts therefore remain
  historically reconstructed, not build-attested.
- The older `pyannote_segmentation` and `wespeaker*` artifacts are outside this
  document's scope.