Add parakeet-v3 scriptrs Core ML layout with license and provenance
Browse files- BUILD-MANIFEST.json +115 -0
- LICENSE +9 -0
- PROVENANCE.json +51 -0
- parakeet-v3/decoder.mlmodelc/analytics/coremldata.bin +3 -0
- parakeet-v3/decoder.mlmodelc/coremldata.bin +3 -0
- parakeet-v3/decoder.mlmodelc/metadata.json +123 -0
- parakeet-v3/decoder.mlmodelc/model.mil +73 -0
- parakeet-v3/decoder.mlmodelc/weights/weight.bin +3 -0
- parakeet-v3/encoder.mlmodelc/analytics/coremldata.bin +3 -0
- parakeet-v3/encoder.mlmodelc/coremldata.bin +3 -0
- parakeet-v3/encoder.mlmodelc/model.mil +0 -0
- parakeet-v3/encoder.mlmodelc/weights/weight.bin +3 -0
- parakeet-v3/joint-decision.mlmodelc/analytics/coremldata.bin +3 -0
- parakeet-v3/joint-decision.mlmodelc/coremldata.bin +3 -0
- parakeet-v3/joint-decision.mlmodelc/metadata.json +122 -0
- parakeet-v3/joint-decision.mlmodelc/model.mil +69 -0
- parakeet-v3/joint-decision.mlmodelc/weights/weight.bin +3 -0
- parakeet-v3/parakeet_vocab.json +0 -0
BUILD-MANIFEST.json
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"artifact_id": "parakeet-v3-scriptrs-coreml",
|
| 4 |
+
"files": [
|
| 5 |
+
{
|
| 6 |
+
"path": "LICENSE",
|
| 7 |
+
"size": 307,
|
| 8 |
+
"sha256": "7338ab38dc16cbe78a11795017aa64a3a898572302bc96ae536558cbac3cab4c",
|
| 9 |
+
"blake3": "e3345765789362de02affb66087126760b66ba762997f5c4a8584bc956cfc51d"
|
| 10 |
+
},
|
| 11 |
+
{
|
| 12 |
+
"path": "PROVENANCE.json",
|
| 13 |
+
"size": 1416,
|
| 14 |
+
"sha256": "6f0cd630aeb01c67e9fff2ecb5a5883cb333ad7479f52c7a400c93eae0153467",
|
| 15 |
+
"blake3": "38e647e5a8539c4ccbe58f362cfe23e9d13c899bac83f59e05b570d50591dbfb"
|
| 16 |
+
},
|
| 17 |
+
{
|
| 18 |
+
"path": "README.md",
|
| 19 |
+
"size": 1065,
|
| 20 |
+
"sha256": "c1de7cd2e37457ea0e6d11e4cc56f8d2a06b0847d2a4f08ef196e4e6a968992f",
|
| 21 |
+
"blake3": "36b14fea32c101a95f0936174ef8b64e3ae9371f55801d9268c3880767260575"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"path": "parakeet-v3/decoder.mlmodelc/analytics/coremldata.bin",
|
| 25 |
+
"size": 243,
|
| 26 |
+
"sha256": "4238c4e81ecd0dc94bd7dfbb60f7e2cc824107c1ffe0387b8607b72833dba350",
|
| 27 |
+
"blake3": "37bc29595d912cb08273a4b0b9a7c07e97c0f9a2b6153b6501bf393685efbf1a"
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"path": "parakeet-v3/decoder.mlmodelc/coremldata.bin",
|
| 31 |
+
"size": 554,
|
| 32 |
+
"sha256": "18647af085d87bd8f3121c8a9b4d4564c1ede038dab63d295b4e745cf2d7fb99",
|
| 33 |
+
"blake3": "5e41a6c3a2d46da38d75b5f9750220df5e90aab5404a0c962d7e3d1a893a624d"
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"path": "parakeet-v3/decoder.mlmodelc/metadata.json",
|
| 37 |
+
"size": 3427,
|
| 38 |
+
"sha256": "a39e93cd8371b8ded92635c7804fcd0590f0d1dd9415c6d19a0484be073077d9",
|
| 39 |
+
"blake3": "7bc3c0fb55bacc8458adb914e2e3d2f9fd8e7268aa0024b1595d69c8bbb79430"
|
| 40 |
+
},
|
| 41 |
+
{
|
| 42 |
+
"path": "parakeet-v3/decoder.mlmodelc/model.mil",
|
| 43 |
+
"size": 13110,
|
| 44 |
+
"sha256": "ef2a0a281695398a62fde86ac269c68f73d5b578d7ed3b31f2ba91a2d1ea1f35",
|
| 45 |
+
"blake3": "36a899a4dd8ca978511628046750d056e86dd5374d029615f3283eb110b3c2ba"
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"path": "parakeet-v3/decoder.mlmodelc/weights/weight.bin",
|
| 49 |
+
"size": 23604992,
|
| 50 |
+
"sha256": "48adf0f0d47c406c8253d4f7fef967436a39da14f5a65e66d5a4b407be355d41",
|
| 51 |
+
"blake3": "d3f18a59dc53234d3ff5abadae3a920b7367622524b5c25182afdea005ff73f3"
|
| 52 |
+
},
|
| 53 |
+
{
|
| 54 |
+
"path": "parakeet-v3/encoder.mlmodelc/analytics/coremldata.bin",
|
| 55 |
+
"size": 243,
|
| 56 |
+
"sha256": "af98d71151609799efbbffc00112fcba4bd91adf0b01135a982c574e91822f9c",
|
| 57 |
+
"blake3": "c441c08b593e52e2298ffd2546310a0b3f28c73f1eda3cc7157f983e152b2ec8"
|
| 58 |
+
},
|
| 59 |
+
{
|
| 60 |
+
"path": "parakeet-v3/encoder.mlmodelc/coremldata.bin",
|
| 61 |
+
"size": 478,
|
| 62 |
+
"sha256": "70628bd4fd25fb554cc0cebc31356723930c885480132bf3ecd1b5dbe71dd0a2",
|
| 63 |
+
"blake3": "d353d0ad1adf6195134c1d50e675f1f36e0205d54a4b50ac6193e2e80e13f9f2"
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"path": "parakeet-v3/encoder.mlmodelc/model.mil",
|
| 67 |
+
"size": 1002653,
|
| 68 |
+
"sha256": "abc621390840dd064e6833dc098101706621e47e17119ead904f8c383211dd1d",
|
| 69 |
+
"blake3": "55b0ad53056145764ccde3c0987eccef2ebea40e6381f3764c5f57629a9bbcbd"
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"path": "parakeet-v3/encoder.mlmodelc/weights/weight.bin",
|
| 73 |
+
"size": 594211328,
|
| 74 |
+
"sha256": "8d2c79e15a4545e08fe3a21fe741e42b8bf24329db81de8fdfacd92388ea5a66",
|
| 75 |
+
"blake3": "4248920ba109702d5227007c78b022385b1de0e2983b6123e29c0dff06979bea"
|
| 76 |
+
},
|
| 77 |
+
{
|
| 78 |
+
"path": "parakeet-v3/joint-decision.mlmodelc/analytics/coremldata.bin",
|
| 79 |
+
"size": 243,
|
| 80 |
+
"sha256": "26def4bf73dd56d29dee21c8ef97cb8969e62f6120ed1adc91e46828e2737b6c",
|
| 81 |
+
"blake3": "93ef661aba8d9f924f6d001a5069d6a77d4ff893d865eefbf901a19101cf29dc"
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"path": "parakeet-v3/joint-decision.mlmodelc/coremldata.bin",
|
| 85 |
+
"size": 521,
|
| 86 |
+
"sha256": "f5fc08b741400f0088492c9e839418b1e18522f19cba28d361dd030c5f398342",
|
| 87 |
+
"blake3": "00207e6661dd5c756656a19813de688523f052bda54f7c25ae363c6cdcf58a32"
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"path": "parakeet-v3/joint-decision.mlmodelc/metadata.json",
|
| 91 |
+
"size": 3453,
|
| 92 |
+
"sha256": "d9307211b9a37e0f0ac260c7660b1571a3de25841035cfdf9b58fd40425f890f",
|
| 93 |
+
"blake3": "34b08e4915fdd8fea950c48303ce9a3225ba53278326e0c4d4896dc4b694128b"
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"path": "parakeet-v3/joint-decision.mlmodelc/model.mil",
|
| 97 |
+
"size": 11775,
|
| 98 |
+
"sha256": "be60732943389a047175111a83f8839f3eb39d4803adafa828a0871b2f39818d",
|
| 99 |
+
"blake3": "228bd9efa45b8cab4db849462eb251460138392e0416c0693078cd6315c3b2bf"
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"path": "parakeet-v3/joint-decision.mlmodelc/weights/weight.bin",
|
| 103 |
+
"size": 12642764,
|
| 104 |
+
"sha256": "4e0e63d840032f7f07ddb1d64446051166281e5491bf22da8a945c41f6eedb3e",
|
| 105 |
+
"blake3": "8ca5f79fc3df24bd1b236461804a7e4e37d866fa3b52ca61c0f23d991e33b8ef"
|
| 106 |
+
},
|
| 107 |
+
{
|
| 108 |
+
"path": "parakeet-v3/parakeet_vocab.json",
|
| 109 |
+
"size": 151122,
|
| 110 |
+
"sha256": "7ec60e05f1b24480736ec0eed40900f4626bce1fa9a60fd700ec7e2a59198735",
|
| 111 |
+
"blake3": "811625fe5568b05a9e0e54923e2b7d915f1c84e13f9bd9b146eb85506ede8b0d"
|
| 112 |
+
}
|
| 113 |
+
],
|
| 114 |
+
"total_bytes": 631649694
|
| 115 |
+
}
|
LICENSE
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
SPDX-License-Identifier: CC-BY-4.0
|
| 2 |
+
|
| 3 |
+
Copyright (c) NVIDIA Corporation.
|
| 4 |
+
|
| 5 |
+
This Core ML bundle is a conversion of NVIDIA Parakeet TDT 0.6B v3
|
| 6 |
+
and is licensed under Creative Commons Attribution 4.0 International.
|
| 7 |
+
You must give appropriate credit to NVIDIA.
|
| 8 |
+
|
| 9 |
+
https://creativecommons.org/licenses/by/4.0/legalcode
|
PROVENANCE.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"artifact_id": "parakeet-v3-scriptrs-coreml",
|
| 4 |
+
"runtime": "scriptrs_coreml",
|
| 5 |
+
"license": "CC-BY-4.0",
|
| 6 |
+
"source": {
|
| 7 |
+
"repository": "nvidia/parakeet-tdt-0.6b-v3",
|
| 8 |
+
"revision": "541d1f99c6b0c3cd0b11a95167540bb8edefd82b"
|
| 9 |
+
},
|
| 10 |
+
"build_input": {
|
| 11 |
+
"repository": "FluidInference/parakeet-tdt-0.6b-v3-coreml",
|
| 12 |
+
"revision": "7dd20fe6b1797d35f5e3307e8b1732d9a178edfe"
|
| 13 |
+
},
|
| 14 |
+
"loader_reference": {
|
| 15 |
+
"repository": "FluidInference/FluidAudio",
|
| 16 |
+
"revision": "6428e29186573c6d33c598e25d460e6690bc0ee1",
|
| 17 |
+
"role": "model I/O reference only; not a runtime dependency"
|
| 18 |
+
},
|
| 19 |
+
"layout": {
|
| 20 |
+
"encoder": "parakeet-v3/encoder.mlmodelc",
|
| 21 |
+
"decoder": "parakeet-v3/decoder.mlmodelc",
|
| 22 |
+
"joint_decision": "parakeet-v3/joint-decision.mlmodelc",
|
| 23 |
+
"tokenizer": "parakeet-v3/parakeet_vocab.json"
|
| 24 |
+
},
|
| 25 |
+
"mapping": [
|
| 26 |
+
{
|
| 27 |
+
"from": "Encoder_v2.mlmodelc",
|
| 28 |
+
"to": "parakeet-v3/encoder.mlmodelc",
|
| 29 |
+
"role": "encoder"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"from": "Decoder.mlmodelc",
|
| 33 |
+
"to": "parakeet-v3/decoder.mlmodelc",
|
| 34 |
+
"role": "decoder"
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"from": "JointDecisionv3.mlmodelc",
|
| 38 |
+
"to": "parakeet-v3/joint-decision.mlmodelc",
|
| 39 |
+
"role": "joint_decision"
|
| 40 |
+
},
|
| 41 |
+
{
|
| 42 |
+
"from": "parakeet_vocab.json",
|
| 43 |
+
"to": "parakeet-v3/parakeet_vocab.json",
|
| 44 |
+
"role": "tokenizer"
|
| 45 |
+
}
|
| 46 |
+
],
|
| 47 |
+
"omitted": [
|
| 48 |
+
"Encoder.mlmodelc",
|
| 49 |
+
"Preprocessor.mlmodelc"
|
| 50 |
+
]
|
| 51 |
+
}
|
parakeet-v3/decoder.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4238c4e81ecd0dc94bd7dfbb60f7e2cc824107c1ffe0387b8607b72833dba350
|
| 3 |
+
size 243
|
parakeet-v3/decoder.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:18647af085d87bd8f3121c8a9b4d4564c1ede038dab63d295b4e745cf2d7fb99
|
| 3 |
+
size 554
|
parakeet-v3/decoder.mlmodelc/metadata.json
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"metadataOutputVersion" : "3.0",
|
| 4 |
+
"shortDescription" : "Parakeet decoder (RNNT prediction network)",
|
| 5 |
+
"outputSchema" : [
|
| 6 |
+
{
|
| 7 |
+
"hasShapeFlexibility" : "0",
|
| 8 |
+
"isOptional" : "0",
|
| 9 |
+
"dataType" : "Float32",
|
| 10 |
+
"formattedType" : "MultiArray (Float32 1 × 640 × 1)",
|
| 11 |
+
"shortDescription" : "",
|
| 12 |
+
"shape" : "[1, 640, 1]",
|
| 13 |
+
"name" : "decoder",
|
| 14 |
+
"type" : "MultiArray"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"hasShapeFlexibility" : "0",
|
| 18 |
+
"isOptional" : "0",
|
| 19 |
+
"dataType" : "Float32",
|
| 20 |
+
"formattedType" : "MultiArray (Float32 2 × 1 × 640)",
|
| 21 |
+
"shortDescription" : "",
|
| 22 |
+
"shape" : "[2, 1, 640]",
|
| 23 |
+
"name" : "h_out",
|
| 24 |
+
"type" : "MultiArray"
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"hasShapeFlexibility" : "0",
|
| 28 |
+
"isOptional" : "0",
|
| 29 |
+
"dataType" : "Float32",
|
| 30 |
+
"formattedType" : "MultiArray (Float32 2 × 1 × 640)",
|
| 31 |
+
"shortDescription" : "",
|
| 32 |
+
"shape" : "[2, 1, 640]",
|
| 33 |
+
"name" : "c_out",
|
| 34 |
+
"type" : "MultiArray"
|
| 35 |
+
}
|
| 36 |
+
],
|
| 37 |
+
"storagePrecision" : "Float16",
|
| 38 |
+
"modelParameters" : [
|
| 39 |
+
|
| 40 |
+
],
|
| 41 |
+
"author" : "Fluid Inference",
|
| 42 |
+
"specificationVersion" : 8,
|
| 43 |
+
"mlProgramOperationTypeHistogram" : {
|
| 44 |
+
"Select" : 1,
|
| 45 |
+
"Ios17.squeeze" : 4,
|
| 46 |
+
"Ios17.gather" : 1,
|
| 47 |
+
"Ios17.cast" : 8,
|
| 48 |
+
"Ios17.lstm" : 2,
|
| 49 |
+
"Split" : 2,
|
| 50 |
+
"Ios17.add" : 1,
|
| 51 |
+
"Ios17.transpose" : 2,
|
| 52 |
+
"Ios17.greaterEqual" : 1,
|
| 53 |
+
"Identity" : 1,
|
| 54 |
+
"Stack" : 2
|
| 55 |
+
},
|
| 56 |
+
"computePrecision" : "Mixed (Float16, Float32, Int16, Int32)",
|
| 57 |
+
"isUpdatable" : "0",
|
| 58 |
+
"stateSchema" : [
|
| 59 |
+
|
| 60 |
+
],
|
| 61 |
+
"availability" : {
|
| 62 |
+
"macOS" : "14.0",
|
| 63 |
+
"tvOS" : "17.0",
|
| 64 |
+
"visionOS" : "1.0",
|
| 65 |
+
"watchOS" : "10.0",
|
| 66 |
+
"iOS" : "17.0",
|
| 67 |
+
"macCatalyst" : "17.0"
|
| 68 |
+
},
|
| 69 |
+
"modelType" : {
|
| 70 |
+
"name" : "MLModelType_mlProgram"
|
| 71 |
+
},
|
| 72 |
+
"inputSchema" : [
|
| 73 |
+
{
|
| 74 |
+
"hasShapeFlexibility" : "0",
|
| 75 |
+
"isOptional" : "0",
|
| 76 |
+
"dataType" : "Int32",
|
| 77 |
+
"formattedType" : "MultiArray (Int32 1 × 1)",
|
| 78 |
+
"shortDescription" : "",
|
| 79 |
+
"shape" : "[1, 1]",
|
| 80 |
+
"name" : "targets",
|
| 81 |
+
"type" : "MultiArray"
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"hasShapeFlexibility" : "0",
|
| 85 |
+
"isOptional" : "0",
|
| 86 |
+
"dataType" : "Int32",
|
| 87 |
+
"formattedType" : "MultiArray (Int32 1)",
|
| 88 |
+
"shortDescription" : "",
|
| 89 |
+
"shape" : "[1]",
|
| 90 |
+
"name" : "target_length",
|
| 91 |
+
"type" : "MultiArray"
|
| 92 |
+
},
|
| 93 |
+
{
|
| 94 |
+
"hasShapeFlexibility" : "0",
|
| 95 |
+
"isOptional" : "0",
|
| 96 |
+
"dataType" : "Float32",
|
| 97 |
+
"formattedType" : "MultiArray (Float32 2 × 1 × 640)",
|
| 98 |
+
"shortDescription" : "",
|
| 99 |
+
"shape" : "[2, 1, 640]",
|
| 100 |
+
"name" : "h_in",
|
| 101 |
+
"type" : "MultiArray"
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"hasShapeFlexibility" : "0",
|
| 105 |
+
"isOptional" : "0",
|
| 106 |
+
"dataType" : "Float32",
|
| 107 |
+
"formattedType" : "MultiArray (Float32 2 × 1 × 640)",
|
| 108 |
+
"shortDescription" : "",
|
| 109 |
+
"shape" : "[2, 1, 640]",
|
| 110 |
+
"name" : "c_in",
|
| 111 |
+
"type" : "MultiArray"
|
| 112 |
+
}
|
| 113 |
+
],
|
| 114 |
+
"userDefinedMetadata" : {
|
| 115 |
+
"com.github.apple.coremltools.conversion_date" : "2025-09-19",
|
| 116 |
+
"com.github.apple.coremltools.source" : "torch==2.7.0",
|
| 117 |
+
"com.github.apple.coremltools.version" : "9.0b1",
|
| 118 |
+
"com.github.apple.coremltools.source_dialect" : "TorchScript"
|
| 119 |
+
},
|
| 120 |
+
"generatedClassName" : "parakeet_decoder",
|
| 121 |
+
"method" : "predict"
|
| 122 |
+
}
|
| 123 |
+
]
|
parakeet-v3/decoder.mlmodelc/model.mil
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
program(1.0)
|
| 2 |
+
[buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3500.14.1"}, {"coremlc-version", "3500.32.1"}, {"coremltools-component-torch", "2.7.0"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0b1"}})]
|
| 3 |
+
{
|
| 4 |
+
func main<ios17>(tensor<fp32, [2, 1, 640]> c_in, tensor<fp32, [2, 1, 640]> h_in, tensor<int32, [1]> target_length, tensor<int32, [1, 1]> targets) {
|
| 5 |
+
tensor<int32, []> y_batch_dims_0 = const()[name = tensor<string, []>("y_batch_dims_0"), val = tensor<int32, []>(0)];
|
| 6 |
+
tensor<bool, []> y_validate_indices_0 = const()[name = tensor<string, []>("y_validate_indices_0"), val = tensor<bool, []>(false)];
|
| 7 |
+
tensor<fp16, [8193, 640]> module_prediction_embed_weight_to_fp16 = const()[name = tensor<string, []>("module_prediction_embed_weight_to_fp16"), val = tensor<fp16, [8193, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
|
| 8 |
+
tensor<string, []> targets_to_int16_dtype_0 = const()[name = tensor<string, []>("targets_to_int16_dtype_0"), val = tensor<string, []>("int16")];
|
| 9 |
+
tensor<string, []> cast_1_dtype_0 = const()[name = tensor<string, []>("cast_1_dtype_0"), val = tensor<string, []>("int32")];
|
| 10 |
+
tensor<int32, []> greater_equal_0_y_0 = const()[name = tensor<string, []>("greater_equal_0_y_0"), val = tensor<int32, []>(0)];
|
| 11 |
+
tensor<int16, [1, 1]> targets_to_int16 = cast(dtype = targets_to_int16_dtype_0, x = targets)[name = tensor<string, []>("cast_9")];
|
| 12 |
+
tensor<int32, [1, 1]> cast_1 = cast(dtype = cast_1_dtype_0, x = targets_to_int16)[name = tensor<string, []>("cast_8")];
|
| 13 |
+
tensor<bool, [1, 1]> greater_equal_0 = greater_equal(x = cast_1, y = greater_equal_0_y_0)[name = tensor<string, []>("greater_equal_0")];
|
| 14 |
+
tensor<int32, []> slice_by_index_0 = const()[name = tensor<string, []>("slice_by_index_0"), val = tensor<int32, []>(8193)];
|
| 15 |
+
tensor<int32, [1, 1]> add_2 = add(x = cast_1, y = slice_by_index_0)[name = tensor<string, []>("add_2")];
|
| 16 |
+
tensor<int32, [1, 1]> select_0 = select(a = cast_1, b = add_2, cond = greater_equal_0)[name = tensor<string, []>("select_0")];
|
| 17 |
+
tensor<int32, []> y_cast_fp16_cast_uint16_axis_0 = const()[name = tensor<string, []>("y_cast_fp16_cast_uint16_axis_0"), val = tensor<int32, []>(0)];
|
| 18 |
+
tensor<string, []> select_0_to_int16_dtype_0 = const()[name = tensor<string, []>("select_0_to_int16_dtype_0"), val = tensor<string, []>("int16")];
|
| 19 |
+
tensor<int16, [1, 1]> select_0_to_int16 = cast(dtype = select_0_to_int16_dtype_0, x = select_0)[name = tensor<string, []>("cast_7")];
|
| 20 |
+
tensor<fp16, [1, 1, 640]> y_cast_fp16_cast_uint16_cast_uint16 = gather(axis = y_cast_fp16_cast_uint16_axis_0, batch_dims = y_batch_dims_0, indices = select_0_to_int16, validate_indices = y_validate_indices_0, x = module_prediction_embed_weight_to_fp16)[name = tensor<string, []>("y_cast_fp16_cast_uint16_cast_uint16")];
|
| 21 |
+
tensor<int32, [3]> input_3_perm_0 = const()[name = tensor<string, []>("input_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
|
| 22 |
+
tensor<int32, []> split_0_num_splits_0 = const()[name = tensor<string, []>("split_0_num_splits_0"), val = tensor<int32, []>(2)];
|
| 23 |
+
tensor<int32, []> split_0_axis_0 = const()[name = tensor<string, []>("split_0_axis_0"), val = tensor<int32, []>(0)];
|
| 24 |
+
tensor<string, []> h_in_to_fp16_dtype_0 = const()[name = tensor<string, []>("h_in_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
|
| 25 |
+
tensor<fp16, [2, 1, 640]> h_in_to_fp16 = cast(dtype = h_in_to_fp16_dtype_0, x = h_in)[name = tensor<string, []>("cast_6")];
|
| 26 |
+
tensor<fp16, [1, 1, 640]> split_0_cast_fp16_0, tensor<fp16, [1, 1, 640]> split_0_cast_fp16_1 = split(axis = split_0_axis_0, num_splits = split_0_num_splits_0, x = h_in_to_fp16)[name = tensor<string, []>("split_0_cast_fp16")];
|
| 27 |
+
tensor<int32, []> split_1_num_splits_0 = const()[name = tensor<string, []>("split_1_num_splits_0"), val = tensor<int32, []>(2)];
|
| 28 |
+
tensor<int32, []> split_1_axis_0 = const()[name = tensor<string, []>("split_1_axis_0"), val = tensor<int32, []>(0)];
|
| 29 |
+
tensor<string, []> c_in_to_fp16_dtype_0 = const()[name = tensor<string, []>("c_in_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
|
| 30 |
+
tensor<fp16, [2, 1, 640]> c_in_to_fp16 = cast(dtype = c_in_to_fp16_dtype_0, x = c_in)[name = tensor<string, []>("cast_5")];
|
| 31 |
+
tensor<fp16, [1, 1, 640]> split_1_cast_fp16_0, tensor<fp16, [1, 1, 640]> split_1_cast_fp16_1 = split(axis = split_1_axis_0, num_splits = split_1_num_splits_0, x = c_in_to_fp16)[name = tensor<string, []>("split_1_cast_fp16")];
|
| 32 |
+
tensor<int32, [1]> input_lstm_layer_0_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_layer_0_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
|
| 33 |
+
tensor<fp16, [1, 640]> input_lstm_layer_0_lstm_h0_squeeze_cast_fp16 = squeeze(axes = input_lstm_layer_0_lstm_h0_squeeze_axes_0, x = split_0_cast_fp16_0)[name = tensor<string, []>("input_lstm_layer_0_lstm_h0_squeeze_cast_fp16")];
|
| 34 |
+
tensor<int32, [1]> input_lstm_layer_0_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_layer_0_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
|
| 35 |
+
tensor<fp16, [1, 640]> input_lstm_layer_0_lstm_c0_squeeze_cast_fp16 = squeeze(axes = input_lstm_layer_0_lstm_c0_squeeze_axes_0, x = split_1_cast_fp16_0)[name = tensor<string, []>("input_lstm_layer_0_lstm_c0_squeeze_cast_fp16")];
|
| 36 |
+
tensor<string, []> input_lstm_layer_0_direction_0 = const()[name = tensor<string, []>("input_lstm_layer_0_direction_0"), val = tensor<string, []>("forward")];
|
| 37 |
+
tensor<bool, []> input_lstm_layer_0_output_sequence_0 = const()[name = tensor<string, []>("input_lstm_layer_0_output_sequence_0"), val = tensor<bool, []>(true)];
|
| 38 |
+
tensor<string, []> input_lstm_layer_0_recurrent_activation_0 = const()[name = tensor<string, []>("input_lstm_layer_0_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
|
| 39 |
+
tensor<string, []> input_lstm_layer_0_cell_activation_0 = const()[name = tensor<string, []>("input_lstm_layer_0_cell_activation_0"), val = tensor<string, []>("tanh")];
|
| 40 |
+
tensor<string, []> input_lstm_layer_0_activation_0 = const()[name = tensor<string, []>("input_lstm_layer_0_activation_0"), val = tensor<string, []>("tanh")];
|
| 41 |
+
tensor<fp16, [2560, 640]> concat_1_to_fp16 = const()[name = tensor<string, []>("concat_1_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(10487168)))];
|
| 42 |
+
tensor<fp16, [2560, 640]> concat_2_to_fp16 = const()[name = tensor<string, []>("concat_2_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(13764032)))];
|
| 43 |
+
tensor<fp16, [2560]> concat_0_to_fp16 = const()[name = tensor<string, []>("concat_0_to_fp16"), val = tensor<fp16, [2560]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(17040896)))];
|
| 44 |
+
tensor<fp16, [1, 1, 640]> input_3_cast_fp16 = transpose(perm = input_3_perm_0, x = y_cast_fp16_cast_uint16_cast_uint16)[name = tensor<string, []>("transpose_2")];
|
| 45 |
+
tensor<fp16, [1, 1, 640]> input_lstm_layer_0_cast_fp16_0, tensor<fp16, [1, 640]> input_lstm_layer_0_cast_fp16_1, tensor<fp16, [1, 640]> input_lstm_layer_0_cast_fp16_2 = lstm(activation = input_lstm_layer_0_activation_0, bias = concat_0_to_fp16, cell_activation = input_lstm_layer_0_cell_activation_0, direction = input_lstm_layer_0_direction_0, initial_c = input_lstm_layer_0_lstm_c0_squeeze_cast_fp16, initial_h = input_lstm_layer_0_lstm_h0_squeeze_cast_fp16, output_sequence = input_lstm_layer_0_output_sequence_0, recurrent_activation = input_lstm_layer_0_recurrent_activation_0, weight_hh = concat_2_to_fp16, weight_ih = concat_1_to_fp16, x = input_3_cast_fp16)[name = tensor<string, []>("input_lstm_layer_0_cast_fp16")];
|
| 46 |
+
tensor<int32, [1]> input_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
|
| 47 |
+
tensor<fp16, [1, 640]> input_lstm_h0_squeeze_cast_fp16 = squeeze(axes = input_lstm_h0_squeeze_axes_0, x = split_0_cast_fp16_1)[name = tensor<string, []>("input_lstm_h0_squeeze_cast_fp16")];
|
| 48 |
+
tensor<int32, [1]> input_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
|
| 49 |
+
tensor<fp16, [1, 640]> input_lstm_c0_squeeze_cast_fp16 = squeeze(axes = input_lstm_c0_squeeze_axes_0, x = split_1_cast_fp16_1)[name = tensor<string, []>("input_lstm_c0_squeeze_cast_fp16")];
|
| 50 |
+
tensor<string, []> input_direction_0 = const()[name = tensor<string, []>("input_direction_0"), val = tensor<string, []>("forward")];
|
| 51 |
+
tensor<bool, []> input_output_sequence_0 = const()[name = tensor<string, []>("input_output_sequence_0"), val = tensor<bool, []>(true)];
|
| 52 |
+
tensor<string, []> input_recurrent_activation_0 = const()[name = tensor<string, []>("input_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
|
| 53 |
+
tensor<string, []> input_cell_activation_0 = const()[name = tensor<string, []>("input_cell_activation_0"), val = tensor<string, []>("tanh")];
|
| 54 |
+
tensor<string, []> input_activation_0 = const()[name = tensor<string, []>("input_activation_0"), val = tensor<string, []>("tanh")];
|
| 55 |
+
tensor<fp16, [2560, 640]> concat_4_to_fp16 = const()[name = tensor<string, []>("concat_4_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(17046080)))];
|
| 56 |
+
tensor<fp16, [2560, 640]> concat_5_to_fp16 = const()[name = tensor<string, []>("concat_5_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(20322944)))];
|
| 57 |
+
tensor<fp16, [2560]> concat_3_to_fp16 = const()[name = tensor<string, []>("concat_3_to_fp16"), val = tensor<fp16, [2560]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(23599808)))];
|
| 58 |
+
tensor<fp16, [1, 1, 640]> input_cast_fp16_0, tensor<fp16, [1, 640]> input_cast_fp16_1, tensor<fp16, [1, 640]> input_cast_fp16_2 = lstm(activation = input_activation_0, bias = concat_3_to_fp16, cell_activation = input_cell_activation_0, direction = input_direction_0, initial_c = input_lstm_c0_squeeze_cast_fp16, initial_h = input_lstm_h0_squeeze_cast_fp16, output_sequence = input_output_sequence_0, recurrent_activation = input_recurrent_activation_0, weight_hh = concat_5_to_fp16, weight_ih = concat_4_to_fp16, x = input_lstm_layer_0_cast_fp16_0)[name = tensor<string, []>("input_cast_fp16")];
|
| 59 |
+
tensor<int32, []> obj_3_axis_0 = const()[name = tensor<string, []>("obj_3_axis_0"), val = tensor<int32, []>(0)];
|
| 60 |
+
tensor<fp16, [2, 1, 640]> obj_3_cast_fp16 = stack(axis = obj_3_axis_0, values = (input_lstm_layer_0_cast_fp16_1, input_cast_fp16_1))[name = tensor<string, []>("obj_3_cast_fp16")];
|
| 61 |
+
tensor<string, []> obj_3_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("obj_3_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
|
| 62 |
+
tensor<int32, []> obj_axis_0 = const()[name = tensor<string, []>("obj_axis_0"), val = tensor<int32, []>(0)];
|
| 63 |
+
tensor<fp16, [2, 1, 640]> obj_cast_fp16 = stack(axis = obj_axis_0, values = (input_lstm_layer_0_cast_fp16_2, input_cast_fp16_2))[name = tensor<string, []>("obj_cast_fp16")];
|
| 64 |
+
tensor<string, []> obj_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("obj_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
|
| 65 |
+
tensor<int32, [3]> transpose_0_perm_0 = const()[name = tensor<string, []>("transpose_0_perm_0"), val = tensor<int32, [3]>([1, 2, 0])];
|
| 66 |
+
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")];
|
| 67 |
+
tensor<fp16, [1, 640, 1]> transpose_0_cast_fp16 = transpose(perm = transpose_0_perm_0, x = input_cast_fp16_0)[name = tensor<string, []>("transpose_1")];
|
| 68 |
+
tensor<fp32, [1, 640, 1]> decoder = cast(dtype = transpose_0_cast_fp16_to_fp32_dtype_0, x = transpose_0_cast_fp16)[name = tensor<string, []>("cast_2")];
|
| 69 |
+
tensor<fp32, [2, 1, 640]> c_out = cast(dtype = obj_cast_fp16_to_fp32_dtype_0, x = obj_cast_fp16)[name = tensor<string, []>("cast_3")];
|
| 70 |
+
tensor<fp32, [2, 1, 640]> h_out = cast(dtype = obj_3_cast_fp16_to_fp32_dtype_0, x = obj_3_cast_fp16)[name = tensor<string, []>("cast_4")];
|
| 71 |
+
tensor<int32, [1]> target_length_tmp = identity(x = target_length)[name = tensor<string, []>("target_length_tmp")];
|
| 72 |
+
} -> (decoder, h_out, c_out);
|
| 73 |
+
}
|
parakeet-v3/decoder.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:48adf0f0d47c406c8253d4f7fef967436a39da14f5a65e66d5a4b407be355d41
|
| 3 |
+
size 23604992
|
parakeet-v3/encoder.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:af98d71151609799efbbffc00112fcba4bd91adf0b01135a982c574e91822f9c
|
| 3 |
+
size 243
|
parakeet-v3/encoder.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:70628bd4fd25fb554cc0cebc31356723930c885480132bf3ecd1b5dbe71dd0a2
|
| 3 |
+
size 478
|
parakeet-v3/encoder.mlmodelc/model.mil
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
parakeet-v3/encoder.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8d2c79e15a4545e08fe3a21fe741e42b8bf24329db81de8fdfacd92388ea5a66
|
| 3 |
+
size 594211328
|
parakeet-v3/joint-decision.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:26def4bf73dd56d29dee21c8ef97cb8969e62f6120ed1adc91e46828e2737b6c
|
| 3 |
+
size 243
|
parakeet-v3/joint-decision.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f5fc08b741400f0088492c9e839418b1e18522f19cba28d361dd030c5f398342
|
| 3 |
+
size 521
|
parakeet-v3/joint-decision.mlmodelc/metadata.json
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"metadataOutputVersion" : "3.0",
|
| 4 |
+
"storagePrecision" : "Float16",
|
| 5 |
+
"outputSchema" : [
|
| 6 |
+
{
|
| 7 |
+
"hasShapeFlexibility" : "0",
|
| 8 |
+
"isOptional" : "0",
|
| 9 |
+
"dataType" : "Int32",
|
| 10 |
+
"formattedType" : "MultiArray (Int32 1 × 1 × 1)",
|
| 11 |
+
"shortDescription" : "",
|
| 12 |
+
"shape" : "[1, 1, 1]",
|
| 13 |
+
"name" : "token_id",
|
| 14 |
+
"type" : "MultiArray"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"hasShapeFlexibility" : "0",
|
| 18 |
+
"isOptional" : "0",
|
| 19 |
+
"dataType" : "Float32",
|
| 20 |
+
"formattedType" : "MultiArray (Float32 1 × 1 × 1)",
|
| 21 |
+
"shortDescription" : "",
|
| 22 |
+
"shape" : "[1, 1, 1]",
|
| 23 |
+
"name" : "token_prob",
|
| 24 |
+
"type" : "MultiArray"
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"hasShapeFlexibility" : "0",
|
| 28 |
+
"isOptional" : "0",
|
| 29 |
+
"dataType" : "Int32",
|
| 30 |
+
"formattedType" : "MultiArray (Int32 1 × 1 × 1)",
|
| 31 |
+
"shortDescription" : "",
|
| 32 |
+
"shape" : "[1, 1, 1]",
|
| 33 |
+
"name" : "duration",
|
| 34 |
+
"type" : "MultiArray"
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"hasShapeFlexibility" : "0",
|
| 38 |
+
"isOptional" : "0",
|
| 39 |
+
"dataType" : "Int32",
|
| 40 |
+
"formattedType" : "MultiArray (Int32 1 × 1 × 1 × 64)",
|
| 41 |
+
"shortDescription" : "",
|
| 42 |
+
"shape" : "[1, 1, 1, 64]",
|
| 43 |
+
"name" : "top_k_ids",
|
| 44 |
+
"type" : "MultiArray"
|
| 45 |
+
},
|
| 46 |
+
{
|
| 47 |
+
"hasShapeFlexibility" : "0",
|
| 48 |
+
"isOptional" : "0",
|
| 49 |
+
"dataType" : "Float32",
|
| 50 |
+
"formattedType" : "MultiArray (Float32 1 × 1 × 1 × 64)",
|
| 51 |
+
"shortDescription" : "",
|
| 52 |
+
"shape" : "[1, 1, 1, 64]",
|
| 53 |
+
"name" : "top_k_logits",
|
| 54 |
+
"type" : "MultiArray"
|
| 55 |
+
}
|
| 56 |
+
],
|
| 57 |
+
"modelParameters" : [
|
| 58 |
+
|
| 59 |
+
],
|
| 60 |
+
"specificationVersion" : 8,
|
| 61 |
+
"mlProgramOperationTypeHistogram" : {
|
| 62 |
+
"Ios17.reduceArgmax" : 2,
|
| 63 |
+
"Ios17.linear" : 3,
|
| 64 |
+
"Ios17.transpose" : 2,
|
| 65 |
+
"Ios17.sliceByIndex" : 2,
|
| 66 |
+
"Ios17.add" : 1,
|
| 67 |
+
"Ios17.topk" : 1,
|
| 68 |
+
"Ios16.relu" : 1,
|
| 69 |
+
"Ios16.softmax" : 1,
|
| 70 |
+
"Ios17.expandDims" : 3,
|
| 71 |
+
"Ios17.squeeze" : 1,
|
| 72 |
+
"Ios17.cast" : 6,
|
| 73 |
+
"Ios17.gatherAlongAxis" : 1
|
| 74 |
+
},
|
| 75 |
+
"computePrecision" : "Mixed (Float16, Float32, Int16, Int32, UInt16)",
|
| 76 |
+
"isUpdatable" : "0",
|
| 77 |
+
"stateSchema" : [
|
| 78 |
+
|
| 79 |
+
],
|
| 80 |
+
"availability" : {
|
| 81 |
+
"macOS" : "14.0",
|
| 82 |
+
"tvOS" : "17.0",
|
| 83 |
+
"visionOS" : "1.0",
|
| 84 |
+
"watchOS" : "10.0",
|
| 85 |
+
"iOS" : "17.0",
|
| 86 |
+
"macCatalyst" : "17.0"
|
| 87 |
+
},
|
| 88 |
+
"modelType" : {
|
| 89 |
+
"name" : "MLModelType_mlProgram"
|
| 90 |
+
},
|
| 91 |
+
"userDefinedMetadata" : {
|
| 92 |
+
"com.github.apple.coremltools.conversion_date" : "2026-04-11",
|
| 93 |
+
"com.github.apple.coremltools.source" : "torch==2.7.0",
|
| 94 |
+
"com.github.apple.coremltools.version" : "9.0b1",
|
| 95 |
+
"com.github.apple.coremltools.source_dialect" : "TorchScript"
|
| 96 |
+
},
|
| 97 |
+
"inputSchema" : [
|
| 98 |
+
{
|
| 99 |
+
"hasShapeFlexibility" : "0",
|
| 100 |
+
"isOptional" : "0",
|
| 101 |
+
"dataType" : "Float32",
|
| 102 |
+
"formattedType" : "MultiArray (Float32 1 × 1024 × 1)",
|
| 103 |
+
"shortDescription" : "",
|
| 104 |
+
"shape" : "[1, 1024, 1]",
|
| 105 |
+
"name" : "encoder_step",
|
| 106 |
+
"type" : "MultiArray"
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"hasShapeFlexibility" : "0",
|
| 110 |
+
"isOptional" : "0",
|
| 111 |
+
"dataType" : "Float32",
|
| 112 |
+
"formattedType" : "MultiArray (Float32 1 × 640 × 1)",
|
| 113 |
+
"shortDescription" : "",
|
| 114 |
+
"shape" : "[1, 640, 1]",
|
| 115 |
+
"name" : "decoder_step",
|
| 116 |
+
"type" : "MultiArray"
|
| 117 |
+
}
|
| 118 |
+
],
|
| 119 |
+
"generatedClassName" : "JointDecisionv3",
|
| 120 |
+
"method" : "predict"
|
| 121 |
+
}
|
| 122 |
+
]
|
parakeet-v3/joint-decision.mlmodelc/model.mil
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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.7.0"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0b1"}})]
|
| 3 |
+
{
|
| 4 |
+
func main<ios17>(tensor<fp32, [1, 640, 1]> decoder_step, tensor<fp32, [1, 1024, 1]> encoder_step) {
|
| 5 |
+
tensor<int32, [3]> input_1_perm_0 = const()[name = tensor<string, []>("input_1_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
|
| 6 |
+
tensor<string, []> encoder_step_to_fp16_dtype_0 = const()[name = tensor<string, []>("encoder_step_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
|
| 7 |
+
tensor<int32, [3]> input_3_perm_0 = const()[name = tensor<string, []>("input_3_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
|
| 8 |
+
tensor<string, []> decoder_step_to_fp16_dtype_0 = const()[name = tensor<string, []>("decoder_step_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
|
| 9 |
+
tensor<fp16, [640, 1024]> joint_module_enc_weight_to_fp16 = const()[name = tensor<string, []>("joint_module_enc_weight_to_fp16"), val = tensor<fp16, [640, 1024]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
|
| 10 |
+
tensor<fp16, [640]> joint_module_enc_bias_to_fp16 = const()[name = tensor<string, []>("joint_module_enc_bias_to_fp16"), val = tensor<fp16, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1310848)))];
|
| 11 |
+
tensor<fp16, [1, 1024, 1]> encoder_step_to_fp16 = cast(dtype = encoder_step_to_fp16_dtype_0, x = encoder_step)[name = tensor<string, []>("cast_5")];
|
| 12 |
+
tensor<fp16, [1, 1, 1024]> input_1_cast_fp16 = transpose(perm = input_1_perm_0, x = encoder_step_to_fp16)[name = tensor<string, []>("transpose_1")];
|
| 13 |
+
tensor<fp16, [1, 1, 640]> linear_0_cast_fp16 = linear(bias = joint_module_enc_bias_to_fp16, weight = joint_module_enc_weight_to_fp16, x = input_1_cast_fp16)[name = tensor<string, []>("linear_0_cast_fp16")];
|
| 14 |
+
tensor<fp16, [640, 640]> joint_module_pred_weight_to_fp16 = const()[name = tensor<string, []>("joint_module_pred_weight_to_fp16"), val = tensor<fp16, [640, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1312192)))];
|
| 15 |
+
tensor<fp16, [640]> joint_module_pred_bias_to_fp16 = const()[name = tensor<string, []>("joint_module_pred_bias_to_fp16"), val = tensor<fp16, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2131456)))];
|
| 16 |
+
tensor<fp16, [1, 640, 1]> decoder_step_to_fp16 = cast(dtype = decoder_step_to_fp16_dtype_0, x = decoder_step)[name = tensor<string, []>("cast_4")];
|
| 17 |
+
tensor<fp16, [1, 1, 640]> input_3_cast_fp16 = transpose(perm = input_3_perm_0, x = decoder_step_to_fp16)[name = tensor<string, []>("transpose_0")];
|
| 18 |
+
tensor<fp16, [1, 1, 640]> linear_1_cast_fp16 = linear(bias = joint_module_pred_bias_to_fp16, weight = joint_module_pred_weight_to_fp16, x = input_3_cast_fp16)[name = tensor<string, []>("linear_1_cast_fp16")];
|
| 19 |
+
tensor<int32, [1]> var_23_axes_0 = const()[name = tensor<string, []>("op_23_axes_0"), val = tensor<int32, [1]>([2])];
|
| 20 |
+
tensor<fp16, [1, 1, 1, 640]> var_23_cast_fp16 = expand_dims(axes = var_23_axes_0, x = linear_0_cast_fp16)[name = tensor<string, []>("op_23_cast_fp16")];
|
| 21 |
+
tensor<int32, [1]> var_24_axes_0 = const()[name = tensor<string, []>("op_24_axes_0"), val = tensor<int32, [1]>([1])];
|
| 22 |
+
tensor<fp16, [1, 1, 1, 640]> var_24_cast_fp16 = expand_dims(axes = var_24_axes_0, x = linear_1_cast_fp16)[name = tensor<string, []>("op_24_cast_fp16")];
|
| 23 |
+
tensor<fp16, [1, 1, 1, 640]> input_5_cast_fp16 = add(x = var_23_cast_fp16, y = var_24_cast_fp16)[name = tensor<string, []>("input_5_cast_fp16")];
|
| 24 |
+
tensor<fp16, [1, 1, 1, 640]> input_7_cast_fp16 = relu(x = input_5_cast_fp16)[name = tensor<string, []>("input_7_cast_fp16")];
|
| 25 |
+
tensor<fp16, [8198, 640]> joint_module_joint_net_2_weight_to_fp16 = const()[name = tensor<string, []>("joint_module_joint_net_2_weight_to_fp16"), val = tensor<fp16, [8198, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2132800)))];
|
| 26 |
+
tensor<fp16, [8198]> joint_module_joint_net_2_bias_to_fp16 = const()[name = tensor<string, []>("joint_module_joint_net_2_bias_to_fp16"), val = tensor<fp16, [8198]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(12626304)))];
|
| 27 |
+
tensor<fp16, [1, 1, 1, 8198]> linear_2_cast_fp16 = linear(bias = joint_module_joint_net_2_bias_to_fp16, weight = joint_module_joint_net_2_weight_to_fp16, x = input_7_cast_fp16)[name = tensor<string, []>("linear_2_cast_fp16")];
|
| 28 |
+
tensor<int32, [4]> token_logits_begin_0 = const()[name = tensor<string, []>("token_logits_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
|
| 29 |
+
tensor<int32, [4]> token_logits_end_0 = const()[name = tensor<string, []>("token_logits_end_0"), val = tensor<int32, [4]>([1, 1, 1, 8193])];
|
| 30 |
+
tensor<bool, [4]> token_logits_end_mask_0 = const()[name = tensor<string, []>("token_logits_end_mask_0"), val = tensor<bool, [4]>([true, true, true, false])];
|
| 31 |
+
tensor<fp16, [1, 1, 1, 8193]> token_logits_cast_fp16 = slice_by_index(begin = token_logits_begin_0, end = token_logits_end_0, end_mask = token_logits_end_mask_0, x = linear_2_cast_fp16)[name = tensor<string, []>("token_logits_cast_fp16")];
|
| 32 |
+
tensor<int32, [4]> duration_logits_begin_0 = const()[name = tensor<string, []>("duration_logits_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 8193])];
|
| 33 |
+
tensor<int32, [4]> duration_logits_end_0 = const()[name = tensor<string, []>("duration_logits_end_0"), val = tensor<int32, [4]>([1, 1, 1, 8198])];
|
| 34 |
+
tensor<bool, [4]> duration_logits_end_mask_0 = const()[name = tensor<string, []>("duration_logits_end_mask_0"), val = tensor<bool, [4]>([true, true, true, true])];
|
| 35 |
+
tensor<fp16, [1, 1, 1, 5]> duration_logits_cast_fp16 = slice_by_index(begin = duration_logits_begin_0, end = duration_logits_end_0, end_mask = duration_logits_end_mask_0, x = linear_2_cast_fp16)[name = tensor<string, []>("duration_logits_cast_fp16")];
|
| 36 |
+
tensor<int32, []> var_43_axis_0 = const()[name = tensor<string, []>("op_43_axis_0"), val = tensor<int32, []>(-1)];
|
| 37 |
+
tensor<bool, []> var_43_keep_dims_0 = const()[name = tensor<string, []>("op_43_keep_dims_0"), val = tensor<bool, []>(false)];
|
| 38 |
+
tensor<string, []> var_43_output_dtype_0 = const()[name = tensor<string, []>("op_43_output_dtype_0"), val = tensor<string, []>("int32")];
|
| 39 |
+
tensor<int32, [1, 1, 1]> token_id = reduce_argmax(axis = var_43_axis_0, keep_dims = var_43_keep_dims_0, output_dtype = var_43_output_dtype_0, x = token_logits_cast_fp16)[name = tensor<string, []>("op_43_cast_fp16")];
|
| 40 |
+
tensor<int32, []> var_49 = const()[name = tensor<string, []>("op_49"), val = tensor<int32, []>(-1)];
|
| 41 |
+
tensor<fp16, [1, 1, 1, 8193]> token_probs_all_cast_fp16 = softmax(axis = var_49, x = token_logits_cast_fp16)[name = tensor<string, []>("token_probs_all_cast_fp16")];
|
| 42 |
+
tensor<int32, [1]> var_58_axes_0 = const()[name = tensor<string, []>("op_58_axes_0"), val = tensor<int32, [1]>([-1])];
|
| 43 |
+
tensor<int32, [1, 1, 1, 1]> var_58 = expand_dims(axes = var_58_axes_0, x = token_id)[name = tensor<string, []>("op_58")];
|
| 44 |
+
tensor<int32, []> var_59 = const()[name = tensor<string, []>("op_59"), val = tensor<int32, []>(-1)];
|
| 45 |
+
tensor<bool, []> var_61_validate_indices_0 = const()[name = tensor<string, []>("op_61_validate_indices_0"), val = tensor<bool, []>(false)];
|
| 46 |
+
tensor<string, []> var_58_to_int16_dtype_0 = const()[name = tensor<string, []>("op_58_to_int16_dtype_0"), val = tensor<string, []>("int16")];
|
| 47 |
+
tensor<int16, [1, 1, 1, 1]> var_58_to_int16 = cast(dtype = var_58_to_int16_dtype_0, x = var_58)[name = tensor<string, []>("cast_3")];
|
| 48 |
+
tensor<fp16, [1, 1, 1, 1]> var_61_cast_fp16_cast_int16 = gather_along_axis(axis = var_59, indices = var_58_to_int16, validate_indices = var_61_validate_indices_0, x = token_probs_all_cast_fp16)[name = tensor<string, []>("op_61_cast_fp16_cast_int16")];
|
| 49 |
+
tensor<int32, [1]> var_63_axes_0 = const()[name = tensor<string, []>("op_63_axes_0"), val = tensor<int32, [1]>([-1])];
|
| 50 |
+
tensor<fp16, [1, 1, 1]> var_63_cast_fp16 = squeeze(axes = var_63_axes_0, x = var_61_cast_fp16_cast_int16)[name = tensor<string, []>("op_63_cast_fp16")];
|
| 51 |
+
tensor<string, []> var_63_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_63_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
|
| 52 |
+
tensor<int32, []> var_66_axis_0 = const()[name = tensor<string, []>("op_66_axis_0"), val = tensor<int32, []>(-1)];
|
| 53 |
+
tensor<bool, []> var_66_keep_dims_0 = const()[name = tensor<string, []>("op_66_keep_dims_0"), val = tensor<bool, []>(false)];
|
| 54 |
+
tensor<string, []> var_66_output_dtype_0 = const()[name = tensor<string, []>("op_66_output_dtype_0"), val = tensor<string, []>("int32")];
|
| 55 |
+
tensor<int32, [1, 1, 1]> duration = reduce_argmax(axis = var_66_axis_0, keep_dims = var_66_keep_dims_0, output_dtype = var_66_output_dtype_0, x = duration_logits_cast_fp16)[name = tensor<string, []>("op_66_cast_fp16")];
|
| 56 |
+
tensor<int32, []> var_72 = const()[name = tensor<string, []>("op_72"), val = tensor<int32, []>(64)];
|
| 57 |
+
tensor<int32, []> var_76_axis_0 = const()[name = tensor<string, []>("op_76_axis_0"), val = tensor<int32, []>(-1)];
|
| 58 |
+
tensor<bool, []> var_76_ascending_0 = const()[name = tensor<string, []>("op_76_ascending_0"), val = tensor<bool, []>(false)];
|
| 59 |
+
tensor<bool, []> var_76_sort_0 = const()[name = tensor<string, []>("op_76_sort_0"), val = tensor<bool, []>(true)];
|
| 60 |
+
tensor<bool, []> var_76_return_indices_0 = const()[name = tensor<string, []>("op_76_return_indices_0"), val = tensor<bool, []>(true)];
|
| 61 |
+
tensor<string, []> var_76_cast_fp16_cast_int16_output_indices_dtype_0 = const()[name = tensor<string, []>("op_76_cast_fp16_cast_int16_output_indices_dtype_0"), val = tensor<string, []>("uint16")];
|
| 62 |
+
tensor<fp16, [1, 1, 1, 64]> var_76_cast_fp16_cast_int16_0, tensor<uint16, [1, 1, 1, 64]> var_76_cast_fp16_cast_int16_1 = topk(ascending = var_76_ascending_0, axis = var_76_axis_0, k = var_72, output_indices_dtype = var_76_cast_fp16_cast_int16_output_indices_dtype_0, return_indices = var_76_return_indices_0, sort = var_76_sort_0, x = token_logits_cast_fp16)[name = tensor<string, []>("op_76_cast_fp16_cast_int16")];
|
| 63 |
+
tensor<string, []> var_76_cast_fp16_cast_int16_1_to_int32_dtype_0 = const()[name = tensor<string, []>("op_76_cast_fp16_cast_int16_1_to_int32_dtype_0"), val = tensor<string, []>("int32")];
|
| 64 |
+
tensor<string, []> var_76_cast_fp16_0_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_76_cast_fp16_0_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
|
| 65 |
+
tensor<fp32, [1, 1, 1, 64]> top_k_logits = cast(dtype = var_76_cast_fp16_0_to_fp32_dtype_0, x = var_76_cast_fp16_cast_int16_0)[name = tensor<string, []>("cast_0")];
|
| 66 |
+
tensor<int32, [1, 1, 1, 64]> top_k_ids = cast(dtype = var_76_cast_fp16_cast_int16_1_to_int32_dtype_0, x = var_76_cast_fp16_cast_int16_1)[name = tensor<string, []>("cast_1")];
|
| 67 |
+
tensor<fp32, [1, 1, 1]> token_prob = cast(dtype = var_63_cast_fp16_to_fp32_dtype_0, x = var_63_cast_fp16)[name = tensor<string, []>("cast_2")];
|
| 68 |
+
} -> (token_id, token_prob, duration, top_k_ids, top_k_logits);
|
| 69 |
+
}
|
parakeet-v3/joint-decision.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4e0e63d840032f7f07ddb1d64446051166281e5491bf22da8a945c41f6eedb3e
|
| 3 |
+
size 12642764
|
parakeet-v3/parakeet_vocab.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|