fp16-safe conversions: segmentation fused-logsumexp tail, wespeaker guards to 0x1p-24
Browse files- CHECKSUMS.sha256 +25 -0
- README.md +68 -0
- pyannote_segmentation.mlmodelc/analytics/coremldata.bin +3 -0
- pyannote_segmentation.mlmodelc/coremldata.bin +3 -0
- pyannote_segmentation.mlmodelc/metadata.json +73 -0
- pyannote_segmentation.mlmodelc/model.mil +148 -0
- pyannote_segmentation.mlmodelc/weights/weight.bin +3 -0
- pyannote_segmentation.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
- pyannote_segmentation.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
- pyannote_segmentation.mlpackage/Manifest.json +18 -0
- wespeaker.mlmodelc/analytics/coremldata.bin +3 -0
- wespeaker.mlmodelc/coremldata.bin +3 -0
- wespeaker.mlmodelc/metadata.json +106 -0
- wespeaker.mlmodelc/model.mil +0 -0
- wespeaker.mlmodelc/weights/weight.bin +3 -0
- wespeaker.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
- wespeaker.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
- wespeaker.mlpackage/Manifest.json +18 -0
- wespeaker_int8.mlmodelc/analytics/coremldata.bin +3 -0
- wespeaker_int8.mlmodelc/coremldata.bin +3 -0
- wespeaker_int8.mlmodelc/metadata.json +106 -0
- wespeaker_int8.mlmodelc/model.mil +0 -0
- wespeaker_int8.mlmodelc/weights/weight.bin +3 -0
- wespeaker_int8.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
- wespeaker_int8.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
- wespeaker_int8.mlpackage/Manifest.json +18 -0
CHECKSUMS.sha256
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./CHECKSUMS.sha256
|
| 2 |
+
f283c01fa863188733c33c6fddac4c5dca42ca7cb22580918e1bc55877897e69 ./pyannote_segmentation.mlmodelc/analytics/coremldata.bin
|
| 3 |
+
e75fc0ac9641de87e3514369455c8c8a65b00aae339817b20642f115d5d8861e ./pyannote_segmentation.mlmodelc/coremldata.bin
|
| 4 |
+
2926b811344e40ab6ce5406354bf5aaac35a297d0e67e3c0d3f6dd766e9f5f8f ./pyannote_segmentation.mlmodelc/metadata.json
|
| 5 |
+
ded0d1ee11d77976b5c706ce667d0c8cb49977d3fe4367cccbd7b582bdb86dec ./pyannote_segmentation.mlmodelc/model.mil
|
| 6 |
+
0266f4ad4d843ecf31ef9220ad6b80616b3ec64a4404b64f3ea0371554e236ec ./pyannote_segmentation.mlmodelc/weights/weight.bin
|
| 7 |
+
45349a79cc3d2acdde0699d6c24a2d953e2f33600e35f2e3a3696a76ca0aa5d2 ./pyannote_segmentation.mlpackage/Data/com.apple.CoreML/model.mlmodel
|
| 8 |
+
0266f4ad4d843ecf31ef9220ad6b80616b3ec64a4404b64f3ea0371554e236ec ./pyannote_segmentation.mlpackage/Data/com.apple.CoreML/weights/weight.bin
|
| 9 |
+
d598581336168c03f0e782851d05f5f8405d5bdaaa7ea662ec4b9b4445a66f40 ./pyannote_segmentation.mlpackage/Manifest.json
|
| 10 |
+
4d7649edc0b071fecf4778bf533de05d6eadd5ade828179d30beaadb31258798 ./wespeaker_int8.mlmodelc/analytics/coremldata.bin
|
| 11 |
+
119a9f64487e7a6617b26b1c4420c48f4cf60397694ea24c6c3c53f6eaf88c3d ./wespeaker_int8.mlmodelc/coremldata.bin
|
| 12 |
+
b96c1cdd968230b5a79b75749d2f585779e2ca59ab8249f72a18a44e93471d0e ./wespeaker_int8.mlmodelc/metadata.json
|
| 13 |
+
7668b5eb56fbb3ba81c36a1a04aeadf0faa5f3d0d59ede28975909094ad22de0 ./wespeaker_int8.mlmodelc/model.mil
|
| 14 |
+
fb7310f849dd3db544fb016b0073d773e5293a26763a980a06d0834526f3a848 ./wespeaker_int8.mlmodelc/weights/weight.bin
|
| 15 |
+
5f8f14e1a044267294b1f554100cf9e3784e477ef575297b66f73d6251cc4317 ./wespeaker_int8.mlpackage/Data/com.apple.CoreML/model.mlmodel
|
| 16 |
+
fb7310f849dd3db544fb016b0073d773e5293a26763a980a06d0834526f3a848 ./wespeaker_int8.mlpackage/Data/com.apple.CoreML/weights/weight.bin
|
| 17 |
+
d0435814f5e227f1f07624718e2d151ab7f81da1b0750331549bc5605f322c39 ./wespeaker_int8.mlpackage/Manifest.json
|
| 18 |
+
30528b97b29e0f0221b99c1c3456484f3123a68214b777f324a8b85ef5634c9a ./wespeaker.mlmodelc/analytics/coremldata.bin
|
| 19 |
+
4a2840e7abc9aafa02ca23f6a3cb37fd8c8d9a95887336dae3d1e09f6ba7f9f6 ./wespeaker.mlmodelc/coremldata.bin
|
| 20 |
+
330d8018e32a2c056ace110b3079aafacaaef37f70eae6cdad7296e85e9687c1 ./wespeaker.mlmodelc/metadata.json
|
| 21 |
+
cff0cfe914078e9336754a9b38a68c2cdd88ca7b6bf97568ad551ab03ae1b666 ./wespeaker.mlmodelc/model.mil
|
| 22 |
+
680837ec172d67c3197bba93800e1623eebfd35c3b17011802f5f98b8026a0aa ./wespeaker.mlmodelc/weights/weight.bin
|
| 23 |
+
d6c4bb8b77eec2118f81506cdc18c75923f1ba6e6961d1ce51b0eeb73e3a592c ./wespeaker.mlpackage/Data/com.apple.CoreML/model.mlmodel
|
| 24 |
+
680837ec172d67c3197bba93800e1623eebfd35c3b17011802f5f98b8026a0aa ./wespeaker.mlpackage/Data/com.apple.CoreML/weights/weight.bin
|
| 25 |
+
a16e2bae11d61c54e2a7c400bfee151e1244233064f449ee28caf7ab6252b933 ./wespeaker.mlpackage/Manifest.json
|
README.md
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: other
|
| 3 |
+
license_name: mixed-upstream
|
| 4 |
+
license_link: https://github.com/pyannote/pyannote-audio
|
| 5 |
+
tags:
|
| 6 |
+
- coreml
|
| 7 |
+
- speaker-diarization
|
| 8 |
+
- pyannote
|
| 9 |
+
- wespeaker
|
| 10 |
+
- apple-neural-engine
|
| 11 |
+
library_name: coremlit
|
| 12 |
+
---
|
| 13 |
+
|
| 14 |
+
# speakerkit-coreml — fp16-safe CoreML conversions for speaker diarization
|
| 15 |
+
|
| 16 |
+
CoreML conversions of the pyannote community-1 diarization pipeline's neural components,
|
| 17 |
+
re-converted with **fp16-survivable numerical guards** so they are correct on the Apple
|
| 18 |
+
Neural Engine and GPU — not just CPU.
|
| 19 |
+
|
| 20 |
+
Consumed by the `speakerkit` crate of the [coremlit](https://github.com/findit-studio/coremlit)
|
| 21 |
+
workspace (Rust, sync, sans-I/O), feeding the `dia` diarization pipeline's clustering.
|
| 22 |
+
|
| 23 |
+
## Why these conversions exist
|
| 24 |
+
|
| 25 |
+
Stock conversions of these models carry numerical guard epsilons **below fp16's smallest
|
| 26 |
+
subnormal (`2^-24`)**. When a graph runs on the ANE (which computes in fp16 regardless of
|
| 27 |
+
the declared dtype), those guards round to zero:
|
| 28 |
+
|
| 29 |
+
- the segmentation model's `softmax → log(eps≈0)` tail saturates `log(0)` to **≈ −45440**,
|
| 30 |
+
which in the downstream pipeline collapsed an 8-speaker recording to 5 detected speakers
|
| 31 |
+
(16.6% DER, 100% confusion) while the ONNX reference was frame-perfect;
|
| 32 |
+
- the embedder's pooling `real_div` guards (`1e-8`) vanish the same way.
|
| 33 |
+
|
| 34 |
+
Even a *naive re-export* reproduces the defect: `torch.log_softmax` still lowers to the
|
| 35 |
+
decomposed `softmax → log(eps=0)` under coremltools 9.0. These conversions use an
|
| 36 |
+
explicitly **fused `x − logsumexp(x)`** tail and raise every guard constant to `0x1p-24`.
|
| 37 |
+
|
| 38 |
+
## Contents
|
| 39 |
+
|
| 40 |
+
| artifact | form | what it is |
|
| 41 |
+
|---|---|---|
|
| 42 |
+
| `pyannote_segmentation.{mlpackage,mlmodelc}` | fp16 | pyannote **segmentation-3.0** (PyanNet), fused log-probability tail |
|
| 43 |
+
| `wespeaker.{mlpackage,mlmodelc}` | fp32 weights | **WeSpeaker ResNet34-LM** speaker embedder, pooling guards raised to `0x1p-24` (otherwise bit-identical numerics to the stock conversion) |
|
| 44 |
+
| `wespeaker_int8.{mlpackage,mlmodelc}` | 8-bit palettized | same fixed embedder, k-means per-tensor palettization (~3.7× smaller, the production default) |
|
| 45 |
+
|
| 46 |
+
`.mlpackage` is the canonical distributable; `.mlmodelc` is the compiled form the test
|
| 47 |
+
suite consumes directly. `CHECKSUMS.sha256` covers every file.
|
| 48 |
+
|
| 49 |
+
## Verification (summary)
|
| 50 |
+
|
| 51 |
+
- Every graph passes a **MIL-level fp16-guard audit** (every guard's *effective floor*
|
| 52 |
+
≥ `2^-24`, constants followed through `cast`, unresolvable guards fail the audit).
|
| 53 |
+
- Segmentation: worst per-window delta vs the ONNX oracle dropped from **45,422 → 0.07**
|
| 54 |
+
(ANE), argmax agreement 100%; the 8-speaker collapse is fixed at model level.
|
| 55 |
+
- Embedder: All-vs-CPU cosine 1.0 on real speech; int8 clusters identically to fp32 on the
|
| 56 |
+
multi-speaker parity corpus (speaker counts never differ).
|
| 57 |
+
- Conversion toolchain pinned in the recipe: coremltools 9.0, torch 2.5.1, onnx 1.22.0,
|
| 58 |
+
python 3.11.15.
|
| 59 |
+
|
| 60 |
+
## Upstream provenance & licensing
|
| 61 |
+
|
| 62 |
+
| component | upstream | license |
|
| 63 |
+
|---|---|---|
|
| 64 |
+
| segmentation | [pyannote/segmentation-3.0](https://huggingface.co/pyannote/segmentation-3.0) (weights via its ONNX export) | MIT (upstream repo is access-gated; the MIT license permits redistribution with attribution — please also respect pyannote's usage conditions and cite their papers) |
|
| 65 |
+
| embedder | WeSpeaker ResNet34-LM (voxceleb) | Apache-2.0 (WeSpeaker project) |
|
| 66 |
+
|
| 67 |
+
These are *derivative conversions*: same weights, corrected graph numerics. If you are the
|
| 68 |
+
upstream author of either model and want changes to this redistribution, open a discussion.
|
pyannote_segmentation.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f283c01fa863188733c33c6fddac4c5dca42ca7cb22580918e1bc55877897e69
|
| 3 |
+
size 243
|
pyannote_segmentation.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e75fc0ac9641de87e3514369455c8c8a65b00aae339817b20642f115d5d8861e
|
| 3 |
+
size 518
|
pyannote_segmentation.mlmodelc/metadata.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"metadataOutputVersion" : "3.0",
|
| 4 |
+
"shortDescription" : "pyannote\/segmentation-3.0, epsilon-safe (reduce_log_sum_exp->sub tail)",
|
| 5 |
+
"outputSchema" : [
|
| 6 |
+
{
|
| 7 |
+
"hasShapeFlexibility" : "0",
|
| 8 |
+
"isOptional" : "0",
|
| 9 |
+
"dataType" : "Float32",
|
| 10 |
+
"formattedType" : "MultiArray (Float32 1 × 589 × 7)",
|
| 11 |
+
"shortDescription" : "",
|
| 12 |
+
"shape" : "[1, 589, 7]",
|
| 13 |
+
"name" : "segments",
|
| 14 |
+
"type" : "MultiArray"
|
| 15 |
+
}
|
| 16 |
+
],
|
| 17 |
+
"storagePrecision" : "Mixed (Float16, Float32)",
|
| 18 |
+
"modelParameters" : [
|
| 19 |
+
|
| 20 |
+
],
|
| 21 |
+
"author" : "Phase-A reconversion: segmentation-3.0.onnx, stable fused log-softmax",
|
| 22 |
+
"specificationVersion" : 6,
|
| 23 |
+
"mlProgramOperationTypeHistogram" : {
|
| 24 |
+
"Abs" : 1,
|
| 25 |
+
"InstanceNorm" : 4,
|
| 26 |
+
"Cast" : 4,
|
| 27 |
+
"Conv" : 3,
|
| 28 |
+
"MaxPool" : 3,
|
| 29 |
+
"Lstm" : 4,
|
| 30 |
+
"Transpose" : 2,
|
| 31 |
+
"Linear" : 3,
|
| 32 |
+
"ReduceLogSumExp" : 1,
|
| 33 |
+
"Sub" : 1,
|
| 34 |
+
"LeakyRelu" : 5
|
| 35 |
+
},
|
| 36 |
+
"computePrecision" : "Mixed (Float16, Float32, Int32)",
|
| 37 |
+
"isUpdatable" : "0",
|
| 38 |
+
"stateSchema" : [
|
| 39 |
+
|
| 40 |
+
],
|
| 41 |
+
"availability" : {
|
| 42 |
+
"macOS" : "12.0",
|
| 43 |
+
"tvOS" : "15.0",
|
| 44 |
+
"visionOS" : "1.0",
|
| 45 |
+
"watchOS" : "8.0",
|
| 46 |
+
"iOS" : "15.0",
|
| 47 |
+
"macCatalyst" : "15.0"
|
| 48 |
+
},
|
| 49 |
+
"modelType" : {
|
| 50 |
+
"name" : "MLModelType_mlProgram"
|
| 51 |
+
},
|
| 52 |
+
"inputSchema" : [
|
| 53 |
+
{
|
| 54 |
+
"hasShapeFlexibility" : "0",
|
| 55 |
+
"isOptional" : "0",
|
| 56 |
+
"dataType" : "Float32",
|
| 57 |
+
"formattedType" : "MultiArray (Float32 1 × 1 × 160000)",
|
| 58 |
+
"shortDescription" : "",
|
| 59 |
+
"shape" : "[1, 1, 160000]",
|
| 60 |
+
"name" : "audio",
|
| 61 |
+
"type" : "MultiArray"
|
| 62 |
+
}
|
| 63 |
+
],
|
| 64 |
+
"userDefinedMetadata" : {
|
| 65 |
+
"com.github.apple.coremltools.conversion_date" : "2026-07-16",
|
| 66 |
+
"com.github.apple.coremltools.source" : "torch==2.5.1",
|
| 67 |
+
"com.github.apple.coremltools.version" : "9.0",
|
| 68 |
+
"com.github.apple.coremltools.source_dialect" : "TorchScript"
|
| 69 |
+
},
|
| 70 |
+
"generatedClassName" : "pyannote_segmentation",
|
| 71 |
+
"method" : "predict"
|
| 72 |
+
}
|
| 73 |
+
]
|
pyannote_segmentation.mlmodelc/model.mil
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
program(1.0)
|
| 2 |
+
[buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3520.4.1"}, {"coremlc-version", "3520.5.1"}, {"coremltools-component-torch", "2.5.1"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0"}})]
|
| 3 |
+
{
|
| 4 |
+
func main<ios15>(tensor<fp32, [1, 1, 160000]> audio) {
|
| 5 |
+
tensor<string, []> audio_to_fp16_dtype_0 = const()[name = tensor<string, []>("audio_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
|
| 6 |
+
tensor<fp16, [1]> wav_norm1d_weight_to_fp16 = const()[name = tensor<string, []>("wav_norm1d_weight_to_fp16"), val = tensor<fp16, [1]>([0x1.44p-7])];
|
| 7 |
+
tensor<fp16, [1]> wav_norm1d_bias_to_fp16 = const()[name = tensor<string, []>("wav_norm1d_bias_to_fp16"), val = tensor<fp16, [1]>([0x1.734p-5])];
|
| 8 |
+
tensor<fp16, []> var_20_to_fp16 = const()[name = tensor<string, []>("op_20_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
|
| 9 |
+
tensor<fp16, [1, 1, 160000]> audio_to_fp16 = cast(dtype = audio_to_fp16_dtype_0, x = audio)[name = tensor<string, []>("cast_3")];
|
| 10 |
+
tensor<fp16, [1, 1, 160000]> input_1_cast_fp16 = instance_norm(beta = wav_norm1d_bias_to_fp16, epsilon = var_20_to_fp16, gamma = wav_norm1d_weight_to_fp16, x = audio_to_fp16)[name = tensor<string, []>("input_1_cast_fp16")];
|
| 11 |
+
tensor<string, []> var_38_pad_type_0 = const()[name = tensor<string, []>("op_38_pad_type_0"), val = tensor<string, []>("valid")];
|
| 12 |
+
tensor<int32, [1]> var_38_strides_0 = const()[name = tensor<string, []>("op_38_strides_0"), val = tensor<int32, [1]>([10])];
|
| 13 |
+
tensor<int32, [2]> var_38_pad_0 = const()[name = tensor<string, []>("op_38_pad_0"), val = tensor<int32, [2]>([0, 0])];
|
| 14 |
+
tensor<int32, [1]> var_38_dilations_0 = const()[name = tensor<string, []>("op_38_dilations_0"), val = tensor<int32, [1]>([1])];
|
| 15 |
+
tensor<int32, []> var_38_groups_0 = const()[name = tensor<string, []>("op_38_groups_0"), val = tensor<int32, []>(1)];
|
| 16 |
+
tensor<fp16, [80, 1, 251]> conv0_weight_to_fp16 = const()[name = tensor<string, []>("conv0_weight_to_fp16"), val = tensor<fp16, [80, 1, 251]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
|
| 17 |
+
tensor<fp16, [1, 80, 15975]> var_38_cast_fp16 = conv(dilations = var_38_dilations_0, groups = var_38_groups_0, pad = var_38_pad_0, pad_type = var_38_pad_type_0, strides = var_38_strides_0, weight = conv0_weight_to_fp16, x = input_1_cast_fp16)[name = tensor<string, []>("op_38_cast_fp16")];
|
| 18 |
+
tensor<fp16, [1, 80, 15975]> input_3_cast_fp16 = abs(x = var_38_cast_fp16)[name = tensor<string, []>("input_3_cast_fp16")];
|
| 19 |
+
tensor<int32, [1]> var_44 = const()[name = tensor<string, []>("op_44"), val = tensor<int32, [1]>([3])];
|
| 20 |
+
tensor<int32, [1]> var_45 = const()[name = tensor<string, []>("op_45"), val = tensor<int32, [1]>([3])];
|
| 21 |
+
tensor<string, []> input_5_pad_type_0 = const()[name = tensor<string, []>("input_5_pad_type_0"), val = tensor<string, []>("custom")];
|
| 22 |
+
tensor<int32, [2]> input_5_pad_0 = const()[name = tensor<string, []>("input_5_pad_0"), val = tensor<int32, [2]>([0, 0])];
|
| 23 |
+
tensor<bool, []> input_5_ceil_mode_0 = const()[name = tensor<string, []>("input_5_ceil_mode_0"), val = tensor<bool, []>(false)];
|
| 24 |
+
tensor<fp16, [1, 80, 5325]> input_5_cast_fp16 = max_pool(ceil_mode = input_5_ceil_mode_0, kernel_sizes = var_44, pad = input_5_pad_0, pad_type = input_5_pad_type_0, strides = var_45, x = input_3_cast_fp16)[name = tensor<string, []>("input_5_cast_fp16")];
|
| 25 |
+
tensor<fp16, [80]> norm0_weight_to_fp16 = const()[name = tensor<string, []>("norm0_weight_to_fp16"), val = tensor<fp16, [80]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(40320)))];
|
| 26 |
+
tensor<fp16, [80]> norm0_bias_to_fp16 = const()[name = tensor<string, []>("norm0_bias_to_fp16"), val = tensor<fp16, [80]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(40576)))];
|
| 27 |
+
tensor<fp16, []> var_49_to_fp16 = const()[name = tensor<string, []>("op_49_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
|
| 28 |
+
tensor<fp16, [1, 80, 5325]> input_7_cast_fp16 = instance_norm(beta = norm0_bias_to_fp16, epsilon = var_49_to_fp16, gamma = norm0_weight_to_fp16, x = input_5_cast_fp16)[name = tensor<string, []>("input_7_cast_fp16")];
|
| 29 |
+
tensor<fp16, []> var_56_to_fp16 = const()[name = tensor<string, []>("op_56_to_fp16"), val = tensor<fp16, []>(0x1.47cp-7)];
|
| 30 |
+
tensor<fp16, [1, 80, 5325]> input_9_cast_fp16 = leaky_relu(alpha = var_56_to_fp16, x = input_7_cast_fp16)[name = tensor<string, []>("input_9_cast_fp16")];
|
| 31 |
+
tensor<string, []> input_11_pad_type_0 = const()[name = tensor<string, []>("input_11_pad_type_0"), val = tensor<string, []>("valid")];
|
| 32 |
+
tensor<int32, [1]> input_11_strides_0 = const()[name = tensor<string, []>("input_11_strides_0"), val = tensor<int32, [1]>([1])];
|
| 33 |
+
tensor<int32, [2]> input_11_pad_0 = const()[name = tensor<string, []>("input_11_pad_0"), val = tensor<int32, [2]>([0, 0])];
|
| 34 |
+
tensor<int32, [1]> input_11_dilations_0 = const()[name = tensor<string, []>("input_11_dilations_0"), val = tensor<int32, [1]>([1])];
|
| 35 |
+
tensor<int32, []> input_11_groups_0 = const()[name = tensor<string, []>("input_11_groups_0"), val = tensor<int32, []>(1)];
|
| 36 |
+
tensor<fp16, [60, 80, 5]> conv1_weight_to_fp16 = const()[name = tensor<string, []>("conv1_weight_to_fp16"), val = tensor<fp16, [60, 80, 5]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(40832)))];
|
| 37 |
+
tensor<fp16, [60]> conv1_bias_to_fp16 = const()[name = tensor<string, []>("conv1_bias_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(88896)))];
|
| 38 |
+
tensor<fp16, [1, 60, 5321]> input_11_cast_fp16 = conv(bias = conv1_bias_to_fp16, dilations = input_11_dilations_0, groups = input_11_groups_0, pad = input_11_pad_0, pad_type = input_11_pad_type_0, strides = input_11_strides_0, weight = conv1_weight_to_fp16, x = input_9_cast_fp16)[name = tensor<string, []>("input_11_cast_fp16")];
|
| 39 |
+
tensor<int32, [1]> var_73 = const()[name = tensor<string, []>("op_73"), val = tensor<int32, [1]>([3])];
|
| 40 |
+
tensor<int32, [1]> var_74 = const()[name = tensor<string, []>("op_74"), val = tensor<int32, [1]>([3])];
|
| 41 |
+
tensor<string, []> input_13_pad_type_0 = const()[name = tensor<string, []>("input_13_pad_type_0"), val = tensor<string, []>("custom")];
|
| 42 |
+
tensor<int32, [2]> input_13_pad_0 = const()[name = tensor<string, []>("input_13_pad_0"), val = tensor<int32, [2]>([0, 0])];
|
| 43 |
+
tensor<bool, []> input_13_ceil_mode_0 = const()[name = tensor<string, []>("input_13_ceil_mode_0"), val = tensor<bool, []>(false)];
|
| 44 |
+
tensor<fp16, [1, 60, 1773]> input_13_cast_fp16 = max_pool(ceil_mode = input_13_ceil_mode_0, kernel_sizes = var_73, pad = input_13_pad_0, pad_type = input_13_pad_type_0, strides = var_74, x = input_11_cast_fp16)[name = tensor<string, []>("input_13_cast_fp16")];
|
| 45 |
+
tensor<fp16, [60]> norm1_weight_to_fp16 = const()[name = tensor<string, []>("norm1_weight_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(89088)))];
|
| 46 |
+
tensor<fp16, [60]> norm1_bias_to_fp16 = const()[name = tensor<string, []>("norm1_bias_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(89280)))];
|
| 47 |
+
tensor<fp16, []> var_78_to_fp16 = const()[name = tensor<string, []>("op_78_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
|
| 48 |
+
tensor<fp16, [1, 60, 1773]> input_15_cast_fp16 = instance_norm(beta = norm1_bias_to_fp16, epsilon = var_78_to_fp16, gamma = norm1_weight_to_fp16, x = input_13_cast_fp16)[name = tensor<string, []>("input_15_cast_fp16")];
|
| 49 |
+
tensor<fp16, []> var_85_to_fp16 = const()[name = tensor<string, []>("op_85_to_fp16"), val = tensor<fp16, []>(0x1.47cp-7)];
|
| 50 |
+
tensor<fp16, [1, 60, 1773]> input_17_cast_fp16 = leaky_relu(alpha = var_85_to_fp16, x = input_15_cast_fp16)[name = tensor<string, []>("input_17_cast_fp16")];
|
| 51 |
+
tensor<string, []> input_19_pad_type_0 = const()[name = tensor<string, []>("input_19_pad_type_0"), val = tensor<string, []>("valid")];
|
| 52 |
+
tensor<int32, [1]> input_19_strides_0 = const()[name = tensor<string, []>("input_19_strides_0"), val = tensor<int32, [1]>([1])];
|
| 53 |
+
tensor<int32, [2]> input_19_pad_0 = const()[name = tensor<string, []>("input_19_pad_0"), val = tensor<int32, [2]>([0, 0])];
|
| 54 |
+
tensor<int32, [1]> input_19_dilations_0 = const()[name = tensor<string, []>("input_19_dilations_0"), val = tensor<int32, [1]>([1])];
|
| 55 |
+
tensor<int32, []> input_19_groups_0 = const()[name = tensor<string, []>("input_19_groups_0"), val = tensor<int32, []>(1)];
|
| 56 |
+
tensor<fp16, [60, 60, 5]> conv2_weight_to_fp16 = const()[name = tensor<string, []>("conv2_weight_to_fp16"), val = tensor<fp16, [60, 60, 5]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(89472)))];
|
| 57 |
+
tensor<fp16, [60]> conv2_bias_to_fp16 = const()[name = tensor<string, []>("conv2_bias_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(125568)))];
|
| 58 |
+
tensor<fp16, [1, 60, 1769]> input_19_cast_fp16 = conv(bias = conv2_bias_to_fp16, dilations = input_19_dilations_0, groups = input_19_groups_0, pad = input_19_pad_0, pad_type = input_19_pad_type_0, strides = input_19_strides_0, weight = conv2_weight_to_fp16, x = input_17_cast_fp16)[name = tensor<string, []>("input_19_cast_fp16")];
|
| 59 |
+
tensor<int32, [1]> var_102 = const()[name = tensor<string, []>("op_102"), val = tensor<int32, [1]>([3])];
|
| 60 |
+
tensor<int32, [1]> var_103 = const()[name = tensor<string, []>("op_103"), val = tensor<int32, [1]>([3])];
|
| 61 |
+
tensor<string, []> input_21_pad_type_0 = const()[name = tensor<string, []>("input_21_pad_type_0"), val = tensor<string, []>("custom")];
|
| 62 |
+
tensor<int32, [2]> input_21_pad_0 = const()[name = tensor<string, []>("input_21_pad_0"), val = tensor<int32, [2]>([0, 0])];
|
| 63 |
+
tensor<bool, []> input_21_ceil_mode_0 = const()[name = tensor<string, []>("input_21_ceil_mode_0"), val = tensor<bool, []>(false)];
|
| 64 |
+
tensor<fp16, [1, 60, 589]> input_21_cast_fp16 = max_pool(ceil_mode = input_21_ceil_mode_0, kernel_sizes = var_102, pad = input_21_pad_0, pad_type = input_21_pad_type_0, strides = var_103, x = input_19_cast_fp16)[name = tensor<string, []>("input_21_cast_fp16")];
|
| 65 |
+
tensor<fp16, [60]> norm2_weight_to_fp16 = const()[name = tensor<string, []>("norm2_weight_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(125760)))];
|
| 66 |
+
tensor<fp16, [60]> norm2_bias_to_fp16 = const()[name = tensor<string, []>("norm2_bias_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(125952)))];
|
| 67 |
+
tensor<fp16, []> var_107_to_fp16 = const()[name = tensor<string, []>("op_107_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
|
| 68 |
+
tensor<fp16, [1, 60, 589]> input_23_cast_fp16 = instance_norm(beta = norm2_bias_to_fp16, epsilon = var_107_to_fp16, gamma = norm2_weight_to_fp16, x = input_21_cast_fp16)[name = tensor<string, []>("input_23_cast_fp16")];
|
| 69 |
+
tensor<fp16, []> var_114_to_fp16 = const()[name = tensor<string, []>("op_114_to_fp16"), val = tensor<fp16, []>(0x1.47cp-7)];
|
| 70 |
+
tensor<fp16, [1, 60, 589]> x_3_cast_fp16 = leaky_relu(alpha = var_114_to_fp16, x = input_23_cast_fp16)[name = tensor<string, []>("x_3_cast_fp16")];
|
| 71 |
+
tensor<int32, [3]> transpose_0_perm_0 = const()[name = tensor<string, []>("transpose_0_perm_0"), val = tensor<int32, [3]>([2, 0, 1])];
|
| 72 |
+
tensor<string, []> transpose_0_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("transpose_0_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
|
| 73 |
+
tensor<fp32, [512]> add_0 = const()[name = tensor<string, []>("add_0"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(126144)))];
|
| 74 |
+
tensor<fp32, [512]> add_1 = const()[name = tensor<string, []>("add_1"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(128256)))];
|
| 75 |
+
tensor<fp32, [512, 60]> concat_4 = const()[name = tensor<string, []>("concat_4"), val = tensor<fp32, [512, 60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(130368)))];
|
| 76 |
+
tensor<fp32, [512, 128]> concat_5 = const()[name = tensor<string, []>("concat_5"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(253312)))];
|
| 77 |
+
tensor<fp32, [512, 60]> concat_6 = const()[name = tensor<string, []>("concat_6"), val = tensor<fp32, [512, 60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(515520)))];
|
| 78 |
+
tensor<fp32, [512, 128]> concat_7 = const()[name = tensor<string, []>("concat_7"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(638464)))];
|
| 79 |
+
tensor<fp32, [1, 256]> input_27_batch_first_lstm_h0_reshaped = const()[name = tensor<string, []>("input_27_batch_first_lstm_h0_reshaped"), val = tensor<fp32, [1, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(900672)))];
|
| 80 |
+
tensor<string, []> input_27_batch_first_direction_0 = const()[name = tensor<string, []>("input_27_batch_first_direction_0"), val = tensor<string, []>("bidirectional")];
|
| 81 |
+
tensor<bool, []> input_27_batch_first_output_sequence_0 = const()[name = tensor<string, []>("input_27_batch_first_output_sequence_0"), val = tensor<bool, []>(true)];
|
| 82 |
+
tensor<string, []> input_27_batch_first_recurrent_activation_0 = const()[name = tensor<string, []>("input_27_batch_first_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
|
| 83 |
+
tensor<string, []> input_27_batch_first_cell_activation_0 = const()[name = tensor<string, []>("input_27_batch_first_cell_activation_0"), val = tensor<string, []>("tanh")];
|
| 84 |
+
tensor<string, []> input_27_batch_first_activation_0 = const()[name = tensor<string, []>("input_27_batch_first_activation_0"), val = tensor<string, []>("tanh")];
|
| 85 |
+
tensor<fp16, [589, 1, 60]> transpose_0_cast_fp16 = transpose(perm = transpose_0_perm_0, x = x_3_cast_fp16)[name = tensor<string, []>("transpose_2")];
|
| 86 |
+
tensor<fp32, [589, 1, 60]> transpose_0_cast_fp16_to_fp32 = cast(dtype = transpose_0_cast_fp16_to_fp32_dtype_0, x = transpose_0_cast_fp16)[name = tensor<string, []>("cast_2")];
|
| 87 |
+
tensor<fp32, [589, 1, 256]> input_27_batch_first_0, tensor<fp32, [1, 256]> input_27_batch_first_1, tensor<fp32, [1, 256]> input_27_batch_first_2 = lstm(activation = input_27_batch_first_activation_0, bias = add_0, bias_back = add_1, cell_activation = input_27_batch_first_cell_activation_0, direction = input_27_batch_first_direction_0, initial_c = input_27_batch_first_lstm_h0_reshaped, initial_h = input_27_batch_first_lstm_h0_reshaped, output_sequence = input_27_batch_first_output_sequence_0, recurrent_activation = input_27_batch_first_recurrent_activation_0, weight_hh = concat_5, weight_hh_back = concat_7, weight_ih = concat_4, weight_ih_back = concat_6, x = transpose_0_cast_fp16_to_fp32)[name = tensor<string, []>("input_27_batch_first")];
|
| 88 |
+
tensor<fp32, [512]> add_2 = const()[name = tensor<string, []>("add_2"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(901760)))];
|
| 89 |
+
tensor<fp32, [512]> add_3 = const()[name = tensor<string, []>("add_3"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(903872)))];
|
| 90 |
+
tensor<fp32, [512, 256]> concat_14 = const()[name = tensor<string, []>("concat_14"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(905984)))];
|
| 91 |
+
tensor<fp32, [512, 128]> concat_15 = const()[name = tensor<string, []>("concat_15"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1430336)))];
|
| 92 |
+
tensor<fp32, [512, 256]> concat_16 = const()[name = tensor<string, []>("concat_16"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1692544)))];
|
| 93 |
+
tensor<fp32, [512, 128]> concat_17 = const()[name = tensor<string, []>("concat_17"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2216896)))];
|
| 94 |
+
tensor<string, []> input_29_batch_first_direction_0 = const()[name = tensor<string, []>("input_29_batch_first_direction_0"), val = tensor<string, []>("bidirectional")];
|
| 95 |
+
tensor<bool, []> input_29_batch_first_output_sequence_0 = const()[name = tensor<string, []>("input_29_batch_first_output_sequence_0"), val = tensor<bool, []>(true)];
|
| 96 |
+
tensor<string, []> input_29_batch_first_recurrent_activation_0 = const()[name = tensor<string, []>("input_29_batch_first_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
|
| 97 |
+
tensor<string, []> input_29_batch_first_cell_activation_0 = const()[name = tensor<string, []>("input_29_batch_first_cell_activation_0"), val = tensor<string, []>("tanh")];
|
| 98 |
+
tensor<string, []> input_29_batch_first_activation_0 = const()[name = tensor<string, []>("input_29_batch_first_activation_0"), val = tensor<string, []>("tanh")];
|
| 99 |
+
tensor<fp32, [589, 1, 256]> input_29_batch_first_0, tensor<fp32, [1, 256]> input_29_batch_first_1, tensor<fp32, [1, 256]> input_29_batch_first_2 = lstm(activation = input_29_batch_first_activation_0, bias = add_2, bias_back = add_3, cell_activation = input_29_batch_first_cell_activation_0, direction = input_29_batch_first_direction_0, initial_c = input_27_batch_first_lstm_h0_reshaped, initial_h = input_27_batch_first_lstm_h0_reshaped, output_sequence = input_29_batch_first_output_sequence_0, recurrent_activation = input_29_batch_first_recurrent_activation_0, weight_hh = concat_15, weight_hh_back = concat_17, weight_ih = concat_14, weight_ih_back = concat_16, x = input_27_batch_first_0)[name = tensor<string, []>("input_29_batch_first")];
|
| 100 |
+
tensor<fp32, [512]> add_4 = const()[name = tensor<string, []>("add_4"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2479104)))];
|
| 101 |
+
tensor<fp32, [512]> add_5 = const()[name = tensor<string, []>("add_5"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2481216)))];
|
| 102 |
+
tensor<fp32, [512, 256]> concat_24 = const()[name = tensor<string, []>("concat_24"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2483328)))];
|
| 103 |
+
tensor<fp32, [512, 128]> concat_25 = const()[name = tensor<string, []>("concat_25"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(3007680)))];
|
| 104 |
+
tensor<fp32, [512, 256]> concat_26 = const()[name = tensor<string, []>("concat_26"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(3269888)))];
|
| 105 |
+
tensor<fp32, [512, 128]> concat_27 = const()[name = tensor<string, []>("concat_27"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(3794240)))];
|
| 106 |
+
tensor<string, []> input_31_batch_first_direction_0 = const()[name = tensor<string, []>("input_31_batch_first_direction_0"), val = tensor<string, []>("bidirectional")];
|
| 107 |
+
tensor<bool, []> input_31_batch_first_output_sequence_0 = const()[name = tensor<string, []>("input_31_batch_first_output_sequence_0"), val = tensor<bool, []>(true)];
|
| 108 |
+
tensor<string, []> input_31_batch_first_recurrent_activation_0 = const()[name = tensor<string, []>("input_31_batch_first_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
|
| 109 |
+
tensor<string, []> input_31_batch_first_cell_activation_0 = const()[name = tensor<string, []>("input_31_batch_first_cell_activation_0"), val = tensor<string, []>("tanh")];
|
| 110 |
+
tensor<string, []> input_31_batch_first_activation_0 = const()[name = tensor<string, []>("input_31_batch_first_activation_0"), val = tensor<string, []>("tanh")];
|
| 111 |
+
tensor<fp32, [589, 1, 256]> input_31_batch_first_0, tensor<fp32, [1, 256]> input_31_batch_first_1, tensor<fp32, [1, 256]> input_31_batch_first_2 = lstm(activation = input_31_batch_first_activation_0, bias = add_4, bias_back = add_5, cell_activation = input_31_batch_first_cell_activation_0, direction = input_31_batch_first_direction_0, initial_c = input_27_batch_first_lstm_h0_reshaped, initial_h = input_27_batch_first_lstm_h0_reshaped, output_sequence = input_31_batch_first_output_sequence_0, recurrent_activation = input_31_batch_first_recurrent_activation_0, weight_hh = concat_25, weight_hh_back = concat_27, weight_ih = concat_24, weight_ih_back = concat_26, x = input_29_batch_first_0)[name = tensor<string, []>("input_31_batch_first")];
|
| 112 |
+
tensor<fp32, [512]> add_6 = const()[name = tensor<string, []>("add_6"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4056448)))];
|
| 113 |
+
tensor<fp32, [512]> add_7 = const()[name = tensor<string, []>("add_7"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4058560)))];
|
| 114 |
+
tensor<fp32, [512, 256]> concat_34 = const()[name = tensor<string, []>("concat_34"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4060672)))];
|
| 115 |
+
tensor<fp32, [512, 128]> concat_35 = const()[name = tensor<string, []>("concat_35"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4585024)))];
|
| 116 |
+
tensor<fp32, [512, 256]> concat_36 = const()[name = tensor<string, []>("concat_36"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4847232)))];
|
| 117 |
+
tensor<fp32, [512, 128]> concat_37 = const()[name = tensor<string, []>("concat_37"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5371584)))];
|
| 118 |
+
tensor<string, []> input_33_batch_first_direction_0 = const()[name = tensor<string, []>("input_33_batch_first_direction_0"), val = tensor<string, []>("bidirectional")];
|
| 119 |
+
tensor<bool, []> input_33_batch_first_output_sequence_0 = const()[name = tensor<string, []>("input_33_batch_first_output_sequence_0"), val = tensor<bool, []>(true)];
|
| 120 |
+
tensor<string, []> input_33_batch_first_recurrent_activation_0 = const()[name = tensor<string, []>("input_33_batch_first_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
|
| 121 |
+
tensor<string, []> input_33_batch_first_cell_activation_0 = const()[name = tensor<string, []>("input_33_batch_first_cell_activation_0"), val = tensor<string, []>("tanh")];
|
| 122 |
+
tensor<string, []> input_33_batch_first_activation_0 = const()[name = tensor<string, []>("input_33_batch_first_activation_0"), val = tensor<string, []>("tanh")];
|
| 123 |
+
tensor<fp32, [589, 1, 256]> input_33_batch_first_0, tensor<fp32, [1, 256]> input_33_batch_first_1, tensor<fp32, [1, 256]> input_33_batch_first_2 = lstm(activation = input_33_batch_first_activation_0, bias = add_6, bias_back = add_7, cell_activation = input_33_batch_first_cell_activation_0, direction = input_33_batch_first_direction_0, initial_c = input_27_batch_first_lstm_h0_reshaped, initial_h = input_27_batch_first_lstm_h0_reshaped, output_sequence = input_33_batch_first_output_sequence_0, recurrent_activation = input_33_batch_first_recurrent_activation_0, weight_hh = concat_35, weight_hh_back = concat_37, weight_ih = concat_34, weight_ih_back = concat_36, x = input_31_batch_first_0)[name = tensor<string, []>("input_33_batch_first")];
|
| 124 |
+
tensor<int32, [3]> input_33_perm_0 = const()[name = tensor<string, []>("input_33_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
|
| 125 |
+
tensor<string, []> input_33_batch_first_0_to_fp16_dtype_0 = const()[name = tensor<string, []>("input_33_batch_first_0_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
|
| 126 |
+
tensor<fp16, [128, 256]> linear0_weight_to_fp16 = const()[name = tensor<string, []>("linear0_weight_to_fp16"), val = tensor<fp16, [128, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5633792)))];
|
| 127 |
+
tensor<fp16, [128]> linear0_bias_to_fp16 = const()[name = tensor<string, []>("linear0_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5699392)))];
|
| 128 |
+
tensor<fp16, [589, 1, 256]> input_33_batch_first_0_to_fp16 = cast(dtype = input_33_batch_first_0_to_fp16_dtype_0, x = input_33_batch_first_0)[name = tensor<string, []>("cast_1")];
|
| 129 |
+
tensor<fp16, [1, 589, 256]> input_33_cast_fp16 = transpose(perm = input_33_perm_0, x = input_33_batch_first_0_to_fp16)[name = tensor<string, []>("transpose_1")];
|
| 130 |
+
tensor<fp16, [1, 589, 128]> linear_0_cast_fp16 = linear(bias = linear0_bias_to_fp16, weight = linear0_weight_to_fp16, x = input_33_cast_fp16)[name = tensor<string, []>("linear_0_cast_fp16")];
|
| 131 |
+
tensor<fp16, []> var_234_to_fp16 = const()[name = tensor<string, []>("op_234_to_fp16"), val = tensor<fp16, []>(0x1.47cp-7)];
|
| 132 |
+
tensor<fp16, [1, 589, 128]> input_37_cast_fp16 = leaky_relu(alpha = var_234_to_fp16, x = linear_0_cast_fp16)[name = tensor<string, []>("input_37_cast_fp16")];
|
| 133 |
+
tensor<fp16, [128, 128]> linear1_weight_to_fp16 = const()[name = tensor<string, []>("linear1_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5699712)))];
|
| 134 |
+
tensor<fp16, [128]> linear1_bias_to_fp16 = const()[name = tensor<string, []>("linear1_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5732544)))];
|
| 135 |
+
tensor<fp16, [1, 589, 128]> linear_1_cast_fp16 = linear(bias = linear1_bias_to_fp16, weight = linear1_weight_to_fp16, x = input_37_cast_fp16)[name = tensor<string, []>("linear_1_cast_fp16")];
|
| 136 |
+
tensor<fp16, []> var_239_to_fp16 = const()[name = tensor<string, []>("op_239_to_fp16"), val = tensor<fp16, []>(0x1.47cp-7)];
|
| 137 |
+
tensor<fp16, [1, 589, 128]> input_cast_fp16 = leaky_relu(alpha = var_239_to_fp16, x = linear_1_cast_fp16)[name = tensor<string, []>("input_cast_fp16")];
|
| 138 |
+
tensor<fp16, [7, 128]> classifier_weight_to_fp16 = const()[name = tensor<string, []>("classifier_weight_to_fp16"), val = tensor<fp16, [7, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5732864)))];
|
| 139 |
+
tensor<fp16, [7]> classifier_bias_to_fp16 = const()[name = tensor<string, []>("classifier_bias_to_fp16"), val = tensor<fp16, [7]>([-0x1.01p+0, 0x1.67cp-2, 0x1.3d8p-1, 0x1.c8cp-2, -0x1.444p-2, -0x1.59p-1, -0x1.8fcp-2])];
|
| 140 |
+
tensor<fp16, [1, 589, 7]> linear_2_cast_fp16 = linear(bias = classifier_bias_to_fp16, weight = classifier_weight_to_fp16, x = input_cast_fp16)[name = tensor<string, []>("linear_2_cast_fp16")];
|
| 141 |
+
tensor<int32, [1]> var_247_axes_0 = const()[name = tensor<string, []>("op_247_axes_0"), val = tensor<int32, [1]>([-1])];
|
| 142 |
+
tensor<bool, []> var_247_keep_dims_0 = const()[name = tensor<string, []>("op_247_keep_dims_0"), val = tensor<bool, []>(true)];
|
| 143 |
+
tensor<fp16, [1, 589, 1]> var_247_cast_fp16 = reduce_log_sum_exp(axes = var_247_axes_0, keep_dims = var_247_keep_dims_0, x = linear_2_cast_fp16)[name = tensor<string, []>("op_247_cast_fp16")];
|
| 144 |
+
tensor<fp16, [1, 589, 7]> var_249_cast_fp16 = sub(x = linear_2_cast_fp16, y = var_247_cast_fp16)[name = tensor<string, []>("op_249_cast_fp16")];
|
| 145 |
+
tensor<string, []> var_249_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_249_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
|
| 146 |
+
tensor<fp32, [1, 589, 7]> segments = cast(dtype = var_249_cast_fp16_to_fp32_dtype_0, x = var_249_cast_fp16)[name = tensor<string, []>("cast_0")];
|
| 147 |
+
} -> (segments);
|
| 148 |
+
}
|
pyannote_segmentation.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0266f4ad4d843ecf31ef9220ad6b80616b3ec64a4404b64f3ea0371554e236ec
|
| 3 |
+
size 5734720
|
pyannote_segmentation.mlpackage/Data/com.apple.CoreML/model.mlmodel
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:45349a79cc3d2acdde0699d6c24a2d953e2f33600e35f2e3a3696a76ca0aa5d2
|
| 3 |
+
size 24289
|
pyannote_segmentation.mlpackage/Data/com.apple.CoreML/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0266f4ad4d843ecf31ef9220ad6b80616b3ec64a4404b64f3ea0371554e236ec
|
| 3 |
+
size 5734720
|
pyannote_segmentation.mlpackage/Manifest.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fileFormatVersion": "1.0.0",
|
| 3 |
+
"itemInfoEntries": {
|
| 4 |
+
"2AB5E6CE-0992-4457-BD72-544A89B64C74": {
|
| 5 |
+
"author": "com.apple.CoreML",
|
| 6 |
+
"description": "CoreML Model Weights",
|
| 7 |
+
"name": "weights",
|
| 8 |
+
"path": "com.apple.CoreML/weights"
|
| 9 |
+
},
|
| 10 |
+
"F4B9A266-717D-4897-82E1-28470E6A7FFC": {
|
| 11 |
+
"author": "com.apple.CoreML",
|
| 12 |
+
"description": "CoreML Model Specification",
|
| 13 |
+
"name": "model.mlmodel",
|
| 14 |
+
"path": "com.apple.CoreML/model.mlmodel"
|
| 15 |
+
}
|
| 16 |
+
},
|
| 17 |
+
"rootModelIdentifier": "F4B9A266-717D-4897-82E1-28470E6A7FFC"
|
| 18 |
+
}
|
wespeaker.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:30528b97b29e0f0221b99c1c3456484f3123a68214b777f324a8b85ef5634c9a
|
| 3 |
+
size 243
|
wespeaker.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4a2840e7abc9aafa02ca23f6a3cb37fd8c8d9a95887336dae3d1e09f6ba7f9f6
|
| 3 |
+
size 512
|
wespeaker.mlmodelc/metadata.json
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"metadataOutputVersion" : "3.0",
|
| 4 |
+
"shortDescription" : "WeSpeaker ResNet34-LM, epsilon-safe attentive-stat pooling divisor guard",
|
| 5 |
+
"outputSchema" : [
|
| 6 |
+
{
|
| 7 |
+
"hasShapeFlexibility" : "0",
|
| 8 |
+
"isOptional" : "0",
|
| 9 |
+
"dataType" : "Float32",
|
| 10 |
+
"formattedType" : "MultiArray (Float32)",
|
| 11 |
+
"shortDescription" : "",
|
| 12 |
+
"shape" : "[]",
|
| 13 |
+
"name" : "constant",
|
| 14 |
+
"type" : "MultiArray"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"hasShapeFlexibility" : "0",
|
| 18 |
+
"isOptional" : "0",
|
| 19 |
+
"dataType" : "Float32",
|
| 20 |
+
"formattedType" : "MultiArray (Float32 3 × 256)",
|
| 21 |
+
"shortDescription" : "",
|
| 22 |
+
"shape" : "[3, 256]",
|
| 23 |
+
"name" : "embedding",
|
| 24 |
+
"type" : "MultiArray"
|
| 25 |
+
}
|
| 26 |
+
],
|
| 27 |
+
"storagePrecision" : "Float32",
|
| 28 |
+
"modelParameters" : [
|
| 29 |
+
|
| 30 |
+
],
|
| 31 |
+
"author" : "Phase-A reconversion: wespeaker ResNet34-LM, attentive-pool eps 1e-8 -> 2^-24",
|
| 32 |
+
"specificationVersion" : 6,
|
| 33 |
+
"mlProgramOperationTypeHistogram" : {
|
| 34 |
+
"Transpose" : 4,
|
| 35 |
+
"Square" : 2,
|
| 36 |
+
"UpsampleNearestNeighbor" : 1,
|
| 37 |
+
"Squeeze" : 5,
|
| 38 |
+
"Sub" : 5,
|
| 39 |
+
"ReduceMean" : 2,
|
| 40 |
+
"Gather" : 2,
|
| 41 |
+
"Identity" : 1,
|
| 42 |
+
"Reshape" : 1,
|
| 43 |
+
"Matmul" : 2,
|
| 44 |
+
"Concat" : 1,
|
| 45 |
+
"Add" : 19,
|
| 46 |
+
"Sqrt" : 1,
|
| 47 |
+
"RealDiv" : 3,
|
| 48 |
+
"Pad" : 2,
|
| 49 |
+
"Linear" : 2,
|
| 50 |
+
"Relu" : 33,
|
| 51 |
+
"ExpandDims" : 11,
|
| 52 |
+
"Conv" : 36,
|
| 53 |
+
"Maximum" : 1,
|
| 54 |
+
"Log" : 1,
|
| 55 |
+
"SliceByIndex" : 1001,
|
| 56 |
+
"Stack" : 1,
|
| 57 |
+
"ReduceSum" : 4,
|
| 58 |
+
"Mul" : 8
|
| 59 |
+
},
|
| 60 |
+
"computePrecision" : "Mixed (Float32, Int32)",
|
| 61 |
+
"isUpdatable" : "0",
|
| 62 |
+
"stateSchema" : [
|
| 63 |
+
|
| 64 |
+
],
|
| 65 |
+
"availability" : {
|
| 66 |
+
"macOS" : "12.0",
|
| 67 |
+
"tvOS" : "15.0",
|
| 68 |
+
"visionOS" : "1.0",
|
| 69 |
+
"watchOS" : "8.0",
|
| 70 |
+
"iOS" : "15.0",
|
| 71 |
+
"macCatalyst" : "15.0"
|
| 72 |
+
},
|
| 73 |
+
"modelType" : {
|
| 74 |
+
"name" : "MLModelType_mlProgram"
|
| 75 |
+
},
|
| 76 |
+
"inputSchema" : [
|
| 77 |
+
{
|
| 78 |
+
"hasShapeFlexibility" : "0",
|
| 79 |
+
"isOptional" : "0",
|
| 80 |
+
"dataType" : "Float32",
|
| 81 |
+
"formattedType" : "MultiArray (Float32 3 × 160000)",
|
| 82 |
+
"shortDescription" : "",
|
| 83 |
+
"shape" : "[3, 160000]",
|
| 84 |
+
"name" : "waveform",
|
| 85 |
+
"type" : "MultiArray"
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"hasShapeFlexibility" : "0",
|
| 89 |
+
"isOptional" : "0",
|
| 90 |
+
"dataType" : "Float32",
|
| 91 |
+
"formattedType" : "MultiArray (Float32 3 × 589)",
|
| 92 |
+
"shortDescription" : "",
|
| 93 |
+
"shape" : "[3, 589]",
|
| 94 |
+
"name" : "mask",
|
| 95 |
+
"type" : "MultiArray"
|
| 96 |
+
}
|
| 97 |
+
],
|
| 98 |
+
"userDefinedMetadata" : {
|
| 99 |
+
"com.github.apple.coremltools.source_dialect" : "TorchScript",
|
| 100 |
+
"com.github.apple.coremltools.version" : "8.3.0",
|
| 101 |
+
"com.github.apple.coremltools.source" : "torch==2.6.0"
|
| 102 |
+
},
|
| 103 |
+
"generatedClassName" : "wespeaker",
|
| 104 |
+
"method" : "predict"
|
| 105 |
+
}
|
| 106 |
+
]
|
wespeaker.mlmodelc/model.mil
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
wespeaker.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:680837ec172d67c3197bba93800e1623eebfd35c3b17011802f5f98b8026a0aa
|
| 3 |
+
size 28706752
|
wespeaker.mlpackage/Data/com.apple.CoreML/model.mlmodel
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d6c4bb8b77eec2118f81506cdc18c75923f1ba6e6961d1ce51b0eeb73e3a592c
|
| 3 |
+
size 612953
|
wespeaker.mlpackage/Data/com.apple.CoreML/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:680837ec172d67c3197bba93800e1623eebfd35c3b17011802f5f98b8026a0aa
|
| 3 |
+
size 28706752
|
wespeaker.mlpackage/Manifest.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fileFormatVersion": "1.0.0",
|
| 3 |
+
"itemInfoEntries": {
|
| 4 |
+
"5D66401A-A11D-4CD9-88E0-39F3AAE8CBF8": {
|
| 5 |
+
"author": "com.apple.CoreML",
|
| 6 |
+
"description": "CoreML Model Specification",
|
| 7 |
+
"name": "model.mlmodel",
|
| 8 |
+
"path": "com.apple.CoreML/model.mlmodel"
|
| 9 |
+
},
|
| 10 |
+
"DFACC015-BD66-478C-97BF-63A2559637EA": {
|
| 11 |
+
"author": "com.apple.CoreML",
|
| 12 |
+
"description": "CoreML Model Weights",
|
| 13 |
+
"name": "weights",
|
| 14 |
+
"path": "com.apple.CoreML/weights"
|
| 15 |
+
}
|
| 16 |
+
},
|
| 17 |
+
"rootModelIdentifier": "5D66401A-A11D-4CD9-88E0-39F3AAE8CBF8"
|
| 18 |
+
}
|
wespeaker_int8.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4d7649edc0b071fecf4778bf533de05d6eadd5ade828179d30beaadb31258798
|
| 3 |
+
size 243
|
wespeaker_int8.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:119a9f64487e7a6617b26b1c4420c48f4cf60397694ea24c6c3c53f6eaf88c3d
|
| 3 |
+
size 529
|
wespeaker_int8.mlmodelc/metadata.json
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"metadataOutputVersion" : "3.0",
|
| 4 |
+
"shortDescription" : "WeSpeaker ResNet34-LM int8-palettized, epsilon-safe pooling guard",
|
| 5 |
+
"outputSchema" : [
|
| 6 |
+
{
|
| 7 |
+
"hasShapeFlexibility" : "0",
|
| 8 |
+
"isOptional" : "0",
|
| 9 |
+
"dataType" : "Float32",
|
| 10 |
+
"formattedType" : "MultiArray (Float32)",
|
| 11 |
+
"shortDescription" : "",
|
| 12 |
+
"shape" : "[]",
|
| 13 |
+
"name" : "constant",
|
| 14 |
+
"type" : "MultiArray"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"hasShapeFlexibility" : "0",
|
| 18 |
+
"isOptional" : "0",
|
| 19 |
+
"dataType" : "Float32",
|
| 20 |
+
"formattedType" : "MultiArray (Float32 3 × 256)",
|
| 21 |
+
"shortDescription" : "",
|
| 22 |
+
"shape" : "[3, 256]",
|
| 23 |
+
"name" : "embedding",
|
| 24 |
+
"type" : "MultiArray"
|
| 25 |
+
}
|
| 26 |
+
],
|
| 27 |
+
"storagePrecision" : "Mixed (Float32, Palettized (8 bits))",
|
| 28 |
+
"modelParameters" : [
|
| 29 |
+
|
| 30 |
+
],
|
| 31 |
+
"author" : "Phase-A reconversion: wespeaker ResNet34-LM, attentive-pool eps 1e-8 -> 2^-24 (int8 8-bit palettized)",
|
| 32 |
+
"specificationVersion" : 7,
|
| 33 |
+
"mlProgramOperationTypeHistogram" : {
|
| 34 |
+
"Transpose" : 4,
|
| 35 |
+
"UpsampleNearestNeighbor" : 1,
|
| 36 |
+
"Squeeze" : 5,
|
| 37 |
+
"Ios16.gather" : 2,
|
| 38 |
+
"Ios16.reduceMean" : 2,
|
| 39 |
+
"Ios16.linear" : 2,
|
| 40 |
+
"Ios16.add" : 19,
|
| 41 |
+
"Ios16.realDiv" : 3,
|
| 42 |
+
"Concat" : 1,
|
| 43 |
+
"Ios16.reduceSum" : 4,
|
| 44 |
+
"Ios16.square" : 2,
|
| 45 |
+
"Pad" : 2,
|
| 46 |
+
"Ios16.log" : 1,
|
| 47 |
+
"ExpandDims" : 11,
|
| 48 |
+
"Ios16.sub" : 5,
|
| 49 |
+
"Ios16.relu" : 33,
|
| 50 |
+
"Ios16.reshape" : 1,
|
| 51 |
+
"Ios16.constexprLutToDense" : 38,
|
| 52 |
+
"Ios16.matmul" : 2,
|
| 53 |
+
"SliceByIndex" : 1001,
|
| 54 |
+
"Stack" : 1,
|
| 55 |
+
"Ios16.maximum" : 1,
|
| 56 |
+
"Ios16.conv" : 36,
|
| 57 |
+
"Ios16.sqrt" : 1,
|
| 58 |
+
"Ios16.mul" : 8
|
| 59 |
+
},
|
| 60 |
+
"computePrecision" : "Mixed (Float32, Int32)",
|
| 61 |
+
"isUpdatable" : "0",
|
| 62 |
+
"stateSchema" : [
|
| 63 |
+
|
| 64 |
+
],
|
| 65 |
+
"availability" : {
|
| 66 |
+
"macOS" : "13.0",
|
| 67 |
+
"tvOS" : "16.0",
|
| 68 |
+
"visionOS" : "1.0",
|
| 69 |
+
"watchOS" : "9.0",
|
| 70 |
+
"iOS" : "16.0",
|
| 71 |
+
"macCatalyst" : "16.0"
|
| 72 |
+
},
|
| 73 |
+
"modelType" : {
|
| 74 |
+
"name" : "MLModelType_mlProgram"
|
| 75 |
+
},
|
| 76 |
+
"inputSchema" : [
|
| 77 |
+
{
|
| 78 |
+
"hasShapeFlexibility" : "0",
|
| 79 |
+
"isOptional" : "0",
|
| 80 |
+
"dataType" : "Float32",
|
| 81 |
+
"formattedType" : "MultiArray (Float32 3 × 160000)",
|
| 82 |
+
"shortDescription" : "",
|
| 83 |
+
"shape" : "[3, 160000]",
|
| 84 |
+
"name" : "waveform",
|
| 85 |
+
"type" : "MultiArray"
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"hasShapeFlexibility" : "0",
|
| 89 |
+
"isOptional" : "0",
|
| 90 |
+
"dataType" : "Float32",
|
| 91 |
+
"formattedType" : "MultiArray (Float32 3 × 589)",
|
| 92 |
+
"shortDescription" : "",
|
| 93 |
+
"shape" : "[3, 589]",
|
| 94 |
+
"name" : "mask",
|
| 95 |
+
"type" : "MultiArray"
|
| 96 |
+
}
|
| 97 |
+
],
|
| 98 |
+
"userDefinedMetadata" : {
|
| 99 |
+
"com.github.apple.coremltools.version" : "8.3.0",
|
| 100 |
+
"com.github.apple.coremltools.source" : "torch==2.6.0",
|
| 101 |
+
"com.github.apple.coremltools.source_dialect" : "TorchScript"
|
| 102 |
+
},
|
| 103 |
+
"generatedClassName" : "wespeaker_int8",
|
| 104 |
+
"method" : "predict"
|
| 105 |
+
}
|
| 106 |
+
]
|
wespeaker_int8.mlmodelc/model.mil
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
wespeaker_int8.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fb7310f849dd3db544fb016b0073d773e5293a26763a980a06d0834526f3a848
|
| 3 |
+
size 7243904
|
wespeaker_int8.mlpackage/Data/com.apple.CoreML/model.mlmodel
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5f8f14e1a044267294b1f554100cf9e3784e477ef575297b66f73d6251cc4317
|
| 3 |
+
size 618559
|
wespeaker_int8.mlpackage/Data/com.apple.CoreML/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fb7310f849dd3db544fb016b0073d773e5293a26763a980a06d0834526f3a848
|
| 3 |
+
size 7243904
|
wespeaker_int8.mlpackage/Manifest.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fileFormatVersion": "1.0.0",
|
| 3 |
+
"itemInfoEntries": {
|
| 4 |
+
"37DC31EE-89C9-4957-B431-8BF5CFAA8EFF": {
|
| 5 |
+
"author": "com.apple.CoreML",
|
| 6 |
+
"description": "CoreML Model Specification",
|
| 7 |
+
"name": "model.mlmodel",
|
| 8 |
+
"path": "com.apple.CoreML/model.mlmodel"
|
| 9 |
+
},
|
| 10 |
+
"BDEDC262-0C99-44CC-8757-C7E297D636DA": {
|
| 11 |
+
"author": "com.apple.CoreML",
|
| 12 |
+
"description": "CoreML Model Weights",
|
| 13 |
+
"name": "weights",
|
| 14 |
+
"path": "com.apple.CoreML/weights"
|
| 15 |
+
}
|
| 16 |
+
},
|
| 17 |
+
"rootModelIdentifier": "37DC31EE-89C9-4957-B431-8BF5CFAA8EFF"
|
| 18 |
+
}
|