Upload folder using huggingface_hub
Browse files- config.json +92 -0
- fp16/decoder.mlmodelc/analytics/coremldata.bin +3 -0
- fp16/decoder.mlmodelc/coremldata.bin +3 -0
- fp16/decoder.mlmodelc/metadata.json +134 -0
- fp16/decoder.mlmodelc/model.mil +90 -0
- fp16/decoder.mlmodelc/weights/weight.bin +3 -0
- fp16/decoder.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
- fp16/decoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
- fp16/decoder.mlpackage/Manifest.json +18 -0
- fp16/encoder.mlmodelc/analytics/coremldata.bin +3 -0
- fp16/encoder.mlmodelc/coremldata.bin +3 -0
- fp16/encoder.mlmodelc/metadata.json +155 -0
- fp16/encoder.mlmodelc/model.mil +0 -0
- fp16/encoder.mlmodelc/weights/weight.bin +3 -0
- fp16/encoder.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
- fp16/encoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
- fp16/encoder.mlpackage/Manifest.json +18 -0
- fp16/metadata.json +25 -0
config.json
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_type": "fastconformer_rnnt",
|
| 3 |
+
"source_model": "nvidia/nemotron-speech-streaming-en-0.6b",
|
| 4 |
+
"format": "coreml",
|
| 5 |
+
|
| 6 |
+
"audio": {
|
| 7 |
+
"sample_rate": 16000,
|
| 8 |
+
"sample_format": "S16_LE",
|
| 9 |
+
"bytes_per_second": 32000
|
| 10 |
+
},
|
| 11 |
+
|
| 12 |
+
"preprocessor": {
|
| 13 |
+
"n_mels": 128,
|
| 14 |
+
"n_fft": 512,
|
| 15 |
+
"hop_length": 160,
|
| 16 |
+
"win_length": 400,
|
| 17 |
+
"window": "hann",
|
| 18 |
+
"preemph": 0.97,
|
| 19 |
+
"dither": 1e-05,
|
| 20 |
+
"normalize": null,
|
| 21 |
+
"pad_to": 0,
|
| 22 |
+
"mel_norm": "slaney",
|
| 23 |
+
"mel_layout": "band_major",
|
| 24 |
+
"_comment": "mel_layout=band_major means output shape is [n_mels, n_frames], not [n_frames, n_mels]. Mel preprocessing runs on the host (not in CoreML)."
|
| 25 |
+
},
|
| 26 |
+
|
| 27 |
+
"encoder": {
|
| 28 |
+
"model_file": "encoder.mlmodelc",
|
| 29 |
+
"layers": 24,
|
| 30 |
+
"dim": 1024,
|
| 31 |
+
"chunk_mel_frames": 56,
|
| 32 |
+
"pre_encode_cache_frames": 9,
|
| 33 |
+
"total_input_frames": 65,
|
| 34 |
+
"compute_units": "CPU_AND_NE",
|
| 35 |
+
"compute_precision": "FLOAT16",
|
| 36 |
+
"cache_last_channel_shape": [1, 24, 70, 1024],
|
| 37 |
+
"cache_last_time_shape": [1, 24, 1024, 8],
|
| 38 |
+
"_comment_cache_layout": "batch-first [B, L, ...] for CoreML. NeMo uses layer-first [L, B, ...] internally; the wrapper transposes.",
|
| 39 |
+
"inputs": {
|
| 40 |
+
"audio_signal": {"dtype": "float32", "shape": [1, 128, 65]},
|
| 41 |
+
"cache_last_channel": {"dtype": "float32", "shape": [1, 24, 70, 1024], "init": "zeros"},
|
| 42 |
+
"cache_last_time": {"dtype": "float32", "shape": [1, 24, 1024, 8], "init": "zeros"},
|
| 43 |
+
"cache_last_channel_len": {"dtype": "int32", "shape": [1], "init": "zeros"}
|
| 44 |
+
},
|
| 45 |
+
"outputs": {
|
| 46 |
+
"encoded": {"dtype": "float16", "shape": [1, 1024, 7]},
|
| 47 |
+
"encoded_length": {"dtype": "int32", "shape": [1]},
|
| 48 |
+
"cache_channel_out": {"dtype": "float16", "shape": [1, 24, 70, 1024], "_comment": "feed back as cache_last_channel"},
|
| 49 |
+
"cache_time_out": {"dtype": "float16", "shape": [1, 24, 1024, 8], "_comment": "feed back as cache_last_time"},
|
| 50 |
+
"cache_len_out": {"dtype": "int32", "shape": [1], "_comment": "feed back as cache_last_channel_len"}
|
| 51 |
+
},
|
| 52 |
+
"_comment_strides": "CoreML output MLMultiArrays may have non-contiguous strides due to ANE alignment padding (e.g. stride=32 for dim size 7). Callers must use stride-aware copy, not flat memcpy."
|
| 53 |
+
},
|
| 54 |
+
|
| 55 |
+
"decoder": {
|
| 56 |
+
"model_file": "decoder.mlmodelc",
|
| 57 |
+
"prediction_layers": 2,
|
| 58 |
+
"prediction_hidden": 640,
|
| 59 |
+
"vocab_size": 1025,
|
| 60 |
+
"blank_id": 1024,
|
| 61 |
+
"max_symbols_per_frame": 10,
|
| 62 |
+
"compute_units": "CPU_ONLY",
|
| 63 |
+
"compute_precision": "FLOAT16",
|
| 64 |
+
"inputs": {
|
| 65 |
+
"encoder_outputs": {"dtype": "float32", "shape": [1, 1024, 1], "_comment": "single encoder frame"},
|
| 66 |
+
"targets": {"dtype": "int32", "shape": [1, 1], "_comment": "previous non-blank token (blank_id for first)"},
|
| 67 |
+
"target_length": {"dtype": "int32", "shape": [1], "value": 1},
|
| 68 |
+
"input_states_1": {"dtype": "float32", "shape": [2, 1, 640], "init": "zeros"},
|
| 69 |
+
"input_states_2": {"dtype": "float32", "shape": [2, 1, 640], "init": "zeros"}
|
| 70 |
+
},
|
| 71 |
+
"outputs": {
|
| 72 |
+
"outputs": {"dtype": "float16", "shape": [1, 1025], "_comment": "logits over vocab, argmax to get token"},
|
| 73 |
+
"output_states_1": {"dtype": "float16", "shape": [2, 1, 640], "_comment": "feed back as input_states_1"},
|
| 74 |
+
"output_states_2": {"dtype": "float16", "shape": [2, 1, 640], "_comment": "feed back as input_states_2"}
|
| 75 |
+
}
|
| 76 |
+
},
|
| 77 |
+
|
| 78 |
+
"streaming": {
|
| 79 |
+
"chunk_duration_ms": 560,
|
| 80 |
+
"chunk_audio_samples": 8960,
|
| 81 |
+
"algorithm": "Cache-aware streaming FastConformer. Feed 560ms audio chunks. For each chunk: compute mel (56 frames), prepend 9 cached frames, run encoder. Then for each encoder output frame, run RNNT greedy decode: feed one encoder frame to decoder, argmax logits, if not blank emit token and loop (up to max_symbols_per_frame), if blank move to next frame. Feed cache outputs back as next chunk's cache inputs. Feed decoder states back for next symbol/frame."
|
| 82 |
+
},
|
| 83 |
+
|
| 84 |
+
"ane_profile": {
|
| 85 |
+
"encoder_ane_ops": 1486,
|
| 86 |
+
"encoder_cpu_ops": 111,
|
| 87 |
+
"encoder_ane_pct": 93.0,
|
| 88 |
+
"cpu_op_breakdown": "select (72, attention masking), softmax (24, one per conformer layer), expand_dims/logical/cast (15, control flow)",
|
| 89 |
+
"decoder": "100% CPU (CPU_ONLY compute units)",
|
| 90 |
+
"inference_speed": "~15.5x realtime on Apple Silicon (M-series)"
|
| 91 |
+
}
|
| 92 |
+
}
|
fp16/decoder.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:89c4f741f02efc6cb362c7dc94893fb832783cc608d54542752a74653c36cb2f
|
| 3 |
+
size 243
|
fp16/decoder.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0711cd32735530249dba2d75b3b9f57fd5d3d25b215bcef244c2e949f194a41f
|
| 3 |
+
size 565
|
fp16/decoder.mlmodelc/metadata.json
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"metadataOutputVersion" : "3.0",
|
| 4 |
+
"storagePrecision" : "Float16",
|
| 5 |
+
"outputSchema" : [
|
| 6 |
+
{
|
| 7 |
+
"hasShapeFlexibility" : "0",
|
| 8 |
+
"isOptional" : "0",
|
| 9 |
+
"dataType" : "Float16",
|
| 10 |
+
"formattedType" : "MultiArray (Float16 1 × 1025)",
|
| 11 |
+
"shortDescription" : "",
|
| 12 |
+
"shape" : "[1, 1025]",
|
| 13 |
+
"name" : "outputs",
|
| 14 |
+
"type" : "MultiArray"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"hasShapeFlexibility" : "0",
|
| 18 |
+
"isOptional" : "0",
|
| 19 |
+
"dataType" : "Float16",
|
| 20 |
+
"formattedType" : "MultiArray (Float16 2 × 1 × 640)",
|
| 21 |
+
"shortDescription" : "",
|
| 22 |
+
"shape" : "[2, 1, 640]",
|
| 23 |
+
"name" : "output_states_1",
|
| 24 |
+
"type" : "MultiArray"
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"hasShapeFlexibility" : "0",
|
| 28 |
+
"isOptional" : "0",
|
| 29 |
+
"dataType" : "Float16",
|
| 30 |
+
"formattedType" : "MultiArray (Float16 2 × 1 × 640)",
|
| 31 |
+
"shortDescription" : "",
|
| 32 |
+
"shape" : "[2, 1, 640]",
|
| 33 |
+
"name" : "output_states_2",
|
| 34 |
+
"type" : "MultiArray"
|
| 35 |
+
}
|
| 36 |
+
],
|
| 37 |
+
"modelParameters" : [
|
| 38 |
+
|
| 39 |
+
],
|
| 40 |
+
"specificationVersion" : 9,
|
| 41 |
+
"mlProgramOperationTypeHistogram" : {
|
| 42 |
+
"Ios18.linear" : 3,
|
| 43 |
+
"Ios18.expandDims" : 2,
|
| 44 |
+
"Select" : 1,
|
| 45 |
+
"Ios18.relu" : 1,
|
| 46 |
+
"Ios18.lstm" : 2,
|
| 47 |
+
"Ios18.gather" : 1,
|
| 48 |
+
"Stack" : 2,
|
| 49 |
+
"Ios18.add" : 2,
|
| 50 |
+
"Ios18.transpose" : 3,
|
| 51 |
+
"Ios18.cast" : 6,
|
| 52 |
+
"Ios18.squeeze" : 6,
|
| 53 |
+
"Ios18.greaterEqual" : 1,
|
| 54 |
+
"Split" : 2,
|
| 55 |
+
"Identity" : 1
|
| 56 |
+
},
|
| 57 |
+
"computePrecision" : "Mixed (Float16, Int16, Int32)",
|
| 58 |
+
"isUpdatable" : "0",
|
| 59 |
+
"stateSchema" : [
|
| 60 |
+
|
| 61 |
+
],
|
| 62 |
+
"availability" : {
|
| 63 |
+
"macOS" : "15.0",
|
| 64 |
+
"tvOS" : "18.0",
|
| 65 |
+
"visionOS" : "2.0",
|
| 66 |
+
"watchOS" : "11.0",
|
| 67 |
+
"iOS" : "18.0",
|
| 68 |
+
"macCatalyst" : "18.0"
|
| 69 |
+
},
|
| 70 |
+
"modelType" : {
|
| 71 |
+
"name" : "MLModelType_mlProgram"
|
| 72 |
+
},
|
| 73 |
+
"userDefinedMetadata" : {
|
| 74 |
+
"com.github.apple.coremltools.conversion_date" : "2026-03-22",
|
| 75 |
+
"com.github.apple.coremltools.source" : "torch==2.7.1",
|
| 76 |
+
"com.github.apple.coremltools.version" : "9.0b1",
|
| 77 |
+
"com.github.apple.coremltools.source_dialect" : "TorchScript"
|
| 78 |
+
},
|
| 79 |
+
"inputSchema" : [
|
| 80 |
+
{
|
| 81 |
+
"hasShapeFlexibility" : "0",
|
| 82 |
+
"isOptional" : "0",
|
| 83 |
+
"dataType" : "Float32",
|
| 84 |
+
"formattedType" : "MultiArray (Float32 1 × 1024 × 1)",
|
| 85 |
+
"shortDescription" : "",
|
| 86 |
+
"shape" : "[1, 1024, 1]",
|
| 87 |
+
"name" : "encoder_outputs",
|
| 88 |
+
"type" : "MultiArray"
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"hasShapeFlexibility" : "0",
|
| 92 |
+
"isOptional" : "0",
|
| 93 |
+
"dataType" : "Int32",
|
| 94 |
+
"formattedType" : "MultiArray (Int32 1 × 1)",
|
| 95 |
+
"shortDescription" : "",
|
| 96 |
+
"shape" : "[1, 1]",
|
| 97 |
+
"name" : "targets",
|
| 98 |
+
"type" : "MultiArray"
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"hasShapeFlexibility" : "0",
|
| 102 |
+
"isOptional" : "0",
|
| 103 |
+
"dataType" : "Int32",
|
| 104 |
+
"formattedType" : "MultiArray (Int32 1)",
|
| 105 |
+
"shortDescription" : "",
|
| 106 |
+
"shape" : "[1]",
|
| 107 |
+
"name" : "target_length",
|
| 108 |
+
"type" : "MultiArray"
|
| 109 |
+
},
|
| 110 |
+
{
|
| 111 |
+
"hasShapeFlexibility" : "0",
|
| 112 |
+
"isOptional" : "0",
|
| 113 |
+
"dataType" : "Float32",
|
| 114 |
+
"formattedType" : "MultiArray (Float32 2 × 1 × 640)",
|
| 115 |
+
"shortDescription" : "",
|
| 116 |
+
"shape" : "[2, 1, 640]",
|
| 117 |
+
"name" : "input_states_1",
|
| 118 |
+
"type" : "MultiArray"
|
| 119 |
+
},
|
| 120 |
+
{
|
| 121 |
+
"hasShapeFlexibility" : "0",
|
| 122 |
+
"isOptional" : "0",
|
| 123 |
+
"dataType" : "Float32",
|
| 124 |
+
"formattedType" : "MultiArray (Float32 2 × 1 × 640)",
|
| 125 |
+
"shortDescription" : "",
|
| 126 |
+
"shape" : "[2, 1, 640]",
|
| 127 |
+
"name" : "input_states_2",
|
| 128 |
+
"type" : "MultiArray"
|
| 129 |
+
}
|
| 130 |
+
],
|
| 131 |
+
"generatedClassName" : "decoder",
|
| 132 |
+
"method" : "predict"
|
| 133 |
+
}
|
| 134 |
+
]
|
fp16/decoder.mlmodelc/model.mil
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
program(1.3)
|
| 2 |
+
[buildInfo = dict<string, string>({{"coremlc-component-MIL", "3510.2.1"}, {"coremlc-version", "3500.32.1"}, {"coremltools-component-torch", "2.7.1"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0b1"}})]
|
| 3 |
+
{
|
| 4 |
+
func main<ios18>(tensor<fp32, [1, 1024, 1]> encoder_outputs, tensor<fp32, [2, 1, 640]> input_states_1, tensor<fp32, [2, 1, 640]> input_states_2, tensor<int32, [1]> target_length, tensor<int32, [1, 1]> targets) {
|
| 5 |
+
int32 y_batch_dims_0 = const()[name = string("y_batch_dims_0"), val = int32(0)];
|
| 6 |
+
bool y_validate_indices_0 = const()[name = string("y_validate_indices_0"), val = bool(false)];
|
| 7 |
+
tensor<fp16, [1025, 640]> decoder_prediction_embed_weight_to_fp16 = const()[name = string("decoder_prediction_embed_weight_to_fp16"), val = tensor<fp16, [1025, 640]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(64)))];
|
| 8 |
+
string targets_to_int16_dtype_0 = const()[name = string("targets_to_int16_dtype_0"), val = string("int16")];
|
| 9 |
+
string cast_4_dtype_0 = const()[name = string("cast_4_dtype_0"), val = string("int32")];
|
| 10 |
+
int32 greater_equal_0_y_0 = const()[name = string("greater_equal_0_y_0"), val = int32(0)];
|
| 11 |
+
tensor<int16, [1, 1]> targets_to_int16 = cast(dtype = targets_to_int16_dtype_0, x = targets)[name = string("cast_10")];
|
| 12 |
+
tensor<int32, [1, 1]> cast_4 = cast(dtype = cast_4_dtype_0, x = targets_to_int16)[name = string("cast_9")];
|
| 13 |
+
tensor<bool, [1, 1]> greater_equal_0 = greater_equal(x = cast_4, y = greater_equal_0_y_0)[name = string("greater_equal_0")];
|
| 14 |
+
int32 slice_by_index_0 = const()[name = string("slice_by_index_0"), val = int32(1025)];
|
| 15 |
+
tensor<int32, [1, 1]> add_2 = add(x = cast_4, y = slice_by_index_0)[name = string("add_2")];
|
| 16 |
+
tensor<int32, [1, 1]> select_0 = select(a = cast_4, b = add_2, cond = greater_equal_0)[name = string("select_0")];
|
| 17 |
+
int32 y_cast_fp16_cast_uint16_axis_0 = const()[name = string("y_cast_fp16_cast_uint16_axis_0"), val = int32(0)];
|
| 18 |
+
string select_0_to_int16_dtype_0 = const()[name = string("select_0_to_int16_dtype_0"), val = string("int16")];
|
| 19 |
+
tensor<int16, [1, 1]> select_0_to_int16 = cast(dtype = select_0_to_int16_dtype_0, x = select_0)[name = string("cast_8")];
|
| 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 = decoder_prediction_embed_weight_to_fp16)[name = string("y_cast_fp16_cast_uint16_cast_uint16")];
|
| 21 |
+
tensor<int32, [3]> input_3_perm_0 = const()[name = string("input_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
|
| 22 |
+
int32 split_0_num_splits_0 = const()[name = string("split_0_num_splits_0"), val = int32(2)];
|
| 23 |
+
int32 split_0_axis_0 = const()[name = string("split_0_axis_0"), val = int32(0)];
|
| 24 |
+
string input_states_1_to_fp16_dtype_0 = const()[name = string("input_states_1_to_fp16_dtype_0"), val = string("fp16")];
|
| 25 |
+
tensor<fp16, [2, 1, 640]> input_states_1_to_fp16 = cast(dtype = input_states_1_to_fp16_dtype_0, x = input_states_1)[name = string("cast_7")];
|
| 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 = input_states_1_to_fp16)[name = string("split_0_cast_fp16")];
|
| 27 |
+
int32 split_1_num_splits_0 = const()[name = string("split_1_num_splits_0"), val = int32(2)];
|
| 28 |
+
int32 split_1_axis_0 = const()[name = string("split_1_axis_0"), val = int32(0)];
|
| 29 |
+
string input_states_2_to_fp16_dtype_0 = const()[name = string("input_states_2_to_fp16_dtype_0"), val = string("fp16")];
|
| 30 |
+
tensor<fp16, [2, 1, 640]> input_states_2_to_fp16 = cast(dtype = input_states_2_to_fp16_dtype_0, x = input_states_2)[name = string("cast_6")];
|
| 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 = input_states_2_to_fp16)[name = string("split_1_cast_fp16")];
|
| 32 |
+
tensor<int32, [1]> input_5_lstm_layer_0_lstm_h0_squeeze_axes_0 = const()[name = string("input_5_lstm_layer_0_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
|
| 33 |
+
tensor<fp16, [1, 640]> input_5_lstm_layer_0_lstm_h0_squeeze_cast_fp16 = squeeze(axes = input_5_lstm_layer_0_lstm_h0_squeeze_axes_0, x = split_0_cast_fp16_0)[name = string("input_5_lstm_layer_0_lstm_h0_squeeze_cast_fp16")];
|
| 34 |
+
tensor<int32, [1]> input_5_lstm_layer_0_lstm_c0_squeeze_axes_0 = const()[name = string("input_5_lstm_layer_0_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
|
| 35 |
+
tensor<fp16, [1, 640]> input_5_lstm_layer_0_lstm_c0_squeeze_cast_fp16 = squeeze(axes = input_5_lstm_layer_0_lstm_c0_squeeze_axes_0, x = split_1_cast_fp16_0)[name = string("input_5_lstm_layer_0_lstm_c0_squeeze_cast_fp16")];
|
| 36 |
+
string input_5_lstm_layer_0_direction_0 = const()[name = string("input_5_lstm_layer_0_direction_0"), val = string("forward")];
|
| 37 |
+
bool input_5_lstm_layer_0_output_sequence_0 = const()[name = string("input_5_lstm_layer_0_output_sequence_0"), val = bool(true)];
|
| 38 |
+
string input_5_lstm_layer_0_recurrent_activation_0 = const()[name = string("input_5_lstm_layer_0_recurrent_activation_0"), val = string("sigmoid")];
|
| 39 |
+
string input_5_lstm_layer_0_cell_activation_0 = const()[name = string("input_5_lstm_layer_0_cell_activation_0"), val = string("tanh")];
|
| 40 |
+
string input_5_lstm_layer_0_activation_0 = const()[name = string("input_5_lstm_layer_0_activation_0"), val = string("tanh")];
|
| 41 |
+
tensor<fp16, [2560, 640]> concat_1_to_fp16 = const()[name = string("concat_1_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(1312128)))];
|
| 42 |
+
tensor<fp16, [2560, 640]> concat_2_to_fp16 = const()[name = string("concat_2_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4588992)))];
|
| 43 |
+
tensor<fp16, [2560]> concat_0_to_fp16 = const()[name = string("concat_0_to_fp16"), val = tensor<fp16, [2560]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(7865856)))];
|
| 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 = string("transpose_4")];
|
| 45 |
+
tensor<fp16, [1, 1, 640]> input_5_lstm_layer_0_cast_fp16_0, tensor<fp16, [1, 640]> input_5_lstm_layer_0_cast_fp16_1, tensor<fp16, [1, 640]> input_5_lstm_layer_0_cast_fp16_2 = lstm(activation = input_5_lstm_layer_0_activation_0, bias = concat_0_to_fp16, cell_activation = input_5_lstm_layer_0_cell_activation_0, direction = input_5_lstm_layer_0_direction_0, initial_c = input_5_lstm_layer_0_lstm_c0_squeeze_cast_fp16, initial_h = input_5_lstm_layer_0_lstm_h0_squeeze_cast_fp16, output_sequence = input_5_lstm_layer_0_output_sequence_0, recurrent_activation = input_5_lstm_layer_0_recurrent_activation_0, weight_hh = concat_2_to_fp16, weight_ih = concat_1_to_fp16, x = input_3_cast_fp16)[name = string("input_5_lstm_layer_0_cast_fp16")];
|
| 46 |
+
tensor<int32, [1]> input_5_lstm_h0_squeeze_axes_0 = const()[name = string("input_5_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
|
| 47 |
+
tensor<fp16, [1, 640]> input_5_lstm_h0_squeeze_cast_fp16 = squeeze(axes = input_5_lstm_h0_squeeze_axes_0, x = split_0_cast_fp16_1)[name = string("input_5_lstm_h0_squeeze_cast_fp16")];
|
| 48 |
+
tensor<int32, [1]> input_5_lstm_c0_squeeze_axes_0 = const()[name = string("input_5_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
|
| 49 |
+
tensor<fp16, [1, 640]> input_5_lstm_c0_squeeze_cast_fp16 = squeeze(axes = input_5_lstm_c0_squeeze_axes_0, x = split_1_cast_fp16_1)[name = string("input_5_lstm_c0_squeeze_cast_fp16")];
|
| 50 |
+
string input_5_direction_0 = const()[name = string("input_5_direction_0"), val = string("forward")];
|
| 51 |
+
bool input_5_output_sequence_0 = const()[name = string("input_5_output_sequence_0"), val = bool(true)];
|
| 52 |
+
string input_5_recurrent_activation_0 = const()[name = string("input_5_recurrent_activation_0"), val = string("sigmoid")];
|
| 53 |
+
string input_5_cell_activation_0 = const()[name = string("input_5_cell_activation_0"), val = string("tanh")];
|
| 54 |
+
string input_5_activation_0 = const()[name = string("input_5_activation_0"), val = string("tanh")];
|
| 55 |
+
tensor<fp16, [2560, 640]> concat_4_to_fp16 = const()[name = string("concat_4_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(7871040)))];
|
| 56 |
+
tensor<fp16, [2560, 640]> concat_5_to_fp16 = const()[name = string("concat_5_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(11147904)))];
|
| 57 |
+
tensor<fp16, [2560]> concat_3_to_fp16 = const()[name = string("concat_3_to_fp16"), val = tensor<fp16, [2560]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(14424768)))];
|
| 58 |
+
tensor<fp16, [1, 1, 640]> input_5_cast_fp16_0, tensor<fp16, [1, 640]> input_5_cast_fp16_1, tensor<fp16, [1, 640]> input_5_cast_fp16_2 = lstm(activation = input_5_activation_0, bias = concat_3_to_fp16, cell_activation = input_5_cell_activation_0, direction = input_5_direction_0, initial_c = input_5_lstm_c0_squeeze_cast_fp16, initial_h = input_5_lstm_h0_squeeze_cast_fp16, output_sequence = input_5_output_sequence_0, recurrent_activation = input_5_recurrent_activation_0, weight_hh = concat_5_to_fp16, weight_ih = concat_4_to_fp16, x = input_5_lstm_layer_0_cast_fp16_0)[name = string("input_5_cast_fp16")];
|
| 59 |
+
int32 obj_3_axis_0 = const()[name = string("obj_3_axis_0"), val = int32(0)];
|
| 60 |
+
tensor<fp16, [2, 1, 640]> output_states_1 = stack(axis = obj_3_axis_0, values = (input_5_lstm_layer_0_cast_fp16_1, input_5_cast_fp16_1))[name = string("obj_3_cast_fp16")];
|
| 61 |
+
int32 obj_axis_0 = const()[name = string("obj_axis_0"), val = int32(0)];
|
| 62 |
+
tensor<fp16, [2, 1, 640]> output_states_2 = stack(axis = obj_axis_0, values = (input_5_lstm_layer_0_cast_fp16_2, input_5_cast_fp16_2))[name = string("obj_cast_fp16")];
|
| 63 |
+
tensor<int32, [3]> transpose_1_perm_0 = const()[name = string("transpose_1_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
|
| 64 |
+
tensor<int32, [3]> input_7_perm_0 = const()[name = string("input_7_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
|
| 65 |
+
string encoder_outputs_to_fp16_dtype_0 = const()[name = string("encoder_outputs_to_fp16_dtype_0"), val = string("fp16")];
|
| 66 |
+
tensor<fp16, [640, 1024]> joint_enc_weight_to_fp16 = const()[name = string("joint_enc_weight_to_fp16"), val = tensor<fp16, [640, 1024]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(14429952)))];
|
| 67 |
+
tensor<fp16, [640]> joint_enc_bias_to_fp16 = const()[name = string("joint_enc_bias_to_fp16"), val = tensor<fp16, [640]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(15740736)))];
|
| 68 |
+
tensor<fp16, [1, 1024, 1]> encoder_outputs_to_fp16 = cast(dtype = encoder_outputs_to_fp16_dtype_0, x = encoder_outputs)[name = string("cast_5")];
|
| 69 |
+
tensor<fp16, [1, 1, 1024]> input_7_cast_fp16 = transpose(perm = input_7_perm_0, x = encoder_outputs_to_fp16)[name = string("transpose_2")];
|
| 70 |
+
tensor<fp16, [1, 1, 640]> linear_0_cast_fp16 = linear(bias = joint_enc_bias_to_fp16, weight = joint_enc_weight_to_fp16, x = input_7_cast_fp16)[name = string("linear_0_cast_fp16")];
|
| 71 |
+
tensor<fp16, [640, 640]> joint_pred_weight_to_fp16 = const()[name = string("joint_pred_weight_to_fp16"), val = tensor<fp16, [640, 640]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(15742080)))];
|
| 72 |
+
tensor<fp16, [640]> joint_pred_bias_to_fp16 = const()[name = string("joint_pred_bias_to_fp16"), val = tensor<fp16, [640]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(16561344)))];
|
| 73 |
+
tensor<fp16, [1, 1, 640]> transpose_1_cast_fp16 = transpose(perm = transpose_1_perm_0, x = input_5_cast_fp16_0)[name = string("transpose_3")];
|
| 74 |
+
tensor<fp16, [1, 1, 640]> linear_1_cast_fp16 = linear(bias = joint_pred_bias_to_fp16, weight = joint_pred_weight_to_fp16, x = transpose_1_cast_fp16)[name = string("linear_1_cast_fp16")];
|
| 75 |
+
tensor<int32, [1]> var_78_axes_0 = const()[name = string("op_78_axes_0"), val = tensor<int32, [1]>([2])];
|
| 76 |
+
tensor<fp16, [1, 1, 1, 640]> var_78_cast_fp16 = expand_dims(axes = var_78_axes_0, x = linear_0_cast_fp16)[name = string("op_78_cast_fp16")];
|
| 77 |
+
tensor<int32, [1]> var_80_axes_0 = const()[name = string("op_80_axes_0"), val = tensor<int32, [1]>([1])];
|
| 78 |
+
tensor<fp16, [1, 1, 1, 640]> var_80_cast_fp16 = expand_dims(axes = var_80_axes_0, x = linear_1_cast_fp16)[name = string("op_80_cast_fp16")];
|
| 79 |
+
tensor<fp16, [1, 1, 1, 640]> input_11_cast_fp16 = add(x = var_78_cast_fp16, y = var_80_cast_fp16)[name = string("input_11_cast_fp16")];
|
| 80 |
+
tensor<fp16, [1, 1, 1, 640]> input_13_cast_fp16 = relu(x = input_11_cast_fp16)[name = string("input_13_cast_fp16")];
|
| 81 |
+
tensor<fp16, [1025, 640]> joint_joint_net_2_weight_to_fp16 = const()[name = string("joint_joint_net_2_weight_to_fp16"), val = tensor<fp16, [1025, 640]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(16562688)))];
|
| 82 |
+
tensor<fp16, [1025]> joint_joint_net_2_bias_to_fp16 = const()[name = string("joint_joint_net_2_bias_to_fp16"), val = tensor<fp16, [1025]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(17874752)))];
|
| 83 |
+
tensor<fp16, [1, 1, 1, 1025]> linear_2_cast_fp16 = linear(bias = joint_joint_net_2_bias_to_fp16, weight = joint_joint_net_2_weight_to_fp16, x = input_13_cast_fp16)[name = string("linear_2_cast_fp16")];
|
| 84 |
+
tensor<int32, [1]> var_91_axes_0 = const()[name = string("op_91_axes_0"), val = tensor<int32, [1]>([1])];
|
| 85 |
+
tensor<fp16, [1, 1, 1025]> var_91_cast_fp16 = squeeze(axes = var_91_axes_0, x = linear_2_cast_fp16)[name = string("op_91_cast_fp16")];
|
| 86 |
+
tensor<int32, [1]> var_93_axes_0 = const()[name = string("op_93_axes_0"), val = tensor<int32, [1]>([1])];
|
| 87 |
+
tensor<fp16, [1, 1025]> outputs = squeeze(axes = var_93_axes_0, x = var_91_cast_fp16)[name = string("op_93_cast_fp16")];
|
| 88 |
+
tensor<int32, [1]> target_length_tmp = identity(x = target_length)[name = string("target_length_tmp")];
|
| 89 |
+
} -> (outputs, output_states_1, output_states_2);
|
| 90 |
+
}
|
fp16/decoder.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:96cac67a1352e45a2418284779dbd5efe5865159b7b92f328247e5ed31485f52
|
| 3 |
+
size 17876866
|
fp16/decoder.mlpackage/Data/com.apple.CoreML/model.mlmodel
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ee08abd75c1af1efc33b494a228e6cfdb25ec762021850a59b9009a7834421b0
|
| 3 |
+
size 14788
|
fp16/decoder.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:96cac67a1352e45a2418284779dbd5efe5865159b7b92f328247e5ed31485f52
|
| 3 |
+
size 17876866
|
fp16/decoder.mlpackage/Manifest.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fileFormatVersion": "1.0.0",
|
| 3 |
+
"itemInfoEntries": {
|
| 4 |
+
"716E82BC-EEDE-4F16-85FB-29B774C8BD4D": {
|
| 5 |
+
"author": "com.apple.CoreML",
|
| 6 |
+
"description": "CoreML Model Weights",
|
| 7 |
+
"name": "weights",
|
| 8 |
+
"path": "com.apple.CoreML/weights"
|
| 9 |
+
},
|
| 10 |
+
"BF97D4BC-AF3A-49CF-AC07-8E15221C4E82": {
|
| 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": "BF97D4BC-AF3A-49CF-AC07-8E15221C4E82"
|
| 18 |
+
}
|
fp16/encoder.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:53e793cb315f6944401df77bdfc332cd08303e72b27f2875394e001f1a4f5898
|
| 3 |
+
size 243
|
fp16/encoder.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:46d6d38cce3cc26144a2a7cee72b7f41cb7b1b422ac7ce010a17daa7ea2cc981
|
| 3 |
+
size 616
|
fp16/encoder.mlmodelc/metadata.json
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"metadataOutputVersion" : "3.0",
|
| 4 |
+
"storagePrecision" : "Mixed (Float16, Int32)",
|
| 5 |
+
"outputSchema" : [
|
| 6 |
+
{
|
| 7 |
+
"hasShapeFlexibility" : "0",
|
| 8 |
+
"isOptional" : "0",
|
| 9 |
+
"dataType" : "Float16",
|
| 10 |
+
"formattedType" : "MultiArray (Float16 1 × 1024 × 7)",
|
| 11 |
+
"shortDescription" : "",
|
| 12 |
+
"shape" : "[1, 1024, 7]",
|
| 13 |
+
"name" : "encoded",
|
| 14 |
+
"type" : "MultiArray"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"hasShapeFlexibility" : "0",
|
| 18 |
+
"isOptional" : "0",
|
| 19 |
+
"dataType" : "Int32",
|
| 20 |
+
"formattedType" : "MultiArray (Int32 1)",
|
| 21 |
+
"shortDescription" : "",
|
| 22 |
+
"shape" : "[1]",
|
| 23 |
+
"name" : "encoded_length",
|
| 24 |
+
"type" : "MultiArray"
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"hasShapeFlexibility" : "0",
|
| 28 |
+
"isOptional" : "0",
|
| 29 |
+
"dataType" : "Float16",
|
| 30 |
+
"formattedType" : "MultiArray (Float16 1 × 24 × 70 × 1024)",
|
| 31 |
+
"shortDescription" : "",
|
| 32 |
+
"shape" : "[1, 24, 70, 1024]",
|
| 33 |
+
"name" : "cache_channel_out",
|
| 34 |
+
"type" : "MultiArray"
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"hasShapeFlexibility" : "0",
|
| 38 |
+
"isOptional" : "0",
|
| 39 |
+
"dataType" : "Float16",
|
| 40 |
+
"formattedType" : "MultiArray (Float16 1 × 24 × 1024 × 8)",
|
| 41 |
+
"shortDescription" : "",
|
| 42 |
+
"shape" : "[1, 24, 1024, 8]",
|
| 43 |
+
"name" : "cache_time_out",
|
| 44 |
+
"type" : "MultiArray"
|
| 45 |
+
},
|
| 46 |
+
{
|
| 47 |
+
"hasShapeFlexibility" : "0",
|
| 48 |
+
"isOptional" : "0",
|
| 49 |
+
"dataType" : "Int32",
|
| 50 |
+
"formattedType" : "MultiArray (Int32 1)",
|
| 51 |
+
"shortDescription" : "",
|
| 52 |
+
"shape" : "[1]",
|
| 53 |
+
"name" : "cache_len_out",
|
| 54 |
+
"type" : "MultiArray"
|
| 55 |
+
}
|
| 56 |
+
],
|
| 57 |
+
"modelParameters" : [
|
| 58 |
+
|
| 59 |
+
],
|
| 60 |
+
"specificationVersion" : 9,
|
| 61 |
+
"mlProgramOperationTypeHistogram" : {
|
| 62 |
+
"Ios18.expandDims" : 5,
|
| 63 |
+
"Ios18.mul" : 97,
|
| 64 |
+
"Ios18.softmax" : 24,
|
| 65 |
+
"Ios18.matmul" : 72,
|
| 66 |
+
"Ios18.logicalNot" : 2,
|
| 67 |
+
"Ios18.sigmoid" : 24,
|
| 68 |
+
"Split" : 24,
|
| 69 |
+
"Ios18.greaterEqual" : 1,
|
| 70 |
+
"Select" : 72,
|
| 71 |
+
"Tile" : 1,
|
| 72 |
+
"Ios18.add" : 170,
|
| 73 |
+
"Ios18.layerNorm" : 144,
|
| 74 |
+
"Ios18.reshape" : 145,
|
| 75 |
+
"Pad" : 27,
|
| 76 |
+
"Ios18.linear" : 193,
|
| 77 |
+
"Ios18.conv" : 77,
|
| 78 |
+
"Ios18.relu" : 3,
|
| 79 |
+
"Ios18.concat" : 72,
|
| 80 |
+
"Ios18.logicalAnd" : 3,
|
| 81 |
+
"Ios18.silu" : 72,
|
| 82 |
+
"Ios18.transpose" : 224,
|
| 83 |
+
"Ios18.cast" : 5,
|
| 84 |
+
"Stack" : 2,
|
| 85 |
+
"Ios18.clip" : 1,
|
| 86 |
+
"Ios18.sliceByIndex" : 147
|
| 87 |
+
},
|
| 88 |
+
"computePrecision" : "Mixed (Float16, Int32)",
|
| 89 |
+
"isUpdatable" : "0",
|
| 90 |
+
"stateSchema" : [
|
| 91 |
+
|
| 92 |
+
],
|
| 93 |
+
"availability" : {
|
| 94 |
+
"macOS" : "15.0",
|
| 95 |
+
"tvOS" : "18.0",
|
| 96 |
+
"visionOS" : "2.0",
|
| 97 |
+
"watchOS" : "11.0",
|
| 98 |
+
"iOS" : "18.0",
|
| 99 |
+
"macCatalyst" : "18.0"
|
| 100 |
+
},
|
| 101 |
+
"modelType" : {
|
| 102 |
+
"name" : "MLModelType_mlProgram"
|
| 103 |
+
},
|
| 104 |
+
"userDefinedMetadata" : {
|
| 105 |
+
"com.github.apple.coremltools.conversion_date" : "2026-03-22",
|
| 106 |
+
"com.github.apple.coremltools.source" : "torch==2.7.1",
|
| 107 |
+
"com.github.apple.coremltools.version" : "9.0b1",
|
| 108 |
+
"com.github.apple.coremltools.source_dialect" : "TorchScript"
|
| 109 |
+
},
|
| 110 |
+
"inputSchema" : [
|
| 111 |
+
{
|
| 112 |
+
"hasShapeFlexibility" : "0",
|
| 113 |
+
"isOptional" : "0",
|
| 114 |
+
"dataType" : "Float32",
|
| 115 |
+
"formattedType" : "MultiArray (Float32 1 × 128 × 65)",
|
| 116 |
+
"shortDescription" : "",
|
| 117 |
+
"shape" : "[1, 128, 65]",
|
| 118 |
+
"name" : "audio_signal",
|
| 119 |
+
"type" : "MultiArray"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"hasShapeFlexibility" : "0",
|
| 123 |
+
"isOptional" : "0",
|
| 124 |
+
"dataType" : "Float32",
|
| 125 |
+
"formattedType" : "MultiArray (Float32 1 × 24 × 70 × 1024)",
|
| 126 |
+
"shortDescription" : "",
|
| 127 |
+
"shape" : "[1, 24, 70, 1024]",
|
| 128 |
+
"name" : "cache_last_channel",
|
| 129 |
+
"type" : "MultiArray"
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"hasShapeFlexibility" : "0",
|
| 133 |
+
"isOptional" : "0",
|
| 134 |
+
"dataType" : "Float32",
|
| 135 |
+
"formattedType" : "MultiArray (Float32 1 × 24 × 1024 × 8)",
|
| 136 |
+
"shortDescription" : "",
|
| 137 |
+
"shape" : "[1, 24, 1024, 8]",
|
| 138 |
+
"name" : "cache_last_time",
|
| 139 |
+
"type" : "MultiArray"
|
| 140 |
+
},
|
| 141 |
+
{
|
| 142 |
+
"hasShapeFlexibility" : "0",
|
| 143 |
+
"isOptional" : "0",
|
| 144 |
+
"dataType" : "Int32",
|
| 145 |
+
"formattedType" : "MultiArray (Int32 1)",
|
| 146 |
+
"shortDescription" : "",
|
| 147 |
+
"shape" : "[1]",
|
| 148 |
+
"name" : "cache_last_channel_len",
|
| 149 |
+
"type" : "MultiArray"
|
| 150 |
+
}
|
| 151 |
+
],
|
| 152 |
+
"generatedClassName" : "encoder",
|
| 153 |
+
"method" : "predict"
|
| 154 |
+
}
|
| 155 |
+
]
|
fp16/encoder.mlmodelc/model.mil
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
fp16/encoder.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d39fe49fba8083210400f198545b5e65d8319107f1eb82167896c52d5b491843
|
| 3 |
+
size 1175523648
|
fp16/encoder.mlpackage/Data/com.apple.CoreML/model.mlmodel
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a4fe03b263645addcfaa907ea1950a770d5c24a63981bcc96b704cea65d71bb8
|
| 3 |
+
size 698056
|
fp16/encoder.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:d39fe49fba8083210400f198545b5e65d8319107f1eb82167896c52d5b491843
|
| 3 |
+
size 1175523648
|
fp16/encoder.mlpackage/Manifest.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fileFormatVersion": "1.0.0",
|
| 3 |
+
"itemInfoEntries": {
|
| 4 |
+
"46E9C84C-1261-481E-995D-D1CC48828B73": {
|
| 5 |
+
"author": "com.apple.CoreML",
|
| 6 |
+
"description": "CoreML Model Specification",
|
| 7 |
+
"name": "model.mlmodel",
|
| 8 |
+
"path": "com.apple.CoreML/model.mlmodel"
|
| 9 |
+
},
|
| 10 |
+
"4C4FF97E-3218-47F5-89B3-4A9A6CB8FFCD": {
|
| 11 |
+
"author": "com.apple.CoreML",
|
| 12 |
+
"description": "CoreML Model Weights",
|
| 13 |
+
"name": "weights",
|
| 14 |
+
"path": "com.apple.CoreML/weights"
|
| 15 |
+
}
|
| 16 |
+
},
|
| 17 |
+
"rootModelIdentifier": "46E9C84C-1261-481E-995D-D1CC48828B73"
|
| 18 |
+
}
|
fp16/metadata.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model": "nvidia/nemotron-speech-streaming-en-0.6b",
|
| 3 |
+
"sample_rate": 16000,
|
| 4 |
+
"mel_features": 128,
|
| 5 |
+
"chunk_mel_frames": 56,
|
| 6 |
+
"pre_encode_cache": 9,
|
| 7 |
+
"total_mel_frames": 65,
|
| 8 |
+
"vocab_size": 1024,
|
| 9 |
+
"blank_idx": 1024,
|
| 10 |
+
"encoder_dim": 1024,
|
| 11 |
+
"decoder_hidden": 640,
|
| 12 |
+
"decoder_layers": 2,
|
| 13 |
+
"cache_channel_shape": [
|
| 14 |
+
24,
|
| 15 |
+
1,
|
| 16 |
+
70,
|
| 17 |
+
1024
|
| 18 |
+
],
|
| 19 |
+
"cache_time_shape": [
|
| 20 |
+
24,
|
| 21 |
+
1,
|
| 22 |
+
1024,
|
| 23 |
+
8
|
| 24 |
+
]
|
| 25 |
+
}
|