aoiandroid commited on
Commit
f6af2e4
·
verified ·
1 Parent(s): 9d848e6

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. Decoder.mlmodelc/analytics/coremldata.bin +3 -0
  2. Decoder.mlmodelc/coremldata.bin +3 -0
  3. Decoder.mlmodelc/metadata.json +123 -0
  4. Decoder.mlmodelc/model.mil +73 -0
  5. Decoder.mlmodelc/weights/weight.bin +3 -0
  6. Encoder.mlmodelc/analytics/coremldata.bin +3 -0
  7. Encoder.mlmodelc/coremldata.bin +3 -0
  8. Encoder.mlmodelc/metadata.json +106 -0
  9. Encoder.mlmodelc/model.mil +0 -0
  10. Encoder.mlmodelc/weights/weight.bin +3 -0
  11. JointDecision.mlmodelc/analytics/coremldata.bin +3 -0
  12. JointDecision.mlmodelc/coremldata.bin +3 -0
  13. JointDecision.mlmodelc/metadata.json +103 -0
  14. JointDecision.mlmodelc/model.mil +58 -0
  15. JointDecision.mlmodelc/weights/weight.bin +3 -0
  16. Melspectogram.mlmodelc/analytics/coremldata.bin +3 -0
  17. Melspectogram.mlmodelc/coremldata.bin +3 -0
  18. Melspectogram.mlmodelc/model.mil +157 -0
  19. Melspectogram.mlmodelc/weights/weight.bin +3 -0
  20. Melspectrogram_v2.mlmodelc/analytics/coremldata.bin +3 -0
  21. Melspectrogram_v2.mlmodelc/coremldata.bin +3 -0
  22. Melspectrogram_v2.mlmodelc/metadata.json +108 -0
  23. Melspectrogram_v2.mlmodelc/model.mil +177 -0
  24. Melspectrogram_v2.mlmodelc/weights/weight.bin +3 -0
  25. ParakeetDecoder.mlmodelc/analytics/coremldata.bin +3 -0
  26. ParakeetDecoder.mlmodelc/coremldata.bin +3 -0
  27. ParakeetDecoder.mlmodelc/model.mil +72 -0
  28. ParakeetDecoder.mlmodelc/weights/weight.bin +3 -0
  29. ParakeetEncoder.mlmodelc/analytics/coremldata.bin +3 -0
  30. ParakeetEncoder.mlmodelc/coremldata.bin +3 -0
  31. ParakeetEncoder.mlmodelc/model.mil +0 -0
  32. ParakeetEncoder.mlmodelc/weights/weight.bin +3 -0
  33. ParakeetEncoder_4bit_par.mlmodelc/analytics/coremldata.bin +3 -0
  34. ParakeetEncoder_4bit_par.mlmodelc/coremldata.bin +3 -0
  35. ParakeetEncoder_4bit_par.mlmodelc/metadata.json +103 -0
  36. ParakeetEncoder_4bit_par.mlmodelc/model.mil +0 -0
  37. ParakeetEncoder_4bit_par.mlmodelc/weights/weight.bin +3 -0
  38. ParakeetEncoder_v2.mlmodelc/analytics/coremldata.bin +3 -0
  39. ParakeetEncoder_v2.mlmodelc/coremldata.bin +3 -0
  40. ParakeetEncoder_v2.mlmodelc/metadata.json +103 -0
  41. ParakeetEncoder_v2.mlmodelc/model.mil +0 -0
  42. ParakeetEncoder_v2.mlmodelc/weights/weight.bin +3 -0
  43. Preprocessor.mlmodelc/analytics/coremldata.bin +3 -0
  44. Preprocessor.mlmodelc/coremldata.bin +3 -0
  45. Preprocessor.mlmodelc/metadata.json +110 -0
  46. Preprocessor.mlmodelc/model.mil +169 -0
  47. Preprocessor.mlmodelc/weights/weight.bin +3 -0
  48. README.md +59 -0
  49. RNNTJoint.mlmodelc/analytics/coremldata.bin +3 -0
  50. RNNTJoint.mlmodelc/coremldata.bin +3 -0
Decoder.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:46de1a6fe2e49d19a2125bc91acf020df7f2aea84ba821532aade8427a440b05
3
+ size 243
Decoder.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d200ca07694a347f6d02a3886a062ae839831e094e443222f2e48a14945966a8
3
+ size 554
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-25",
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
+ ]
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, [1025, 640]> module_prediction_embed_weight_to_fp16 = const()[name = tensor<string, []>("module_prediction_embed_weight_to_fp16"), val = tensor<fp16, [1025, 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, []>(1025)];
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, []>(1312128)))];
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, []>(4588992)))];
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, []>(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 = 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, []>(7871040)))];
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, []>(11147904)))];
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, []>(14424768)))];
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
+ }
Decoder.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:27d26890221d82322c1092fd99d7b40578e435d5cf4b83c887c42603caf97aba
3
+ size 14429952
Encoder.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:42e638870d73f26b332918a3496ce36793fbb413a81cbd3d16ba01328637a105
3
+ size 243
Encoder.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4def7aa848599ad0e17a8b9a982edcdbf33cf92e1f4b798de32e2ca0bc74b030
3
+ size 485
Encoder.mlmodelc/metadata.json ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "shortDescription" : "enc6bit-palettize quantized - encoder",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32 1 × 1024 × 188)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1024, 188]",
13
+ "name" : "encoder",
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" : "encoder_length",
24
+ "type" : "MultiArray"
25
+ }
26
+ ],
27
+ "storagePrecision" : "Mixed (Float16, Palettized (6 bits))",
28
+ "modelParameters" : [
29
+
30
+ ],
31
+ "author" : "Fluid Inference",
32
+ "specificationVersion" : 8,
33
+ "mlProgramOperationTypeHistogram" : {
34
+ "Ios17.floor" : 3,
35
+ "Ios17.logicalAnd" : 2,
36
+ "Ios17.reshape" : 145,
37
+ "Ios16.softmax" : 24,
38
+ "Ios17.matmul" : 72,
39
+ "Ios17.transpose" : 172,
40
+ "Split" : 24,
41
+ "Ios17.expandDims" : 5,
42
+ "Select" : 72,
43
+ "Ios17.add" : 174,
44
+ "Tile" : 1,
45
+ "Ios17.sliceByIndex" : 48,
46
+ "Ios16.sigmoid" : 24,
47
+ "Pad" : 48,
48
+ "Ios17.logicalNot" : 2,
49
+ "Ios17.layerNorm" : 120,
50
+ "Ios16.silu" : 72,
51
+ "Ios17.less" : 1,
52
+ "Ios16.constexprLutToDense" : 294,
53
+ "Ios17.conv" : 77,
54
+ "Ios16.relu" : 3,
55
+ "Ios17.linear" : 193,
56
+ "Ios17.cast" : 4,
57
+ "Ios17.mul" : 99
58
+ },
59
+ "computePrecision" : "Mixed (Float16, Float32, Int32)",
60
+ "isUpdatable" : "0",
61
+ "stateSchema" : [
62
+
63
+ ],
64
+ "availability" : {
65
+ "macOS" : "14.0",
66
+ "tvOS" : "17.0",
67
+ "visionOS" : "1.0",
68
+ "watchOS" : "10.0",
69
+ "iOS" : "17.0",
70
+ "macCatalyst" : "17.0"
71
+ },
72
+ "modelType" : {
73
+ "name" : "MLModelType_mlProgram"
74
+ },
75
+ "inputSchema" : [
76
+ {
77
+ "hasShapeFlexibility" : "0",
78
+ "isOptional" : "0",
79
+ "dataType" : "Float32",
80
+ "formattedType" : "MultiArray (Float32 1 × 128 × 1501)",
81
+ "shortDescription" : "",
82
+ "shape" : "[1, 128, 1501]",
83
+ "name" : "mel",
84
+ "type" : "MultiArray"
85
+ },
86
+ {
87
+ "hasShapeFlexibility" : "0",
88
+ "isOptional" : "0",
89
+ "dataType" : "Int32",
90
+ "formattedType" : "MultiArray (Int32 1)",
91
+ "shortDescription" : "",
92
+ "shape" : "[1]",
93
+ "name" : "mel_length",
94
+ "type" : "MultiArray"
95
+ }
96
+ ],
97
+ "userDefinedMetadata" : {
98
+ "com.github.apple.coremltools.conversion_date" : "2025-09-25",
99
+ "com.github.apple.coremltools.source" : "torch==2.7.0",
100
+ "com.github.apple.coremltools.version" : "9.0b1",
101
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
102
+ },
103
+ "generatedClassName" : "parakeet_encoder",
104
+ "method" : "predict"
105
+ }
106
+ ]
Encoder.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
Encoder.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4adc7ad44f9d05e1bffeb2b06d3bb02861a5c7602dff63a6b494aed3bf8a6c3e
3
+ size 445187200
JointDecision.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f1183ba213bb94a918c8d2cad19ab045320618f97f6ca662245b3936d7b090f7
3
+ size 243
JointDecision.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e2c6752f1c8cf2d3f6f26ec93195c9bfa759ad59edf9f806696a138154f96f11
3
+ size 534
JointDecision.mlmodelc/metadata.json ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "shortDescription" : "Parakeet single-step joint decision (current frame)",
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
+ "storagePrecision" : "Float16",
38
+ "modelParameters" : [
39
+
40
+ ],
41
+ "author" : "Fluid Inference",
42
+ "specificationVersion" : 8,
43
+ "mlProgramOperationTypeHistogram" : {
44
+ "Ios17.reduceArgmax" : 2,
45
+ "Ios17.squeeze" : 1,
46
+ "Ios17.cast" : 4,
47
+ "Ios17.linear" : 3,
48
+ "Ios17.transpose" : 2,
49
+ "Ios17.sliceByIndex" : 2,
50
+ "Ios17.add" : 1,
51
+ "Ios16.relu" : 1,
52
+ "Ios16.softmax" : 1,
53
+ "Ios17.gatherAlongAxis" : 1,
54
+ "Ios17.expandDims" : 3
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" : "Float32",
77
+ "formattedType" : "MultiArray (Float32 1 × 1024 × 1)",
78
+ "shortDescription" : "",
79
+ "shape" : "[1, 1024, 1]",
80
+ "name" : "encoder_step",
81
+ "type" : "MultiArray"
82
+ },
83
+ {
84
+ "hasShapeFlexibility" : "0",
85
+ "isOptional" : "0",
86
+ "dataType" : "Float32",
87
+ "formattedType" : "MultiArray (Float32 1 × 640 × 1)",
88
+ "shortDescription" : "",
89
+ "shape" : "[1, 640, 1]",
90
+ "name" : "decoder_step",
91
+ "type" : "MultiArray"
92
+ }
93
+ ],
94
+ "userDefinedMetadata" : {
95
+ "com.github.apple.coremltools.conversion_date" : "2025-09-25",
96
+ "com.github.apple.coremltools.source" : "torch==2.7.0",
97
+ "com.github.apple.coremltools.version" : "9.0b1",
98
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
99
+ },
100
+ "generatedClassName" : "parakeet_joint_decision_single_step",
101
+ "method" : "predict"
102
+ }
103
+ ]
JointDecision.mlmodelc/model.mil ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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, [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_3")];
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_2")];
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, [1030, 640]> joint_module_joint_net_2_weight_to_fp16 = const()[name = tensor<string, []>("joint_module_joint_net_2_weight_to_fp16"), val = tensor<fp16, [1030, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2132800)))];
26
+ tensor<fp16, [1030]> joint_module_joint_net_2_bias_to_fp16 = const()[name = tensor<string, []>("joint_module_joint_net_2_bias_to_fp16"), val = tensor<fp16, [1030]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(3451264)))];
27
+ tensor<fp16, [1, 1, 1, 1030]> 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, 1025])];
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, 1025]> 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, 1025])];
33
+ tensor<int32, [4]> duration_logits_end_0 = const()[name = tensor<string, []>("duration_logits_end_0"), val = tensor<int32, [4]>([1, 1, 1, 1030])];
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, 1025]> 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_1")];
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<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_0")];
57
+ } -> (token_id, token_prob, duration);
58
+ }
JointDecision.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ca22a65903a05e64137677da608077578a8606090a598abf4875fa6199aaa19d
3
+ size 3453388
Melspectogram.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6271a1b89644607c3ab203f79b33c86a286c041c75cb9c203332322223a398d3
3
+ size 243
Melspectogram.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:19e161ad38b48aee83ab23e94a639fd2e4fc49aacbed47086c832bcfa65645c9
3
+ size 396
Melspectogram.mlmodelc/model.mil ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3405.2.1"}, {"coremlc-version", "3405.2.1"}, {"coremltools-component-torch", "2.4.0"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "7.2"}})]
3
+ {
4
+ func main<ios15>(tensor<int32, [1]> audio_length, tensor<fp32, [1, ?]> audio_signal) [FlexibleShapeInformation = tuple<tuple<tensor<string, []>, dict<tensor<string, []>, tensor<int32, [?]>>>, tuple<tensor<string, []>, dict<tensor<string, []>, list<tensor<int32, [2]>, ?>>>>((("DefaultShapes", {{"audio_signal", [1, 1]}}), ("RangeDims", {{"audio_signal", [[1, 1], [1, 160000]]}})))] {
5
+ tensor<int32, []> var_6 = const()[name = tensor<string, []>("op_6"), val = tensor<int32, []>(512)];
6
+ tensor<int32, [1]> var_7 = add(x = audio_length, y = var_6)[name = tensor<string, []>("op_7")];
7
+ tensor<int32, []> var_9 = const()[name = tensor<string, []>("op_9"), val = tensor<int32, []>(512)];
8
+ tensor<int32, [1]> var_10 = sub(x = var_7, y = var_9)[name = tensor<string, []>("op_10")];
9
+ tensor<int32, []> var_11 = const()[name = tensor<string, []>("op_11"), val = tensor<int32, []>(160)];
10
+ tensor<int32, [1]> floor_div_0 = floor_div(x = var_10, y = var_11)[name = tensor<string, []>("floor_div_0")];
11
+ tensor<string, []> var_12_to_fp16_dtype_0 = const()[name = tensor<string, []>("op_12_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
12
+ tensor<fp16, []> var_14_promoted_to_fp16 = const()[name = tensor<string, []>("op_14_promoted_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
13
+ tensor<fp16, [1]> cast_15 = cast(dtype = var_12_to_fp16_dtype_0, x = floor_div_0)[name = tensor<string, []>("cast_15")];
14
+ tensor<fp16, [1]> seq_len_1_cast_fp16 = add(x = cast_15, y = var_14_promoted_to_fp16)[name = tensor<string, []>("seq_len_1_cast_fp16")];
15
+ tensor<string, []> seq_len_dtype_0 = const()[name = tensor<string, []>("seq_len_dtype_0"), val = tensor<string, []>("int32")];
16
+ tensor<int32, [2]> var_28_begin_0 = const()[name = tensor<string, []>("op_28_begin_0"), val = tensor<int32, [2]>([0, 0])];
17
+ tensor<int32, [2]> var_28_end_0 = const()[name = tensor<string, []>("op_28_end_0"), val = tensor<int32, [2]>([1, 1])];
18
+ tensor<bool, [2]> var_28_end_mask_0 = const()[name = tensor<string, []>("op_28_end_mask_0"), val = tensor<bool, [2]>([true, false])];
19
+ tensor<bool, [2]> var_28_squeeze_mask_0 = const()[name = tensor<string, []>("op_28_squeeze_mask_0"), val = tensor<bool, [2]>([false, true])];
20
+ tensor<string, []> audio_signal_to_fp16_dtype_0 = const()[name = tensor<string, []>("audio_signal_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
21
+ tensor<fp16, [1, ?]> cast_13 = cast(dtype = audio_signal_to_fp16_dtype_0, x = audio_signal)[name = tensor<string, []>("cast_13")];
22
+ tensor<fp16, [1]> var_28_cast_fp16 = slice_by_index(begin = var_28_begin_0, end = var_28_end_0, end_mask = var_28_end_mask_0, squeeze_mask = var_28_squeeze_mask_0, x = cast_13)[name = tensor<string, []>("op_28_cast_fp16")];
23
+ tensor<int32, [1]> var_30_axes_0 = const()[name = tensor<string, []>("op_30_axes_0"), val = tensor<int32, [1]>([1])];
24
+ tensor<fp16, [1, 1]> var_30_cast_fp16 = expand_dims(axes = var_30_axes_0, x = var_28_cast_fp16)[name = tensor<string, []>("op_30_cast_fp16")];
25
+ tensor<int32, [2]> var_40_begin_0 = const()[name = tensor<string, []>("op_40_begin_0"), val = tensor<int32, [2]>([0, 1])];
26
+ tensor<int32, [2]> var_40_end_0 = const()[name = tensor<string, []>("op_40_end_0"), val = tensor<int32, [2]>([1, 0])];
27
+ tensor<bool, [2]> var_40_end_mask_0 = const()[name = tensor<string, []>("op_40_end_mask_0"), val = tensor<bool, [2]>([true, true])];
28
+ tensor<fp16, [1, ?]> var_40_cast_fp16 = slice_by_index(begin = var_40_begin_0, end = var_40_end_0, end_mask = var_40_end_mask_0, x = cast_13)[name = tensor<string, []>("op_40_cast_fp16")];
29
+ tensor<int32, [2]> var_50_begin_0 = const()[name = tensor<string, []>("op_50_begin_0"), val = tensor<int32, [2]>([0, 0])];
30
+ tensor<int32, [2]> var_50_end_0 = const()[name = tensor<string, []>("op_50_end_0"), val = tensor<int32, [2]>([1, -1])];
31
+ tensor<bool, [2]> var_50_end_mask_0 = const()[name = tensor<string, []>("op_50_end_mask_0"), val = tensor<bool, [2]>([true, false])];
32
+ tensor<fp16, [1, ?]> var_50_cast_fp16 = slice_by_index(begin = var_50_begin_0, end = var_50_end_0, end_mask = var_50_end_mask_0, x = cast_13)[name = tensor<string, []>("op_50_cast_fp16")];
33
+ tensor<fp16, []> var_51_to_fp16 = const()[name = tensor<string, []>("op_51_to_fp16"), val = tensor<fp16, []>(0x1.f0cp-1)];
34
+ tensor<fp16, [1, ?]> var_52_cast_fp16 = mul(x = var_50_cast_fp16, y = var_51_to_fp16)[name = tensor<string, []>("op_52_cast_fp16")];
35
+ tensor<fp16, [1, ?]> var_54_cast_fp16 = sub(x = var_40_cast_fp16, y = var_52_cast_fp16)[name = tensor<string, []>("op_54_cast_fp16")];
36
+ tensor<int32, []> var_56 = const()[name = tensor<string, []>("op_56"), val = tensor<int32, []>(1)];
37
+ tensor<bool, []> input_1_interleave_0 = const()[name = tensor<string, []>("input_1_interleave_0"), val = tensor<bool, []>(false)];
38
+ tensor<fp16, [1, ?]> input_1_cast_fp16 = concat(axis = var_56, interleave = input_1_interleave_0, values = (var_30_cast_fp16, var_54_cast_fp16))[name = tensor<string, []>("input_1_cast_fp16")];
39
+ tensor<int32, [3]> concat_0x = const()[name = tensor<string, []>("concat_0x"), val = tensor<int32, [3]>([1, 1, -1])];
40
+ tensor<fp16, [1, 1, ?]> input_3_cast_fp16 = reshape(shape = concat_0x, x = input_1_cast_fp16)[name = tensor<string, []>("input_3_cast_fp16")];
41
+ tensor<int32, [6]> input_5_pad_0 = const()[name = tensor<string, []>("input_5_pad_0"), val = tensor<int32, [6]>([0, 0, 0, 0, 256, 256])];
42
+ tensor<string, []> input_5_mode_0 = const()[name = tensor<string, []>("input_5_mode_0"), val = tensor<string, []>("reflect")];
43
+ tensor<fp16, []> const_0_to_fp16 = const()[name = tensor<string, []>("const_0_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
44
+ tensor<fp16, [1, 1, ?]> input_5_cast_fp16 = pad(constant_val = const_0_to_fp16, mode = input_5_mode_0, pad = input_5_pad_0, x = input_3_cast_fp16)[name = tensor<string, []>("input_5_cast_fp16")];
45
+ tensor<int32, [2]> concat_1x = const()[name = tensor<string, []>("concat_1x"), val = tensor<int32, [2]>([1, -1])];
46
+ tensor<fp16, [1, ?]> input_cast_fp16 = reshape(shape = concat_1x, x = input_5_cast_fp16)[name = tensor<string, []>("input_cast_fp16")];
47
+ tensor<int32, [1]> expand_dims_3 = const()[name = tensor<string, []>("expand_dims_3"), val = tensor<int32, [1]>([160])];
48
+ tensor<int32, [1]> expand_dims_4_axes_0 = const()[name = tensor<string, []>("expand_dims_4_axes_0"), val = tensor<int32, [1]>([1])];
49
+ tensor<fp16, [1, 1, ?]> expand_dims_4_cast_fp16 = expand_dims(axes = expand_dims_4_axes_0, x = input_cast_fp16)[name = tensor<string, []>("expand_dims_4_cast_fp16")];
50
+ tensor<string, []> conv_0_pad_type_0 = const()[name = tensor<string, []>("conv_0_pad_type_0"), val = tensor<string, []>("valid")];
51
+ tensor<int32, [2]> conv_0_pad_0 = const()[name = tensor<string, []>("conv_0_pad_0"), val = tensor<int32, [2]>([0, 0])];
52
+ tensor<int32, [1]> conv_0_dilations_0 = const()[name = tensor<string, []>("conv_0_dilations_0"), val = tensor<int32, [1]>([1])];
53
+ tensor<int32, []> conv_0_groups_0 = const()[name = tensor<string, []>("conv_0_groups_0"), val = tensor<int32, []>(1)];
54
+ tensor<fp16, [257, 1, 512]> expand_dims_1_to_fp16 = const()[name = tensor<string, []>("expand_dims_1_to_fp16"), val = tensor<fp16, [257, 1, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
55
+ tensor<fp16, [1, 257, ?]> conv_0_cast_fp16 = conv(dilations = conv_0_dilations_0, groups = conv_0_groups_0, pad = conv_0_pad_0, pad_type = conv_0_pad_type_0, strides = expand_dims_3, weight = expand_dims_1_to_fp16, x = expand_dims_4_cast_fp16)[name = tensor<string, []>("conv_0_cast_fp16")];
56
+ tensor<string, []> conv_1_pad_type_0 = const()[name = tensor<string, []>("conv_1_pad_type_0"), val = tensor<string, []>("valid")];
57
+ tensor<int32, [2]> conv_1_pad_0 = const()[name = tensor<string, []>("conv_1_pad_0"), val = tensor<int32, [2]>([0, 0])];
58
+ tensor<int32, [1]> conv_1_dilations_0 = const()[name = tensor<string, []>("conv_1_dilations_0"), val = tensor<int32, [1]>([1])];
59
+ tensor<int32, []> conv_1_groups_0 = const()[name = tensor<string, []>("conv_1_groups_0"), val = tensor<int32, []>(1)];
60
+ tensor<fp16, [257, 1, 512]> expand_dims_2_to_fp16 = const()[name = tensor<string, []>("expand_dims_2_to_fp16"), val = tensor<fp16, [257, 1, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(263296)))];
61
+ tensor<fp16, [1, 257, ?]> conv_1_cast_fp16 = conv(dilations = conv_1_dilations_0, groups = conv_1_groups_0, pad = conv_1_pad_0, pad_type = conv_1_pad_type_0, strides = expand_dims_3, weight = expand_dims_2_to_fp16, x = expand_dims_4_cast_fp16)[name = tensor<string, []>("conv_1_cast_fp16")];
62
+ tensor<int32, []> stack_0_axis_0 = const()[name = tensor<string, []>("stack_0_axis_0"), val = tensor<int32, []>(-1)];
63
+ tensor<fp16, [1, 257, ?, 2]> stack_0_cast_fp16 = stack(axis = stack_0_axis_0, values = (conv_0_cast_fp16, conv_1_cast_fp16))[name = tensor<string, []>("stack_0_cast_fp16")];
64
+ tensor<fp16, []> var_93_promoted_to_fp16 = const()[name = tensor<string, []>("op_93_promoted_to_fp16"), val = tensor<fp16, []>(0x1p+1)];
65
+ tensor<fp16, [1, 257, ?, 2]> var_94_cast_fp16 = pow(x = stack_0_cast_fp16, y = var_93_promoted_to_fp16)[name = tensor<string, []>("op_94_cast_fp16")];
66
+ tensor<int32, [1]> var_96 = const()[name = tensor<string, []>("op_96"), val = tensor<int32, [1]>([-1])];
67
+ tensor<bool, []> var_97 = const()[name = tensor<string, []>("op_97"), val = tensor<bool, []>(false)];
68
+ tensor<fp16, [1, 257, ?]> var_99_cast_fp16 = reduce_sum(axes = var_96, keep_dims = var_97, x = var_94_cast_fp16)[name = tensor<string, []>("op_99_cast_fp16")];
69
+ tensor<fp16, [1, 257, ?]> x_7_cast_fp16 = identity(x = var_99_cast_fp16)[name = tensor<string, []>("x_7_cast_fp16")];
70
+ tensor<bool, []> x_9_transpose_x_0 = const()[name = tensor<string, []>("x_9_transpose_x_0"), val = tensor<bool, []>(false)];
71
+ tensor<bool, []> x_9_transpose_y_0 = const()[name = tensor<string, []>("x_9_transpose_y_0"), val = tensor<bool, []>(false)];
72
+ tensor<fp16, [1, 128, 257]> filterbanks_to_fp16 = const()[name = tensor<string, []>("filterbanks_to_fp16"), val = tensor<fp16, [1, 128, 257]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(526528)))];
73
+ tensor<fp16, [1, 128, ?]> x_9_cast_fp16 = matmul(transpose_x = x_9_transpose_x_0, transpose_y = x_9_transpose_y_0, x = filterbanks_to_fp16, y = x_7_cast_fp16)[name = tensor<string, []>("x_9_cast_fp16")];
74
+ tensor<fp16, []> var_108_to_fp16 = const()[name = tensor<string, []>("op_108_to_fp16"), val = tensor<fp16, []>(0x1p-24)];
75
+ tensor<fp16, [1, 128, ?]> var_109_cast_fp16 = add(x = x_9_cast_fp16, y = var_108_to_fp16)[name = tensor<string, []>("op_109_cast_fp16")];
76
+ tensor<fp16, []> x_11_epsilon_0_to_fp16 = const()[name = tensor<string, []>("x_11_epsilon_0_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
77
+ tensor<fp16, [1, 128, ?]> x_11_cast_fp16 = log(epsilon = x_11_epsilon_0_to_fp16, x = var_109_cast_fp16)[name = tensor<string, []>("x_11_cast_fp16")];
78
+ tensor<int32, []> var_114 = const()[name = tensor<string, []>("op_114"), val = tensor<int32, []>(1)];
79
+ tensor<int32, [3]> var_116_shape_cast_fp16 = shape(x = x_11_cast_fp16)[name = tensor<string, []>("op_116_shape_cast_fp16")];
80
+ tensor<int32, []> gather_5_indices_0 = const()[name = tensor<string, []>("gather_5_indices_0"), val = tensor<int32, []>(2)];
81
+ tensor<int32, []> gather_5_axis_0 = const()[name = tensor<string, []>("gather_5_axis_0"), val = tensor<int32, []>(0)];
82
+ tensor<int32, []> gather_5 = gather(axis = gather_5_axis_0, indices = gather_5_indices_0, x = var_116_shape_cast_fp16)[name = tensor<string, []>("gather_5")];
83
+ tensor<int32, []> const_1 = const()[name = tensor<string, []>("const_1"), val = tensor<int32, []>(0)];
84
+ tensor<int32, []> const_2 = const()[name = tensor<string, []>("const_2"), val = tensor<int32, []>(1)];
85
+ tensor<int32, [?]> var_124 = range_1d(end = gather_5, start = const_1, step = const_2)[name = tensor<string, []>("op_124")];
86
+ tensor<int32, [1]> var_126_axes_0 = const()[name = tensor<string, []>("op_126_axes_0"), val = tensor<int32, [1]>([0])];
87
+ tensor<int32, [1, ?]> var_126 = expand_dims(axes = var_126_axes_0, x = var_124)[name = tensor<string, []>("op_126")];
88
+ tensor<int32, [2]> shape_0 = shape(x = var_126)[name = tensor<string, []>("shape_0")];
89
+ tensor<int32, []> concat_2_axis_0 = const()[name = tensor<string, []>("concat_2_axis_0"), val = tensor<int32, []>(0)];
90
+ tensor<bool, []> concat_2_interleave_0 = const()[name = tensor<string, []>("concat_2_interleave_0"), val = tensor<bool, []>(false)];
91
+ tensor<int32, [2]> concat_2 = concat(axis = concat_2_axis_0, interleave = concat_2_interleave_0, values = (var_114, gather_5))[name = tensor<string, []>("concat_2")];
92
+ tensor<int32, [2]> real_div_0 = real_div(x = concat_2, y = shape_0)[name = tensor<string, []>("real_div_0")];
93
+ tensor<int32, [?, ?]> time_steps = tile(reps = real_div_0, x = var_126)[name = tensor<string, []>("time_steps")];
94
+ tensor<int32, [1]> var_131_axes_0 = const()[name = tensor<string, []>("op_131_axes_0"), val = tensor<int32, [1]>([1])];
95
+ tensor<int32, [1]> melspectogram_length = cast(dtype = seq_len_dtype_0, x = seq_len_1_cast_fp16)[name = tensor<string, []>("cast_14")];
96
+ tensor<int32, [1, 1]> var_131 = expand_dims(axes = var_131_axes_0, x = melspectogram_length)[name = tensor<string, []>("op_131")];
97
+ tensor<bool, [?, ?]> valid_mask = less(x = time_steps, y = var_131)[name = tensor<string, []>("valid_mask")];
98
+ tensor<int32, [1]> var_134_axes_0 = const()[name = tensor<string, []>("op_134_axes_0"), val = tensor<int32, [1]>([1])];
99
+ tensor<bool, [?, 1, ?]> var_134 = expand_dims(axes = var_134_axes_0, x = valid_mask)[name = tensor<string, []>("op_134")];
100
+ tensor<fp16, []> var_135_to_fp16 = const()[name = tensor<string, []>("op_135_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
101
+ tensor<fp16, [1, 128, ?]> var_136_cast_fp16 = select(a = x_11_cast_fp16, b = var_135_to_fp16, cond = var_134)[name = tensor<string, []>("op_136_cast_fp16")];
102
+ tensor<int32, [1]> var_138 = const()[name = tensor<string, []>("op_138"), val = tensor<int32, [1]>([2])];
103
+ tensor<bool, []> var_139 = const()[name = tensor<string, []>("op_139"), val = tensor<bool, []>(false)];
104
+ tensor<fp16, [1, 128]> x_mean_numerator_cast_fp16 = reduce_sum(axes = var_138, keep_dims = var_139, x = var_136_cast_fp16)[name = tensor<string, []>("x_mean_numerator_cast_fp16")];
105
+ tensor<int32, [1]> var_143 = const()[name = tensor<string, []>("op_143"), val = tensor<int32, [1]>([1])];
106
+ tensor<bool, []> var_144 = const()[name = tensor<string, []>("op_144"), val = tensor<bool, []>(false)];
107
+ tensor<string, []> cast_3_to_fp16_dtype_0 = const()[name = tensor<string, []>("cast_3_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
108
+ tensor<fp16, [?, ?]> cast_12 = cast(dtype = cast_3_to_fp16_dtype_0, x = valid_mask)[name = tensor<string, []>("cast_12")];
109
+ tensor<fp16, [?]> x_mean_denominator_cast_fp16 = reduce_sum(axes = var_143, keep_dims = var_144, x = cast_12)[name = tensor<string, []>("x_mean_denominator_cast_fp16")];
110
+ tensor<int32, [1]> var_148_axes_0 = const()[name = tensor<string, []>("op_148_axes_0"), val = tensor<int32, [1]>([1])];
111
+ tensor<fp16, [?, 1]> var_148_cast_fp16 = expand_dims(axes = var_148_axes_0, x = x_mean_denominator_cast_fp16)[name = tensor<string, []>("op_148_cast_fp16")];
112
+ tensor<fp16, [?, 128]> x_mean_cast_fp16 = real_div(x = x_mean_numerator_cast_fp16, y = var_148_cast_fp16)[name = tensor<string, []>("x_mean_cast_fp16")];
113
+ tensor<int32, [1]> var_153_axes_0 = const()[name = tensor<string, []>("op_153_axes_0"), val = tensor<int32, [1]>([2])];
114
+ tensor<fp16, [?, 128, 1]> var_153_cast_fp16 = expand_dims(axes = var_153_axes_0, x = x_mean_cast_fp16)[name = tensor<string, []>("op_153_cast_fp16")];
115
+ tensor<fp16, [?, 128, ?]> var_155_cast_fp16 = sub(x = x_11_cast_fp16, y = var_153_cast_fp16)[name = tensor<string, []>("op_155_cast_fp16")];
116
+ tensor<fp16, []> var_156_to_fp16 = const()[name = tensor<string, []>("op_156_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
117
+ tensor<fp16, [?, 128, ?]> var_157_cast_fp16 = select(a = var_155_cast_fp16, b = var_156_to_fp16, cond = var_134)[name = tensor<string, []>("op_157_cast_fp16")];
118
+ tensor<fp16, []> var_158_promoted_to_fp16 = const()[name = tensor<string, []>("op_158_promoted_to_fp16"), val = tensor<fp16, []>(0x1p+1)];
119
+ tensor<fp16, [?, 128, ?]> var_159_cast_fp16 = pow(x = var_157_cast_fp16, y = var_158_promoted_to_fp16)[name = tensor<string, []>("op_159_cast_fp16")];
120
+ tensor<int32, [1]> var_161 = const()[name = tensor<string, []>("op_161"), val = tensor<int32, [1]>([2])];
121
+ tensor<bool, []> var_162 = const()[name = tensor<string, []>("op_162"), val = tensor<bool, []>(false)];
122
+ tensor<fp16, [?, 128]> var_164_cast_fp16 = reduce_sum(axes = var_161, keep_dims = var_162, x = var_159_cast_fp16)[name = tensor<string, []>("op_164_cast_fp16")];
123
+ tensor<fp16, []> var_168_to_fp16 = const()[name = tensor<string, []>("op_168_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
124
+ tensor<fp16, [?, 1]> var_169_cast_fp16 = sub(x = var_148_cast_fp16, y = var_168_to_fp16)[name = tensor<string, []>("op_169_cast_fp16")];
125
+ tensor<fp16, [?, 128]> var_170_cast_fp16 = real_div(x = var_164_cast_fp16, y = var_169_cast_fp16)[name = tensor<string, []>("op_170_cast_fp16")];
126
+ tensor<fp16, [?, 128]> x_std_1_cast_fp16 = sqrt(x = var_170_cast_fp16)[name = tensor<string, []>("x_std_1_cast_fp16")];
127
+ tensor<fp16, []> var_172_to_fp16 = const()[name = tensor<string, []>("op_172_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
128
+ tensor<fp16, [?, 128]> x_std_cast_fp16 = add(x = x_std_1_cast_fp16, y = var_172_to_fp16)[name = tensor<string, []>("x_std_cast_fp16")];
129
+ tensor<int32, [1]> var_180_axes_0 = const()[name = tensor<string, []>("op_180_axes_0"), val = tensor<int32, [1]>([2])];
130
+ tensor<fp16, [?, 128, 1]> var_180_cast_fp16 = expand_dims(axes = var_180_axes_0, x = x_std_cast_fp16)[name = tensor<string, []>("op_180_cast_fp16")];
131
+ tensor<fp16, [?, 128, ?]> x_cast_fp16 = real_div(x = var_155_cast_fp16, y = var_180_cast_fp16)[name = tensor<string, []>("x_cast_fp16")];
132
+ tensor<int32, [3]> var_183_shape_cast_fp16 = shape(x = x_cast_fp16)[name = tensor<string, []>("op_183_shape_cast_fp16")];
133
+ tensor<int32, []> gather_6_indices_0 = const()[name = tensor<string, []>("gather_6_indices_0"), val = tensor<int32, []>(-1)];
134
+ tensor<int32, []> gather_6_axis_0 = const()[name = tensor<string, []>("gather_6_axis_0"), val = tensor<int32, []>(0)];
135
+ tensor<int32, []> gather_6 = gather(axis = gather_6_axis_0, indices = gather_6_indices_0, x = var_183_shape_cast_fp16)[name = tensor<string, []>("gather_6")];
136
+ tensor<int32, []> const_3 = const()[name = tensor<string, []>("const_3"), val = tensor<int32, []>(0)];
137
+ tensor<int32, []> const_4 = const()[name = tensor<string, []>("const_4"), val = tensor<int32, []>(1)];
138
+ tensor<int32, [?]> mask_1 = range_1d(end = gather_6, start = const_3, step = const_4)[name = tensor<string, []>("mask_1")];
139
+ tensor<int32, []> gather_7_indices_0 = const()[name = tensor<string, []>("gather_7_indices_0"), val = tensor<int32, []>(0)];
140
+ tensor<int32, []> gather_7_axis_0 = const()[name = tensor<string, []>("gather_7_axis_0"), val = tensor<int32, []>(0)];
141
+ tensor<int32, []> gather_7 = gather(axis = gather_7_axis_0, indices = gather_7_indices_0, x = var_183_shape_cast_fp16)[name = tensor<string, []>("gather_7")];
142
+ tensor<int32, []> var_195 = const()[name = tensor<string, []>("op_195"), val = tensor<int32, []>(1)];
143
+ tensor<int32, []> concat_3_axis_0 = const()[name = tensor<string, []>("concat_3_axis_0"), val = tensor<int32, []>(0)];
144
+ tensor<bool, []> concat_3_interleave_0 = const()[name = tensor<string, []>("concat_3_interleave_0"), val = tensor<bool, []>(false)];
145
+ tensor<int32, [2]> concat_3 = concat(axis = concat_3_axis_0, interleave = concat_3_interleave_0, values = (gather_7, var_195))[name = tensor<string, []>("concat_3")];
146
+ tensor<int32, [1]> expand_dims_0_axes_0 = const()[name = tensor<string, []>("expand_dims_0_axes_0"), val = tensor<int32, [1]>([0])];
147
+ tensor<int32, [1, ?]> expand_dims_0 = expand_dims(axes = expand_dims_0_axes_0, x = mask_1)[name = tensor<string, []>("expand_dims_0")];
148
+ tensor<int32, [?, ?]> var_197 = tile(reps = concat_3, x = expand_dims_0)[name = tensor<string, []>("op_197")];
149
+ tensor<bool, [?, ?]> mask = greater_equal(x = var_197, y = var_131)[name = tensor<string, []>("mask")];
150
+ tensor<int32, [1]> var_202_axes_0 = const()[name = tensor<string, []>("op_202_axes_0"), val = tensor<int32, [1]>([1])];
151
+ tensor<bool, [?, 1, ?]> var_202 = expand_dims(axes = var_202_axes_0, x = mask)[name = tensor<string, []>("op_202")];
152
+ tensor<fp16, []> var_216_to_fp16 = const()[name = tensor<string, []>("op_216_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
153
+ tensor<fp16, [?, 128, ?]> var_217_cast_fp16 = select(a = var_216_to_fp16, b = x_cast_fp16, cond = var_202)[name = tensor<string, []>("op_217_cast_fp16")];
154
+ tensor<string, []> var_217_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_217_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
155
+ tensor<fp32, [?, 128, ?]> melspectogram = cast(dtype = var_217_cast_fp16_to_fp32_dtype_0, x = var_217_cast_fp16)[name = tensor<string, []>("cast_11")];
156
+ } -> (melspectogram, melspectogram_length);
157
+ }
Melspectogram.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9fbb02b5875f7630641c3d6a1fffa9bc73189f87b4c03113333df7e348743888
3
+ size 592384
Melspectrogram_v2.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4300d03c3fc52901866a5f578d2673ec12c95deaf86b2131c83848339212d218
3
+ size 243
Melspectrogram_v2.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:96c3a2e963dbc871fda545e9ed452173f58be0d995d2d91693361069b7189ee1
3
+ size 402
Melspectrogram_v2.mlmodelc/metadata.json ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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)",
11
+ "shortDescription" : "",
12
+ "shape" : "[]",
13
+ "name" : "melspectrogram",
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" : "melspectrogram_length",
24
+ "type" : "MultiArray"
25
+ }
26
+ ],
27
+ "modelParameters" : [
28
+
29
+ ],
30
+ "specificationVersion" : 8,
31
+ "mlProgramOperationTypeHistogram" : {
32
+ "Range1d" : 2,
33
+ "Ios17.reshape" : 2,
34
+ "Identity" : 1,
35
+ "Ios17.matmul" : 1,
36
+ "Ios17.expandDims" : 10,
37
+ "Select" : 3,
38
+ "Ios17.add" : 4,
39
+ "Tile" : 2,
40
+ "Ios17.sliceByIndex" : 3,
41
+ "Ios16.reduceSum" : 4,
42
+ "Shape" : 3,
43
+ "Ios17.gather" : 3,
44
+ "Pad" : 1,
45
+ "Ios17.log" : 1,
46
+ "Ios17.conv" : 2,
47
+ "Ios17.sub" : 4,
48
+ "Ios17.pow" : 2,
49
+ "Ios17.cast" : 9,
50
+ "Ios17.realDiv" : 4,
51
+ "Stack" : 1,
52
+ "Ios17.concat" : 3,
53
+ "Ios17.floorDiv" : 1,
54
+ "Ios17.less" : 1,
55
+ "Ios17.clip" : 2,
56
+ "Ios17.sqrt" : 1,
57
+ "Ios17.greaterEqual" : 1,
58
+ "Ios17.mul" : 1
59
+ },
60
+ "computePrecision" : "Mixed (Float16, Float32, Int32, UInt16)",
61
+ "isUpdatable" : "0",
62
+ "stateSchema" : [
63
+
64
+ ],
65
+ "availability" : {
66
+ "macOS" : "14.0",
67
+ "tvOS" : "17.0",
68
+ "visionOS" : "1.0",
69
+ "watchOS" : "10.0",
70
+ "iOS" : "17.0",
71
+ "macCatalyst" : "17.0"
72
+ },
73
+ "modelType" : {
74
+ "name" : "MLModelType_mlProgram"
75
+ },
76
+ "userDefinedMetadata" : {
77
+ "com.github.apple.coremltools.source_dialect" : "TorchScript",
78
+ "com.github.apple.coremltools.source" : "torch==2.5.0",
79
+ "com.github.apple.coremltools.version" : "8.3.0"
80
+ },
81
+ "inputSchema" : [
82
+ {
83
+ "dataType" : "Float32",
84
+ "hasShapeFlexibility" : "1",
85
+ "isOptional" : "0",
86
+ "shapeFlexibility" : "1 × 160...480000",
87
+ "shapeRange" : "[[1, 1], [160, 480000]]",
88
+ "formattedType" : "MultiArray (Float32 1 × 160)",
89
+ "type" : "MultiArray",
90
+ "shape" : "[1, 160]",
91
+ "name" : "audio_signal",
92
+ "shortDescription" : ""
93
+ },
94
+ {
95
+ "hasShapeFlexibility" : "0",
96
+ "isOptional" : "0",
97
+ "dataType" : "Int32",
98
+ "formattedType" : "MultiArray (Int32 1)",
99
+ "shortDescription" : "",
100
+ "shape" : "[1]",
101
+ "name" : "audio_length",
102
+ "type" : "MultiArray"
103
+ }
104
+ ],
105
+ "generatedClassName" : "FlexibleMelspectrogram_fixed",
106
+ "method" : "predict"
107
+ }
108
+ ]
Melspectrogram_v2.mlmodelc/model.mil ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3405.2.1"}, {"coremlc-version", "3404.23.1"}, {"coremltools-component-torch", "2.5.0"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "8.3.0"}})]
3
+ {
4
+ func main<ios17>(tensor<int32, [1]> audio_length, tensor<fp32, [1, ?]> audio_signal) [FlexibleShapeInformation = tuple<tuple<tensor<string, []>, dict<tensor<string, []>, tensor<int32, [?]>>>, tuple<tensor<string, []>, dict<tensor<string, []>, list<tensor<int32, [2]>, ?>>>>((("DefaultShapes", {{"audio_signal", [1, 160]}}), ("RangeDims", {{"audio_signal", [[1, 1], [160, 480000]]}})))] {
5
+ tensor<int32, []> var_6 = const()[name = tensor<string, []>("op_6"), val = tensor<int32, []>(512)];
6
+ tensor<int32, [1]> var_7 = add(x = audio_length, y = var_6)[name = tensor<string, []>("op_7")];
7
+ tensor<int32, []> var_9 = const()[name = tensor<string, []>("op_9"), val = tensor<int32, []>(512)];
8
+ tensor<int32, [1]> var_10 = sub(x = var_7, y = var_9)[name = tensor<string, []>("op_10")];
9
+ tensor<int32, []> var_11 = const()[name = tensor<string, []>("op_11"), val = tensor<int32, []>(160)];
10
+ tensor<int32, [1]> floor_div_0 = floor_div(x = var_10, y = var_11)[name = tensor<string, []>("floor_div_0")];
11
+ tensor<string, []> var_12_to_fp16_dtype_0 = const()[name = tensor<string, []>("op_12_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
12
+ tensor<fp16, []> var_14_promoted_to_fp16 = const()[name = tensor<string, []>("op_14_promoted_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
13
+ tensor<fp16, [1]> floor_div_0_to_fp16 = cast(dtype = var_12_to_fp16_dtype_0, x = floor_div_0)[name = tensor<string, []>("cast_23")];
14
+ tensor<fp16, [1]> seq_len_1_cast_fp16 = add(x = floor_div_0_to_fp16, y = var_14_promoted_to_fp16)[name = tensor<string, []>("seq_len_1_cast_fp16")];
15
+ tensor<string, []> cast_0_dtype_0 = const()[name = tensor<string, []>("cast_0_dtype_0"), val = tensor<string, []>("int32")];
16
+ tensor<int32, [2]> var_28_begin_0 = const()[name = tensor<string, []>("op_28_begin_0"), val = tensor<int32, [2]>([0, 0])];
17
+ tensor<int32, [2]> var_28_end_0 = const()[name = tensor<string, []>("op_28_end_0"), val = tensor<int32, [2]>([1, 1])];
18
+ tensor<bool, [2]> var_28_end_mask_0 = const()[name = tensor<string, []>("op_28_end_mask_0"), val = tensor<bool, [2]>([true, false])];
19
+ tensor<bool, [2]> var_28_squeeze_mask_0 = const()[name = tensor<string, []>("op_28_squeeze_mask_0"), val = tensor<bool, [2]>([false, true])];
20
+ tensor<string, []> audio_signal_to_fp16_dtype_0 = const()[name = tensor<string, []>("audio_signal_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
21
+ tensor<fp16, [1, ?]> audio_signal_to_fp16 = cast(dtype = audio_signal_to_fp16_dtype_0, x = audio_signal)[name = tensor<string, []>("cast_21")];
22
+ tensor<fp16, [1]> var_28_cast_fp16 = slice_by_index(begin = var_28_begin_0, end = var_28_end_0, end_mask = var_28_end_mask_0, squeeze_mask = var_28_squeeze_mask_0, x = audio_signal_to_fp16)[name = tensor<string, []>("op_28_cast_fp16")];
23
+ tensor<int32, [1]> var_30_axes_0 = const()[name = tensor<string, []>("op_30_axes_0"), val = tensor<int32, [1]>([1])];
24
+ tensor<fp16, [1, 1]> var_30_cast_fp16 = expand_dims(axes = var_30_axes_0, x = var_28_cast_fp16)[name = tensor<string, []>("op_30_cast_fp16")];
25
+ tensor<int32, [2]> var_40_begin_0 = const()[name = tensor<string, []>("op_40_begin_0"), val = tensor<int32, [2]>([0, 1])];
26
+ tensor<int32, [2]> var_40_end_0 = const()[name = tensor<string, []>("op_40_end_0"), val = tensor<int32, [2]>([1, 0])];
27
+ tensor<bool, [2]> var_40_end_mask_0 = const()[name = tensor<string, []>("op_40_end_mask_0"), val = tensor<bool, [2]>([true, true])];
28
+ tensor<fp16, [1, ?]> var_40_cast_fp16 = slice_by_index(begin = var_40_begin_0, end = var_40_end_0, end_mask = var_40_end_mask_0, x = audio_signal_to_fp16)[name = tensor<string, []>("op_40_cast_fp16")];
29
+ tensor<int32, [2]> var_50_begin_0 = const()[name = tensor<string, []>("op_50_begin_0"), val = tensor<int32, [2]>([0, 0])];
30
+ tensor<int32, [2]> var_50_end_0 = const()[name = tensor<string, []>("op_50_end_0"), val = tensor<int32, [2]>([1, -1])];
31
+ tensor<bool, [2]> var_50_end_mask_0 = const()[name = tensor<string, []>("op_50_end_mask_0"), val = tensor<bool, [2]>([true, false])];
32
+ tensor<fp16, [1, ?]> var_50_cast_fp16 = slice_by_index(begin = var_50_begin_0, end = var_50_end_0, end_mask = var_50_end_mask_0, x = audio_signal_to_fp16)[name = tensor<string, []>("op_50_cast_fp16")];
33
+ tensor<fp16, []> var_51_to_fp16 = const()[name = tensor<string, []>("op_51_to_fp16"), val = tensor<fp16, []>(0x1.f0cp-1)];
34
+ tensor<fp16, [1, ?]> var_52_cast_fp16 = mul(x = var_50_cast_fp16, y = var_51_to_fp16)[name = tensor<string, []>("op_52_cast_fp16")];
35
+ tensor<fp16, [1, ?]> var_54_cast_fp16 = sub(x = var_40_cast_fp16, y = var_52_cast_fp16)[name = tensor<string, []>("op_54_cast_fp16")];
36
+ tensor<int32, []> var_56 = const()[name = tensor<string, []>("op_56"), val = tensor<int32, []>(1)];
37
+ tensor<bool, []> input_1_interleave_0 = const()[name = tensor<string, []>("input_1_interleave_0"), val = tensor<bool, []>(false)];
38
+ tensor<fp16, [1, ?]> input_1_cast_fp16 = concat(axis = var_56, interleave = input_1_interleave_0, values = (var_30_cast_fp16, var_54_cast_fp16))[name = tensor<string, []>("input_1_cast_fp16")];
39
+ tensor<int32, [3]> concat_0x = const()[name = tensor<string, []>("concat_0x"), val = tensor<int32, [3]>([1, 1, -1])];
40
+ tensor<fp16, [1, 1, ?]> input_3_cast_fp16 = reshape(shape = concat_0x, x = input_1_cast_fp16)[name = tensor<string, []>("input_3_cast_fp16")];
41
+ tensor<int32, [6]> input_5_pad_0 = const()[name = tensor<string, []>("input_5_pad_0"), val = tensor<int32, [6]>([0, 0, 0, 0, 256, 256])];
42
+ tensor<string, []> input_5_mode_0 = const()[name = tensor<string, []>("input_5_mode_0"), val = tensor<string, []>("reflect")];
43
+ tensor<fp16, []> const_0_to_fp16 = const()[name = tensor<string, []>("const_0_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
44
+ tensor<fp16, [1, 1, ?]> input_5_cast_fp16 = pad(constant_val = const_0_to_fp16, mode = input_5_mode_0, pad = input_5_pad_0, x = input_3_cast_fp16)[name = tensor<string, []>("input_5_cast_fp16")];
45
+ tensor<int32, [2]> concat_1x = const()[name = tensor<string, []>("concat_1x"), val = tensor<int32, [2]>([1, -1])];
46
+ tensor<fp16, [1, ?]> input_cast_fp16 = reshape(shape = concat_1x, x = input_5_cast_fp16)[name = tensor<string, []>("input_cast_fp16")];
47
+ tensor<int32, [1]> expand_dims_3 = const()[name = tensor<string, []>("expand_dims_3"), val = tensor<int32, [1]>([160])];
48
+ tensor<int32, [1]> expand_dims_4_axes_0 = const()[name = tensor<string, []>("expand_dims_4_axes_0"), val = tensor<int32, [1]>([1])];
49
+ tensor<fp16, [1, 1, ?]> expand_dims_4_cast_fp16 = expand_dims(axes = expand_dims_4_axes_0, x = input_cast_fp16)[name = tensor<string, []>("expand_dims_4_cast_fp16")];
50
+ tensor<string, []> conv_0_pad_type_0 = const()[name = tensor<string, []>("conv_0_pad_type_0"), val = tensor<string, []>("valid")];
51
+ tensor<int32, [2]> conv_0_pad_0 = const()[name = tensor<string, []>("conv_0_pad_0"), val = tensor<int32, [2]>([0, 0])];
52
+ tensor<int32, [1]> conv_0_dilations_0 = const()[name = tensor<string, []>("conv_0_dilations_0"), val = tensor<int32, [1]>([1])];
53
+ tensor<int32, []> conv_0_groups_0 = const()[name = tensor<string, []>("conv_0_groups_0"), val = tensor<int32, []>(1)];
54
+ tensor<fp16, [257, 1, 512]> expand_dims_1_to_fp16 = const()[name = tensor<string, []>("expand_dims_1_to_fp16"), val = tensor<fp16, [257, 1, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
55
+ tensor<fp16, [1, 257, ?]> conv_0_cast_fp16 = conv(dilations = conv_0_dilations_0, groups = conv_0_groups_0, pad = conv_0_pad_0, pad_type = conv_0_pad_type_0, strides = expand_dims_3, weight = expand_dims_1_to_fp16, x = expand_dims_4_cast_fp16)[name = tensor<string, []>("conv_0_cast_fp16")];
56
+ tensor<string, []> conv_1_pad_type_0 = const()[name = tensor<string, []>("conv_1_pad_type_0"), val = tensor<string, []>("valid")];
57
+ tensor<int32, [2]> conv_1_pad_0 = const()[name = tensor<string, []>("conv_1_pad_0"), val = tensor<int32, [2]>([0, 0])];
58
+ tensor<int32, [1]> conv_1_dilations_0 = const()[name = tensor<string, []>("conv_1_dilations_0"), val = tensor<int32, [1]>([1])];
59
+ tensor<int32, []> conv_1_groups_0 = const()[name = tensor<string, []>("conv_1_groups_0"), val = tensor<int32, []>(1)];
60
+ tensor<fp16, [257, 1, 512]> expand_dims_2_to_fp16 = const()[name = tensor<string, []>("expand_dims_2_to_fp16"), val = tensor<fp16, [257, 1, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(263296)))];
61
+ tensor<fp16, [1, 257, ?]> conv_1_cast_fp16 = conv(dilations = conv_1_dilations_0, groups = conv_1_groups_0, pad = conv_1_pad_0, pad_type = conv_1_pad_type_0, strides = expand_dims_3, weight = expand_dims_2_to_fp16, x = expand_dims_4_cast_fp16)[name = tensor<string, []>("conv_1_cast_fp16")];
62
+ tensor<int32, []> stack_0_axis_0 = const()[name = tensor<string, []>("stack_0_axis_0"), val = tensor<int32, []>(-1)];
63
+ tensor<fp16, [1, 257, ?, 2]> stack_0_cast_fp16 = stack(axis = stack_0_axis_0, values = (conv_0_cast_fp16, conv_1_cast_fp16))[name = tensor<string, []>("stack_0_cast_fp16")];
64
+ tensor<fp16, []> var_93_promoted_to_fp16 = const()[name = tensor<string, []>("op_93_promoted_to_fp16"), val = tensor<fp16, []>(0x1p+1)];
65
+ tensor<fp16, [1, 257, ?, 2]> var_94_cast_fp16 = pow(x = stack_0_cast_fp16, y = var_93_promoted_to_fp16)[name = tensor<string, []>("op_94_cast_fp16")];
66
+ tensor<int32, [1]> var_99_axes_0 = const()[name = tensor<string, []>("op_99_axes_0"), val = tensor<int32, [1]>([-1])];
67
+ tensor<bool, []> var_99_keep_dims_0 = const()[name = tensor<string, []>("op_99_keep_dims_0"), val = tensor<bool, []>(false)];
68
+ tensor<fp16, [1, 257, ?]> var_99_cast_fp16 = reduce_sum(axes = var_99_axes_0, keep_dims = var_99_keep_dims_0, x = var_94_cast_fp16)[name = tensor<string, []>("op_99_cast_fp16")];
69
+ tensor<fp16, [1, 257, ?]> x_7_cast_fp16 = identity(x = var_99_cast_fp16)[name = tensor<string, []>("x_7_cast_fp16")];
70
+ tensor<bool, []> x_9_transpose_x_0 = const()[name = tensor<string, []>("x_9_transpose_x_0"), val = tensor<bool, []>(false)];
71
+ tensor<bool, []> x_9_transpose_y_0 = const()[name = tensor<string, []>("x_9_transpose_y_0"), val = tensor<bool, []>(false)];
72
+ tensor<fp16, [1, 128, 257]> filterbanks_to_fp16 = const()[name = tensor<string, []>("filterbanks_to_fp16"), val = tensor<fp16, [1, 128, 257]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(526528)))];
73
+ tensor<fp16, [1, 128, ?]> x_9_cast_fp16 = matmul(transpose_x = x_9_transpose_x_0, transpose_y = x_9_transpose_y_0, x = filterbanks_to_fp16, y = x_7_cast_fp16)[name = tensor<string, []>("x_9_cast_fp16")];
74
+ tensor<fp16, []> var_108_to_fp16 = const()[name = tensor<string, []>("op_108_to_fp16"), val = tensor<fp16, []>(0x1p-24)];
75
+ tensor<fp16, [1, 128, ?]> var_109_cast_fp16 = add(x = x_9_cast_fp16, y = var_108_to_fp16)[name = tensor<string, []>("op_109_cast_fp16")];
76
+ tensor<fp32, []> x_11_epsilon_0 = const()[name = tensor<string, []>("x_11_epsilon_0"), val = tensor<fp32, []>(0x1p-149)];
77
+ tensor<fp16, [1, 128, ?]> x_11_cast_fp16 = log(epsilon = x_11_epsilon_0, x = var_109_cast_fp16)[name = tensor<string, []>("x_11_cast_fp16")];
78
+ tensor<int32, []> var_114 = const()[name = tensor<string, []>("op_114"), val = tensor<int32, []>(1)];
79
+ tensor<int32, [3]> var_116_shape_cast_fp16 = shape(x = x_11_cast_fp16)[name = tensor<string, []>("op_116_shape_cast_fp16")];
80
+ tensor<int32, []> gather_5_axis_0 = const()[name = tensor<string, []>("gather_5_axis_0"), val = tensor<int32, []>(0)];
81
+ tensor<int32, []> gather_5_batch_dims_0 = const()[name = tensor<string, []>("gather_5_batch_dims_0"), val = tensor<int32, []>(0)];
82
+ tensor<bool, []> gather_5_validate_indices_0 = const()[name = tensor<string, []>("gather_5_validate_indices_0"), val = tensor<bool, []>(false)];
83
+ tensor<string, []> var_116_shape_cast_fp16_to_uint16_dtype_0 = const()[name = tensor<string, []>("op_116_shape_cast_fp16_to_uint16_dtype_0"), val = tensor<string, []>("uint16")];
84
+ tensor<uint16, []> select_5_to_uint16 = const()[name = tensor<string, []>("select_5_to_uint16"), val = tensor<uint16, []>(2)];
85
+ tensor<uint16, [3]> var_116_shape_cast_fp16_to_uint16 = cast(dtype = var_116_shape_cast_fp16_to_uint16_dtype_0, x = var_116_shape_cast_fp16)[name = tensor<string, []>("cast_20")];
86
+ tensor<uint16, []> gather_5_cast_uint16 = gather(axis = gather_5_axis_0, batch_dims = gather_5_batch_dims_0, indices = select_5_to_uint16, validate_indices = gather_5_validate_indices_0, x = var_116_shape_cast_fp16_to_uint16)[name = tensor<string, []>("gather_5_cast_uint16")];
87
+ tensor<string, []> gather_5_cast_uint16_to_int32_dtype_0 = const()[name = tensor<string, []>("gather_5_cast_uint16_to_int32_dtype_0"), val = tensor<string, []>("int32")];
88
+ tensor<int32, []> const_1 = const()[name = tensor<string, []>("const_1"), val = tensor<int32, []>(0)];
89
+ tensor<int32, []> const_2 = const()[name = tensor<string, []>("const_2"), val = tensor<int32, []>(1)];
90
+ tensor<int32, []> gather_5_cast_uint16_to_int32 = cast(dtype = gather_5_cast_uint16_to_int32_dtype_0, x = gather_5_cast_uint16)[name = tensor<string, []>("cast_19")];
91
+ tensor<int32, [?]> var_124 = range_1d(end = gather_5_cast_uint16_to_int32, start = const_1, step = const_2)[name = tensor<string, []>("op_124")];
92
+ tensor<int32, [1]> var_126_axes_0 = const()[name = tensor<string, []>("op_126_axes_0"), val = tensor<int32, [1]>([0])];
93
+ tensor<int32, [1, ?]> var_126 = expand_dims(axes = var_126_axes_0, x = var_124)[name = tensor<string, []>("op_126")];
94
+ tensor<int32, []> concat_2_axis_0 = const()[name = tensor<string, []>("concat_2_axis_0"), val = tensor<int32, []>(0)];
95
+ tensor<bool, []> concat_2_interleave_0 = const()[name = tensor<string, []>("concat_2_interleave_0"), val = tensor<bool, []>(false)];
96
+ tensor<int32, [2]> concat_2 = concat(axis = concat_2_axis_0, interleave = concat_2_interleave_0, values = (var_114, gather_5_cast_uint16_to_int32))[name = tensor<string, []>("concat_2")];
97
+ tensor<int32, [2]> shape_6 = shape(x = var_126)[name = tensor<string, []>("shape_6")];
98
+ tensor<int32, [2]> real_div_0 = real_div(x = concat_2, y = shape_6)[name = tensor<string, []>("real_div_0")];
99
+ tensor<int32, [?, ?]> time_steps = tile(reps = real_div_0, x = var_126)[name = tensor<string, []>("time_steps")];
100
+ tensor<int32, [1]> var_131_axes_0 = const()[name = tensor<string, []>("op_131_axes_0"), val = tensor<int32, [1]>([1])];
101
+ tensor<int32, [1]> melspectrogram_length = cast(dtype = cast_0_dtype_0, x = seq_len_1_cast_fp16)[name = tensor<string, []>("cast_22")];
102
+ tensor<int32, [1, 1]> var_131 = expand_dims(axes = var_131_axes_0, x = melspectrogram_length)[name = tensor<string, []>("op_131")];
103
+ tensor<bool, [?, ?]> valid_mask = less(x = time_steps, y = var_131)[name = tensor<string, []>("valid_mask")];
104
+ tensor<int32, [1]> var_134_axes_0 = const()[name = tensor<string, []>("op_134_axes_0"), val = tensor<int32, [1]>([1])];
105
+ tensor<bool, [?, 1, ?]> var_134 = expand_dims(axes = var_134_axes_0, x = valid_mask)[name = tensor<string, []>("op_134")];
106
+ tensor<fp16, []> var_135_to_fp16 = const()[name = tensor<string, []>("op_135_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
107
+ tensor<fp16, [1, 128, ?]> var_136_cast_fp16 = select(a = x_11_cast_fp16, b = var_135_to_fp16, cond = var_134)[name = tensor<string, []>("op_136_cast_fp16")];
108
+ tensor<int32, [1]> x_mean_numerator_axes_0 = const()[name = tensor<string, []>("x_mean_numerator_axes_0"), val = tensor<int32, [1]>([2])];
109
+ tensor<bool, []> x_mean_numerator_keep_dims_0 = const()[name = tensor<string, []>("x_mean_numerator_keep_dims_0"), val = tensor<bool, []>(false)];
110
+ tensor<fp16, [1, 128]> x_mean_numerator_cast_fp16 = reduce_sum(axes = x_mean_numerator_axes_0, keep_dims = x_mean_numerator_keep_dims_0, x = var_136_cast_fp16)[name = tensor<string, []>("x_mean_numerator_cast_fp16")];
111
+ tensor<int32, [1]> var_146_axes_0 = const()[name = tensor<string, []>("op_146_axes_0"), val = tensor<int32, [1]>([1])];
112
+ tensor<bool, []> var_146_keep_dims_0 = const()[name = tensor<string, []>("op_146_keep_dims_0"), val = tensor<bool, []>(false)];
113
+ tensor<string, []> cast_4_to_fp16_dtype_0 = const()[name = tensor<string, []>("cast_4_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
114
+ tensor<fp16, [?, ?]> valid_mask_to_fp16 = cast(dtype = cast_4_to_fp16_dtype_0, x = valid_mask)[name = tensor<string, []>("cast_18")];
115
+ tensor<fp16, [?]> var_146_cast_fp16 = reduce_sum(axes = var_146_axes_0, keep_dims = var_146_keep_dims_0, x = valid_mask_to_fp16)[name = tensor<string, []>("op_146_cast_fp16")];
116
+ tensor<fp16, []> var_147_promoted_to_fp16 = const()[name = tensor<string, []>("op_147_promoted_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
117
+ tensor<fp16, []> const_3_to_fp16 = const()[name = tensor<string, []>("const_3_to_fp16"), val = tensor<fp16, []>(inf)];
118
+ tensor<fp16, [?]> clip_0_cast_fp16 = clip(alpha = var_147_promoted_to_fp16, beta = const_3_to_fp16, x = var_146_cast_fp16)[name = tensor<string, []>("clip_0_cast_fp16")];
119
+ tensor<int32, [1]> var_151_axes_0 = const()[name = tensor<string, []>("op_151_axes_0"), val = tensor<int32, [1]>([1])];
120
+ tensor<fp16, [?, 1]> var_151_cast_fp16 = expand_dims(axes = var_151_axes_0, x = clip_0_cast_fp16)[name = tensor<string, []>("op_151_cast_fp16")];
121
+ tensor<fp16, [?, 128]> x_mean_cast_fp16 = real_div(x = x_mean_numerator_cast_fp16, y = var_151_cast_fp16)[name = tensor<string, []>("x_mean_cast_fp16")];
122
+ tensor<fp16, []> var_156_to_fp16 = const()[name = tensor<string, []>("op_156_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
123
+ tensor<fp16, [?, 1]> var_157_cast_fp16 = sub(x = var_151_cast_fp16, y = var_156_to_fp16)[name = tensor<string, []>("op_157_cast_fp16")];
124
+ tensor<fp16, []> var_158_to_fp16 = const()[name = tensor<string, []>("op_158_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
125
+ tensor<fp16, []> const_4_to_fp16 = const()[name = tensor<string, []>("const_4_to_fp16"), val = tensor<fp16, []>(inf)];
126
+ tensor<fp16, [?, 1]> clip_1_cast_fp16 = clip(alpha = var_158_to_fp16, beta = const_4_to_fp16, x = var_157_cast_fp16)[name = tensor<string, []>("clip_1_cast_fp16")];
127
+ tensor<int32, [1]> var_164_axes_0 = const()[name = tensor<string, []>("op_164_axes_0"), val = tensor<int32, [1]>([2])];
128
+ tensor<fp16, [?, 128, 1]> var_164_cast_fp16 = expand_dims(axes = var_164_axes_0, x = x_mean_cast_fp16)[name = tensor<string, []>("op_164_cast_fp16")];
129
+ tensor<fp16, [?, 128, ?]> var_166_cast_fp16 = sub(x = x_11_cast_fp16, y = var_164_cast_fp16)[name = tensor<string, []>("op_166_cast_fp16")];
130
+ tensor<fp16, []> var_167_to_fp16 = const()[name = tensor<string, []>("op_167_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
131
+ tensor<fp16, [?, 128, ?]> var_168_cast_fp16 = select(a = var_166_cast_fp16, b = var_167_to_fp16, cond = var_134)[name = tensor<string, []>("op_168_cast_fp16")];
132
+ tensor<fp16, []> var_169_promoted_to_fp16 = const()[name = tensor<string, []>("op_169_promoted_to_fp16"), val = tensor<fp16, []>(0x1p+1)];
133
+ tensor<fp16, [?, 128, ?]> var_170_cast_fp16 = pow(x = var_168_cast_fp16, y = var_169_promoted_to_fp16)[name = tensor<string, []>("op_170_cast_fp16")];
134
+ tensor<int32, [1]> var_175_axes_0 = const()[name = tensor<string, []>("op_175_axes_0"), val = tensor<int32, [1]>([2])];
135
+ tensor<bool, []> var_175_keep_dims_0 = const()[name = tensor<string, []>("op_175_keep_dims_0"), val = tensor<bool, []>(false)];
136
+ tensor<fp16, [?, 128]> var_175_cast_fp16 = reduce_sum(axes = var_175_axes_0, keep_dims = var_175_keep_dims_0, x = var_170_cast_fp16)[name = tensor<string, []>("op_175_cast_fp16")];
137
+ tensor<fp16, [?, 128]> var_176_cast_fp16 = real_div(x = var_175_cast_fp16, y = clip_1_cast_fp16)[name = tensor<string, []>("op_176_cast_fp16")];
138
+ tensor<fp16, [?, 128]> x_std_1_cast_fp16 = sqrt(x = var_176_cast_fp16)[name = tensor<string, []>("x_std_1_cast_fp16")];
139
+ tensor<fp16, []> var_178_to_fp16 = const()[name = tensor<string, []>("op_178_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
140
+ tensor<fp16, [?, 128]> x_std_cast_fp16 = add(x = x_std_1_cast_fp16, y = var_178_to_fp16)[name = tensor<string, []>("x_std_cast_fp16")];
141
+ tensor<int32, [1]> var_186_axes_0 = const()[name = tensor<string, []>("op_186_axes_0"), val = tensor<int32, [1]>([2])];
142
+ tensor<fp16, [?, 128, 1]> var_186_cast_fp16 = expand_dims(axes = var_186_axes_0, x = x_std_cast_fp16)[name = tensor<string, []>("op_186_cast_fp16")];
143
+ tensor<fp16, [?, 128, ?]> x_cast_fp16 = real_div(x = var_166_cast_fp16, y = var_186_cast_fp16)[name = tensor<string, []>("x_cast_fp16")];
144
+ tensor<int32, [3]> var_189_shape_cast_fp16 = shape(x = x_cast_fp16)[name = tensor<string, []>("op_189_shape_cast_fp16")];
145
+ tensor<int32, []> gather_6_axis_0 = const()[name = tensor<string, []>("gather_6_axis_0"), val = tensor<int32, []>(0)];
146
+ tensor<int32, []> gather_6_batch_dims_0 = const()[name = tensor<string, []>("gather_6_batch_dims_0"), val = tensor<int32, []>(0)];
147
+ tensor<bool, []> gather_6_validate_indices_0 = const()[name = tensor<string, []>("gather_6_validate_indices_0"), val = tensor<bool, []>(false)];
148
+ tensor<string, []> var_189_shape_cast_fp16_to_uint16_dtype_0 = const()[name = tensor<string, []>("op_189_shape_cast_fp16_to_uint16_dtype_0"), val = tensor<string, []>("uint16")];
149
+ tensor<uint16, []> select_6_to_uint16 = const()[name = tensor<string, []>("select_6_to_uint16"), val = tensor<uint16, []>(2)];
150
+ tensor<uint16, [3]> var_189_shape_cast_fp16_to_uint16 = cast(dtype = var_189_shape_cast_fp16_to_uint16_dtype_0, x = var_189_shape_cast_fp16)[name = tensor<string, []>("cast_17")];
151
+ tensor<uint16, []> gather_6_cast_uint16 = gather(axis = gather_6_axis_0, batch_dims = gather_6_batch_dims_0, indices = select_6_to_uint16, validate_indices = gather_6_validate_indices_0, x = var_189_shape_cast_fp16_to_uint16)[name = tensor<string, []>("gather_6_cast_uint16")];
152
+ tensor<string, []> gather_6_cast_uint16_to_int32_dtype_0 = const()[name = tensor<string, []>("gather_6_cast_uint16_to_int32_dtype_0"), val = tensor<string, []>("int32")];
153
+ tensor<int32, []> const_5 = const()[name = tensor<string, []>("const_5"), val = tensor<int32, []>(0)];
154
+ tensor<int32, []> const_6 = const()[name = tensor<string, []>("const_6"), val = tensor<int32, []>(1)];
155
+ tensor<int32, []> gather_6_cast_uint16_to_int32 = cast(dtype = gather_6_cast_uint16_to_int32_dtype_0, x = gather_6_cast_uint16)[name = tensor<string, []>("cast_16")];
156
+ tensor<int32, [?]> mask_1 = range_1d(end = gather_6_cast_uint16_to_int32, start = const_5, step = const_6)[name = tensor<string, []>("mask_1")];
157
+ tensor<int32, []> gather_7_axis_0 = const()[name = tensor<string, []>("gather_7_axis_0"), val = tensor<int32, []>(0)];
158
+ tensor<int32, []> gather_7_batch_dims_0 = const()[name = tensor<string, []>("gather_7_batch_dims_0"), val = tensor<int32, []>(0)];
159
+ tensor<bool, []> gather_7_validate_indices_0 = const()[name = tensor<string, []>("gather_7_validate_indices_0"), val = tensor<bool, []>(false)];
160
+ tensor<uint16, []> select_7_to_uint16 = const()[name = tensor<string, []>("select_7_to_uint16"), val = tensor<uint16, []>(0)];
161
+ tensor<uint16, []> gather_7_cast_uint16 = gather(axis = gather_7_axis_0, batch_dims = gather_7_batch_dims_0, indices = select_7_to_uint16, validate_indices = gather_7_validate_indices_0, x = var_189_shape_cast_fp16_to_uint16)[name = tensor<string, []>("gather_7_cast_uint16")];
162
+ tensor<string, []> gather_7_cast_uint16_to_int32_dtype_0 = const()[name = tensor<string, []>("gather_7_cast_uint16_to_int32_dtype_0"), val = tensor<string, []>("int32")];
163
+ tensor<int32, []> var_201 = const()[name = tensor<string, []>("op_201"), val = tensor<int32, []>(1)];
164
+ tensor<int32, []> concat_3_axis_0 = const()[name = tensor<string, []>("concat_3_axis_0"), val = tensor<int32, []>(0)];
165
+ tensor<bool, []> concat_3_interleave_0 = const()[name = tensor<string, []>("concat_3_interleave_0"), val = tensor<bool, []>(false)];
166
+ tensor<int32, []> gather_7_cast_uint16_to_int32 = cast(dtype = gather_7_cast_uint16_to_int32_dtype_0, x = gather_7_cast_uint16)[name = tensor<string, []>("cast_15")];
167
+ tensor<int32, [2]> concat_3 = concat(axis = concat_3_axis_0, interleave = concat_3_interleave_0, values = (gather_7_cast_uint16_to_int32, var_201))[name = tensor<string, []>("concat_3")];
168
+ tensor<int32, [1]> expand_dims_0_axes_0 = const()[name = tensor<string, []>("expand_dims_0_axes_0"), val = tensor<int32, [1]>([0])];
169
+ tensor<int32, [1, ?]> expand_dims_0 = expand_dims(axes = expand_dims_0_axes_0, x = mask_1)[name = tensor<string, []>("expand_dims_0")];
170
+ tensor<int32, [?, ?]> var_203 = tile(reps = concat_3, x = expand_dims_0)[name = tensor<string, []>("op_203")];
171
+ tensor<bool, [?, ?]> mask = greater_equal(x = var_203, y = var_131)[name = tensor<string, []>("mask")];
172
+ tensor<int32, [1]> var_208_axes_0 = const()[name = tensor<string, []>("op_208_axes_0"), val = tensor<int32, [1]>([1])];
173
+ tensor<bool, [?, 1, ?]> var_208 = expand_dims(axes = var_208_axes_0, x = mask)[name = tensor<string, []>("op_208")];
174
+ tensor<fp16, []> var_222_to_fp16 = const()[name = tensor<string, []>("op_222_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
175
+ tensor<fp16, [?, 128, ?]> melspectrogram = select(a = var_222_to_fp16, b = x_cast_fp16, cond = var_208)[name = tensor<string, []>("op_223_cast_fp16")];
176
+ } -> (melspectrogram, melspectrogram_length);
177
+ }
Melspectrogram_v2.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:023c2303b7c3a1fafed92fc6ec46c1d43a48c0bbcdf33d6441d383a61747734c
3
+ size 592384
ParakeetDecoder.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b657cd50e3e76a508244d46d5270f3bc0dcb047b0cabc684144cadc173dba1e5
3
+ size 243
ParakeetDecoder.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c1b9018f1de0d2c7d3b3c962832919af1efbcf6476990f737e11b23b37c46f0a
3
+ size 436
ParakeetDecoder.mlmodelc/model.mil ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3405.2.1"}, {"coremlc-version", "3405.2.1"}, {"coremltools-component-torch", "2.4.0"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "7.2"}})]
3
+ {
4
+ func main<ios15>(tensor<fp32, [2, 1, 640]> c_in, tensor<fp32, [2, 1, 640]> h_in, tensor<int32, [1]> target_lengths, tensor<int32, [1, ?]> targets) [FlexibleShapeInformation = tuple<tuple<tensor<string, []>, dict<tensor<string, []>, tensor<int32, [?]>>>, tuple<tensor<string, []>, dict<tensor<string, []>, list<tensor<int32, [2]>, ?>>>>((("DefaultShapes", {{"targets", [1, 1]}}), ("RangeDims", {{"targets", [[1, 1], [1, 1000]]}})))] {
5
+ tensor<int32, []> input_axis_0 = const()[name = tensor<string, []>("input_axis_0"), val = tensor<int32, []>(0)];
6
+ tensor<fp16, [1025, 640]> embed_weight_to_fp16 = const()[name = tensor<string, []>("embed_weight_to_fp16"), val = tensor<fp16, [1025, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
7
+ tensor<fp16, [1, ?, 640]> input_cast_fp16 = gather(axis = input_axis_0, indices = targets, x = embed_weight_to_fp16)[name = tensor<string, []>("input_cast_fp16")];
8
+ tensor<string, []> input_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("input_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
9
+ tensor<int32, []> split_0_num_splits_0 = const()[name = tensor<string, []>("split_0_num_splits_0"), val = tensor<int32, []>(2)];
10
+ tensor<int32, []> split_0_axis_0 = const()[name = tensor<string, []>("split_0_axis_0"), val = tensor<int32, []>(0)];
11
+ tensor<string, []> h_in_to_fp16_dtype_0 = const()[name = tensor<string, []>("h_in_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
12
+ tensor<fp16, [2, 1, 640]> cast_12 = cast(dtype = h_in_to_fp16_dtype_0, x = h_in)[name = tensor<string, []>("cast_12")];
13
+ 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 = cast_12)[name = tensor<string, []>("split_0_cast_fp16")];
14
+ tensor<int32, []> split_1_num_splits_0 = const()[name = tensor<string, []>("split_1_num_splits_0"), val = tensor<int32, []>(2)];
15
+ tensor<int32, []> split_1_axis_0 = const()[name = tensor<string, []>("split_1_axis_0"), val = tensor<int32, []>(0)];
16
+ tensor<string, []> c_in_to_fp16_dtype_0 = const()[name = tensor<string, []>("c_in_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
17
+ tensor<fp16, [2, 1, 640]> cast_11 = cast(dtype = c_in_to_fp16_dtype_0, x = c_in)[name = tensor<string, []>("cast_11")];
18
+ 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 = cast_11)[name = tensor<string, []>("split_1_cast_fp16")];
19
+ tensor<fp32, [2560]> concat_0 = const()[name = tensor<string, []>("concat_0"), val = tensor<fp32, [2560]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1312128)))];
20
+ tensor<fp32, [2560, 640]> concat_1 = const()[name = tensor<string, []>("concat_1"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1322432)))];
21
+ tensor<fp32, [2560, 640]> concat_2 = const()[name = tensor<string, []>("concat_2"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(7876096)))];
22
+ tensor<int32, [1]> var_25_lstm_layer_0_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
23
+ tensor<fp16, [1, 640]> var_25_lstm_layer_0_lstm_h0_squeeze_cast_fp16 = squeeze(axes = var_25_lstm_layer_0_lstm_h0_squeeze_axes_0, x = split_0_cast_fp16_0)[name = tensor<string, []>("op_25_lstm_layer_0_lstm_h0_squeeze_cast_fp16")];
24
+ tensor<string, []> var_25_lstm_layer_0_lstm_h0_squeeze_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_lstm_h0_squeeze_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
25
+ tensor<int32, [1]> var_25_lstm_layer_0_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
26
+ tensor<fp16, [1, 640]> var_25_lstm_layer_0_lstm_c0_squeeze_cast_fp16 = squeeze(axes = var_25_lstm_layer_0_lstm_c0_squeeze_axes_0, x = split_1_cast_fp16_0)[name = tensor<string, []>("op_25_lstm_layer_0_lstm_c0_squeeze_cast_fp16")];
27
+ tensor<string, []> var_25_lstm_layer_0_lstm_c0_squeeze_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_lstm_c0_squeeze_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
28
+ tensor<string, []> var_25_lstm_layer_0_direction_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_direction_0"), val = tensor<string, []>("forward")];
29
+ tensor<bool, []> var_25_lstm_layer_0_output_sequence_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_output_sequence_0"), val = tensor<bool, []>(true)];
30
+ tensor<string, []> var_25_lstm_layer_0_recurrent_activation_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
31
+ tensor<string, []> var_25_lstm_layer_0_cell_activation_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_cell_activation_0"), val = tensor<string, []>("tanh")];
32
+ tensor<string, []> var_25_lstm_layer_0_activation_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_activation_0"), val = tensor<string, []>("tanh")];
33
+ tensor<fp32, [1, 640]> cast_9 = cast(dtype = var_25_lstm_layer_0_lstm_c0_squeeze_cast_fp16_to_fp32_dtype_0, x = var_25_lstm_layer_0_lstm_c0_squeeze_cast_fp16)[name = tensor<string, []>("cast_9")];
34
+ tensor<fp32, [1, 640]> cast_10 = cast(dtype = var_25_lstm_layer_0_lstm_h0_squeeze_cast_fp16_to_fp32_dtype_0, x = var_25_lstm_layer_0_lstm_h0_squeeze_cast_fp16)[name = tensor<string, []>("cast_10")];
35
+ tensor<fp32, [1, ?, 640]> cast_13 = cast(dtype = input_cast_fp16_to_fp32_dtype_0, x = input_cast_fp16)[name = tensor<string, []>("cast_13")];
36
+ tensor<fp32, [1, ?, 640]> var_25_lstm_layer_0_0, tensor<fp32, [?, 640]> var_25_lstm_layer_0_1, tensor<fp32, [?, 640]> var_25_lstm_layer_0_2 = lstm(activation = var_25_lstm_layer_0_activation_0, bias = concat_0, cell_activation = var_25_lstm_layer_0_cell_activation_0, direction = var_25_lstm_layer_0_direction_0, initial_c = cast_9, initial_h = cast_10, output_sequence = var_25_lstm_layer_0_output_sequence_0, recurrent_activation = var_25_lstm_layer_0_recurrent_activation_0, weight_hh = concat_2, weight_ih = concat_1, x = cast_13)[name = tensor<string, []>("op_25_lstm_layer_0")];
37
+ tensor<fp32, [2560]> concat_3 = const()[name = tensor<string, []>("concat_3"), val = tensor<fp32, [2560]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(14429760)))];
38
+ tensor<fp32, [2560, 640]> concat_4 = const()[name = tensor<string, []>("concat_4"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(14440064)))];
39
+ tensor<fp32, [2560, 640]> concat_5 = const()[name = tensor<string, []>("concat_5"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(20993728)))];
40
+ tensor<int32, [1]> var_25_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("op_25_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
41
+ tensor<fp16, [1, 640]> var_25_lstm_h0_squeeze_cast_fp16 = squeeze(axes = var_25_lstm_h0_squeeze_axes_0, x = split_0_cast_fp16_1)[name = tensor<string, []>("op_25_lstm_h0_squeeze_cast_fp16")];
42
+ tensor<string, []> var_25_lstm_h0_squeeze_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_25_lstm_h0_squeeze_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
43
+ tensor<int32, [1]> var_25_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("op_25_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
44
+ tensor<fp16, [1, 640]> var_25_lstm_c0_squeeze_cast_fp16 = squeeze(axes = var_25_lstm_c0_squeeze_axes_0, x = split_1_cast_fp16_1)[name = tensor<string, []>("op_25_lstm_c0_squeeze_cast_fp16")];
45
+ tensor<string, []> var_25_lstm_c0_squeeze_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_25_lstm_c0_squeeze_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
46
+ tensor<string, []> var_25_direction_0 = const()[name = tensor<string, []>("op_25_direction_0"), val = tensor<string, []>("forward")];
47
+ tensor<bool, []> var_25_output_sequence_0 = const()[name = tensor<string, []>("op_25_output_sequence_0"), val = tensor<bool, []>(true)];
48
+ tensor<string, []> var_25_recurrent_activation_0 = const()[name = tensor<string, []>("op_25_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
49
+ tensor<string, []> var_25_cell_activation_0 = const()[name = tensor<string, []>("op_25_cell_activation_0"), val = tensor<string, []>("tanh")];
50
+ tensor<string, []> var_25_activation_0 = const()[name = tensor<string, []>("op_25_activation_0"), val = tensor<string, []>("tanh")];
51
+ tensor<fp32, [1, 640]> cast_7 = cast(dtype = var_25_lstm_c0_squeeze_cast_fp16_to_fp32_dtype_0, x = var_25_lstm_c0_squeeze_cast_fp16)[name = tensor<string, []>("cast_7")];
52
+ tensor<fp32, [1, 640]> cast_8 = cast(dtype = var_25_lstm_h0_squeeze_cast_fp16_to_fp32_dtype_0, x = var_25_lstm_h0_squeeze_cast_fp16)[name = tensor<string, []>("cast_8")];
53
+ tensor<fp32, [1, ?, 640]> decoder_output, tensor<fp32, [?, 640]> var_25_1, tensor<fp32, [?, 640]> var_25_2 = lstm(activation = var_25_activation_0, bias = concat_3, cell_activation = var_25_cell_activation_0, direction = var_25_direction_0, initial_c = cast_7, initial_h = cast_8, output_sequence = var_25_output_sequence_0, recurrent_activation = var_25_recurrent_activation_0, weight_hh = concat_5, weight_ih = concat_4, x = var_25_lstm_layer_0_0)[name = tensor<string, []>("op_25")];
54
+ tensor<int32, []> var_26_axis_0 = const()[name = tensor<string, []>("op_26_axis_0"), val = tensor<int32, []>(0)];
55
+ tensor<string, []> var_25_lstm_layer_0_1_to_fp16_dtype_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_1_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
56
+ tensor<string, []> var_25_1_to_fp16_dtype_0 = const()[name = tensor<string, []>("op_25_1_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
57
+ tensor<fp16, [?, 640]> cast_5 = cast(dtype = var_25_1_to_fp16_dtype_0, x = var_25_1)[name = tensor<string, []>("cast_5")];
58
+ tensor<fp16, [?, 640]> cast_6 = cast(dtype = var_25_lstm_layer_0_1_to_fp16_dtype_0, x = var_25_lstm_layer_0_1)[name = tensor<string, []>("cast_6")];
59
+ tensor<fp16, [2, ?, 640]> var_26_cast_fp16 = stack(axis = var_26_axis_0, values = (cast_6, cast_5))[name = tensor<string, []>("op_26_cast_fp16")];
60
+ tensor<string, []> var_26_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_26_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
61
+ tensor<int32, []> var_27_axis_0 = const()[name = tensor<string, []>("op_27_axis_0"), val = tensor<int32, []>(0)];
62
+ tensor<string, []> var_25_lstm_layer_0_2_to_fp16_dtype_0 = const()[name = tensor<string, []>("op_25_lstm_layer_0_2_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
63
+ tensor<string, []> var_25_2_to_fp16_dtype_0 = const()[name = tensor<string, []>("op_25_2_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
64
+ tensor<fp16, [?, 640]> cast_2 = cast(dtype = var_25_2_to_fp16_dtype_0, x = var_25_2)[name = tensor<string, []>("cast_2")];
65
+ tensor<fp16, [?, 640]> cast_3 = cast(dtype = var_25_lstm_layer_0_2_to_fp16_dtype_0, x = var_25_lstm_layer_0_2)[name = tensor<string, []>("cast_3")];
66
+ tensor<fp16, [2, ?, 640]> var_27_cast_fp16 = stack(axis = var_27_axis_0, values = (cast_3, cast_2))[name = tensor<string, []>("op_27_cast_fp16")];
67
+ tensor<string, []> var_27_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_27_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
68
+ tensor<fp32, [2, ?, 640]> c_out = cast(dtype = var_27_cast_fp16_to_fp32_dtype_0, x = var_27_cast_fp16)[name = tensor<string, []>("cast_1")];
69
+ tensor<fp32, [2, ?, 640]> h_out = cast(dtype = var_26_cast_fp16_to_fp32_dtype_0, x = var_26_cast_fp16)[name = tensor<string, []>("cast_4")];
70
+ tensor<int32, [1]> target_lengths_tmp = identity(x = target_lengths)[name = tensor<string, []>("target_lengths_tmp")];
71
+ } -> (decoder_output, h_out, c_out);
72
+ }
ParakeetDecoder.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1fd28df8a6356e3f95f52bfcd4b735ba004caaf7c82348a8c5eb970ecc3e6e4a
3
+ size 27547392
ParakeetEncoder.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3225923f625f60fee4a7506b970f519cda74892146cd47b8ac5e36b0597eee14
3
+ size 243
ParakeetEncoder.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e22b7069673b061dfbbc9d8654538f7583c817eefb25ea75dd1694b6289b1ebb
3
+ size 384
ParakeetEncoder.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
ParakeetEncoder.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:17939786f09350757e7b3a8164f201c0a086ab510f5c7e0e42eff7fc9e264860
3
+ size 1179765184
ParakeetEncoder_4bit_par.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4cfc91cb91b47a2e2f6e3bc060795a8f41fa38d28a32fdc5628e6cc7839aa458
3
+ size 243
ParakeetEncoder_4bit_par.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:885ee216b79acb509c9983d547180f6ce3b815e090ebecd6388cb399a64d9688
3
+ size 386
ParakeetEncoder_4bit_par.mlmodelc/metadata.json ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Mixed (Float16, Palettized (10 bits), Palettized (11 bits), Palettized (7 bits), Palettized (9 bits))",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float16",
10
+ "formattedType" : "MultiArray (Float16 1 × 1024 × 126)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1024, 126]",
13
+ "name" : "encoder_output",
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" : "encoder_output_length",
24
+ "type" : "MultiArray"
25
+ }
26
+ ],
27
+ "modelParameters" : [
28
+
29
+ ],
30
+ "specificationVersion" : 9,
31
+ "mlProgramOperationTypeHistogram" : {
32
+ "Ios18.expandDims" : 5,
33
+ "Ios18.mul" : 99,
34
+ "Ios18.softmax" : 24,
35
+ "Ios18.matmul" : 72,
36
+ "Ios18.logicalNot" : 2,
37
+ "Ios18.floor" : 3,
38
+ "Split" : 24,
39
+ "Ios18.sigmoid" : 24,
40
+ "Select" : 72,
41
+ "Tile" : 1,
42
+ "Ios18.add" : 174,
43
+ "Ios18.layerNorm" : 120,
44
+ "Ios18.reshape" : 145,
45
+ "Pad" : 48,
46
+ "Ios18.constexprLutToDense" : 270,
47
+ "Ios18.linear" : 193,
48
+ "Ios18.conv" : 77,
49
+ "Ios18.relu" : 3,
50
+ "Ios18.silu" : 72,
51
+ "Ios18.logicalAnd" : 2,
52
+ "Ios18.transpose" : 172,
53
+ "Ios18.cast" : 3,
54
+ "Ios18.less" : 1,
55
+ "Ios18.sliceByIndex" : 48
56
+ },
57
+ "computePrecision" : "Mixed (Float16, Float32, 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.source_dialect" : "TorchScript",
75
+ "com.github.apple.coremltools.source" : "torch==2.5.0",
76
+ "com.github.apple.coremltools.version" : "8.3.0"
77
+ },
78
+ "inputSchema" : [
79
+ {
80
+ "hasShapeFlexibility" : "0",
81
+ "isOptional" : "0",
82
+ "dataType" : "Float32",
83
+ "formattedType" : "MultiArray (Float32 1 × 128 × 1001)",
84
+ "shortDescription" : "",
85
+ "shape" : "[1, 128, 1001]",
86
+ "name" : "audio_signal",
87
+ "type" : "MultiArray"
88
+ },
89
+ {
90
+ "hasShapeFlexibility" : "0",
91
+ "isOptional" : "0",
92
+ "dataType" : "Int32",
93
+ "formattedType" : "MultiArray (Int32 1)",
94
+ "shortDescription" : "",
95
+ "shape" : "[1]",
96
+ "name" : "length",
97
+ "type" : "MultiArray"
98
+ }
99
+ ],
100
+ "generatedClassName" : "ParakeetEncoder_4bit",
101
+ "method" : "predict"
102
+ }
103
+ ]
ParakeetEncoder_4bit_par.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
ParakeetEncoder_4bit_par.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9c611dc6768cdbedac64ebfccfefba660f9eaf97507aaca8e0e09b98e10b98fd
3
+ size 305176576
ParakeetEncoder_v2.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:810d10e271c983398343c8a6372cd77e93b8fa38fa87e5440b52d70141541d3f
3
+ size 243
ParakeetEncoder_v2.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3a3fdaf971cab989eead103325b0a3d5e6702a4461d803b856b7f39177dc7f2e
3
+ size 386
ParakeetEncoder_v2.mlmodelc/metadata.json ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Mixed (Float16, Int8)",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float16",
10
+ "formattedType" : "MultiArray (Float16 1 × 126 × 1024)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 126, 1024]",
13
+ "name" : "encoder_output",
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" : "encoder_output_length",
24
+ "type" : "MultiArray"
25
+ }
26
+ ],
27
+ "modelParameters" : [
28
+
29
+ ],
30
+ "specificationVersion" : 8,
31
+ "mlProgramOperationTypeHistogram" : {
32
+ "Ios17.floor" : 3,
33
+ "Ios17.logicalAnd" : 2,
34
+ "Ios17.reshape" : 145,
35
+ "Ios16.softmax" : 24,
36
+ "Ios17.matmul" : 72,
37
+ "Ios17.transpose" : 171,
38
+ "Split" : 24,
39
+ "Ios17.expandDims" : 5,
40
+ "Select" : 72,
41
+ "Ios17.add" : 174,
42
+ "Tile" : 1,
43
+ "Ios17.sliceByIndex" : 48,
44
+ "Ios16.sigmoid" : 24,
45
+ "Pad" : 48,
46
+ "Ios17.logicalNot" : 2,
47
+ "Ios17.layerNorm" : 120,
48
+ "Ios16.constexprAffineDequantize" : 342,
49
+ "Ios16.silu" : 72,
50
+ "Ios17.less" : 1,
51
+ "Ios17.conv" : 77,
52
+ "Ios16.relu" : 3,
53
+ "Ios17.cast" : 3,
54
+ "Ios17.linear" : 193,
55
+ "Ios17.mul" : 99
56
+ },
57
+ "computePrecision" : "Mixed (Float16, Float32, Int32)",
58
+ "isUpdatable" : "0",
59
+ "stateSchema" : [
60
+
61
+ ],
62
+ "availability" : {
63
+ "macOS" : "14.0",
64
+ "tvOS" : "17.0",
65
+ "visionOS" : "1.0",
66
+ "watchOS" : "10.0",
67
+ "iOS" : "17.0",
68
+ "macCatalyst" : "17.0"
69
+ },
70
+ "modelType" : {
71
+ "name" : "MLModelType_mlProgram"
72
+ },
73
+ "userDefinedMetadata" : {
74
+ "com.github.apple.coremltools.source_dialect" : "TorchScript",
75
+ "com.github.apple.coremltools.source" : "torch==2.5.0",
76
+ "com.github.apple.coremltools.version" : "8.3.0"
77
+ },
78
+ "inputSchema" : [
79
+ {
80
+ "hasShapeFlexibility" : "0",
81
+ "isOptional" : "0",
82
+ "dataType" : "Float32",
83
+ "formattedType" : "MultiArray (Float32 1 × 128 × 1001)",
84
+ "shortDescription" : "",
85
+ "shape" : "[1, 128, 1001]",
86
+ "name" : "audio_signal",
87
+ "type" : "MultiArray"
88
+ },
89
+ {
90
+ "hasShapeFlexibility" : "0",
91
+ "isOptional" : "0",
92
+ "dataType" : "Int32",
93
+ "formattedType" : "MultiArray (Int32 1)",
94
+ "shortDescription" : "",
95
+ "shape" : "[1]",
96
+ "name" : "length",
97
+ "type" : "MultiArray"
98
+ }
99
+ ],
100
+ "generatedClassName" : "ParakeetEncoder_int8",
101
+ "method" : "predict"
102
+ }
103
+ ]
ParakeetEncoder_v2.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
ParakeetEncoder_v2.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:58ebcc6f19497bf6b2c272a7d699dedf26a269a383b0c889f159cd65b33b1f6d
3
+ size 591108480
Preprocessor.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:03ab3c1327a054c54c07a40325db967ec574f2c91dcc8192bfa44aa561bcf2d8
3
+ size 243
Preprocessor.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d88ea1fc349459c9e100d6a96688c5b29a1f0d865f544be103001724b986b6d6
3
+ size 494
Preprocessor.mlmodelc/metadata.json ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "shortDescription" : "int8-linear quantized - preprocessor",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32)",
11
+ "shortDescription" : "",
12
+ "shape" : "[]",
13
+ "name" : "mel",
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" : "mel_length",
24
+ "type" : "MultiArray"
25
+ }
26
+ ],
27
+ "storagePrecision" : "Int8",
28
+ "modelParameters" : [
29
+
30
+ ],
31
+ "author" : "Fluid Inference",
32
+ "specificationVersion" : 8,
33
+ "mlProgramOperationTypeHistogram" : {
34
+ "Range1d" : 2,
35
+ "Ios17.reshape" : 2,
36
+ "Ios17.matmul" : 1,
37
+ "Ios17.expandDims" : 10,
38
+ "Select" : 3,
39
+ "Ios17.add" : 4,
40
+ "Tile" : 2,
41
+ "Ios17.sliceByIndex" : 3,
42
+ "Ios16.reduceSum" : 4,
43
+ "Shape" : 3,
44
+ "Ios17.gather" : 3,
45
+ "Pad" : 1,
46
+ "Ios17.log" : 1,
47
+ "Ios16.constexprAffineDequantize" : 3,
48
+ "Ios17.conv" : 2,
49
+ "Ios17.sub" : 4,
50
+ "Ios17.pow" : 2,
51
+ "Ios17.cast" : 10,
52
+ "Ios17.realDiv" : 4,
53
+ "Stack" : 1,
54
+ "Ios17.concat" : 3,
55
+ "Ios17.floorDiv" : 1,
56
+ "Ios17.less" : 1,
57
+ "Ios17.sqrt" : 1,
58
+ "Ios17.greaterEqual" : 1,
59
+ "Ios17.mul" : 1
60
+ },
61
+ "computePrecision" : "Mixed (Float16, Float32, Int32, UInt16)",
62
+ "isUpdatable" : "0",
63
+ "stateSchema" : [
64
+
65
+ ],
66
+ "availability" : {
67
+ "macOS" : "14.0",
68
+ "tvOS" : "17.0",
69
+ "visionOS" : "1.0",
70
+ "watchOS" : "10.0",
71
+ "iOS" : "17.0",
72
+ "macCatalyst" : "17.0"
73
+ },
74
+ "modelType" : {
75
+ "name" : "MLModelType_mlProgram"
76
+ },
77
+ "inputSchema" : [
78
+ {
79
+ "dataType" : "Float32",
80
+ "hasShapeFlexibility" : "1",
81
+ "isOptional" : "0",
82
+ "shapeFlexibility" : "1 × 1...240000",
83
+ "shapeRange" : "[[1, 1], [1, 240000]]",
84
+ "formattedType" : "MultiArray (Float32 1 × 1)",
85
+ "type" : "MultiArray",
86
+ "shape" : "[1, 1]",
87
+ "name" : "audio_signal",
88
+ "shortDescription" : ""
89
+ },
90
+ {
91
+ "hasShapeFlexibility" : "0",
92
+ "isOptional" : "0",
93
+ "dataType" : "Int32",
94
+ "formattedType" : "MultiArray (Int32 1)",
95
+ "shortDescription" : "",
96
+ "shape" : "[1]",
97
+ "name" : "audio_length",
98
+ "type" : "MultiArray"
99
+ }
100
+ ],
101
+ "userDefinedMetadata" : {
102
+ "com.github.apple.coremltools.conversion_date" : "2025-09-25",
103
+ "com.github.apple.coremltools.source" : "torch==2.7.0",
104
+ "com.github.apple.coremltools.version" : "9.0b1",
105
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
106
+ },
107
+ "generatedClassName" : "parakeet_preprocessor",
108
+ "method" : "predict"
109
+ }
110
+ ]
Preprocessor.mlmodelc/model.mil ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3500.14.1"}, {"coremlc-version", "3500.32.1"}})]
3
+ {
4
+ func main<ios17>(tensor<int32, [1]> audio_length, tensor<fp32, [1, ?]> audio_signal) [FlexibleShapeInformation = tuple<tuple<tensor<string, []>, dict<tensor<string, []>, tensor<int32, [?]>>>, tuple<tensor<string, []>, dict<tensor<string, []>, list<tensor<int32, [2]>, ?>>>>((("DefaultShapes", {{"audio_signal", [1, 1]}}), ("RangeDims", {{"audio_signal", [[1, 1], [1, 240000]]}})))] {
5
+ tensor<int32, []> var_9 = const()[name = tensor<string, []>("op_9"), val = tensor<int32, []>(1)];
6
+ tensor<int32, []> var_10 = const()[name = tensor<string, []>("op_10"), val = tensor<int32, []>(160)];
7
+ tensor<int32, []> var_34 = const()[name = tensor<string, []>("op_34"), val = tensor<int32, []>(512)];
8
+ tensor<int32, [1]> var_35 = add(x = audio_length, y = var_34)[name = tensor<string, []>("op_35")];
9
+ tensor<int32, []> var_36 = const()[name = tensor<string, []>("op_36"), val = tensor<int32, []>(512)];
10
+ tensor<int32, [1]> var_37 = sub(x = var_35, y = var_36)[name = tensor<string, []>("op_37")];
11
+ tensor<int32, [1]> floor_div_0 = floor_div(x = var_37, y = var_10)[name = tensor<string, []>("floor_div_0")];
12
+ tensor<string, []> var_38_to_fp16_dtype_0 = const()[name = tensor<string, []>("op_38_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
13
+ tensor<fp16, []> var_39_promoted_to_fp16 = const()[name = tensor<string, []>("op_39_promoted_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
14
+ tensor<fp16, [1]> floor_div_0_to_fp16 = cast(dtype = var_38_to_fp16_dtype_0, x = floor_div_0)[name = tensor<string, []>("cast_9")];
15
+ tensor<fp16, [1]> seq_len_1_cast_fp16 = add(x = floor_div_0_to_fp16, y = var_39_promoted_to_fp16)[name = tensor<string, []>("seq_len_1_cast_fp16")];
16
+ tensor<string, []> seq_len_dtype_0 = const()[name = tensor<string, []>("seq_len_dtype_0"), val = tensor<string, []>("int32")];
17
+ tensor<int32, [2]> var_43_begin_0 = const()[name = tensor<string, []>("op_43_begin_0"), val = tensor<int32, [2]>([0, 0])];
18
+ tensor<int32, [2]> var_43_end_0 = const()[name = tensor<string, []>("op_43_end_0"), val = tensor<int32, [2]>([1, 1])];
19
+ tensor<bool, [2]> var_43_end_mask_0 = const()[name = tensor<string, []>("op_43_end_mask_0"), val = tensor<bool, [2]>([true, false])];
20
+ tensor<bool, [2]> var_43_squeeze_mask_0 = const()[name = tensor<string, []>("op_43_squeeze_mask_0"), val = tensor<bool, [2]>([false, true])];
21
+ tensor<string, []> audio_signal_to_fp16_dtype_0 = const()[name = tensor<string, []>("audio_signal_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
22
+ tensor<fp16, [1, ?]> audio_signal_to_fp16 = cast(dtype = audio_signal_to_fp16_dtype_0, x = audio_signal)[name = tensor<string, []>("cast_8")];
23
+ tensor<fp16, [1]> var_43_cast_fp16 = slice_by_index(begin = var_43_begin_0, end = var_43_end_0, end_mask = var_43_end_mask_0, squeeze_mask = var_43_squeeze_mask_0, x = audio_signal_to_fp16)[name = tensor<string, []>("op_43_cast_fp16")];
24
+ tensor<int32, [1]> var_44_axes_0 = const()[name = tensor<string, []>("op_44_axes_0"), val = tensor<int32, [1]>([1])];
25
+ tensor<fp16, [1, 1]> var_44_cast_fp16 = expand_dims(axes = var_44_axes_0, x = var_43_cast_fp16)[name = tensor<string, []>("op_44_cast_fp16")];
26
+ tensor<int32, [2]> var_46_begin_0 = const()[name = tensor<string, []>("op_46_begin_0"), val = tensor<int32, [2]>([0, 1])];
27
+ tensor<int32, [2]> var_46_end_0 = const()[name = tensor<string, []>("op_46_end_0"), val = tensor<int32, [2]>([1, 0])];
28
+ tensor<bool, [2]> var_46_end_mask_0 = const()[name = tensor<string, []>("op_46_end_mask_0"), val = tensor<bool, [2]>([true, true])];
29
+ tensor<fp16, [1, ?]> var_46_cast_fp16 = slice_by_index(begin = var_46_begin_0, end = var_46_end_0, end_mask = var_46_end_mask_0, x = audio_signal_to_fp16)[name = tensor<string, []>("op_46_cast_fp16")];
30
+ tensor<int32, [2]> var_48_begin_0 = const()[name = tensor<string, []>("op_48_begin_0"), val = tensor<int32, [2]>([0, 0])];
31
+ tensor<int32, [2]> var_48_end_0 = const()[name = tensor<string, []>("op_48_end_0"), val = tensor<int32, [2]>([1, -1])];
32
+ tensor<bool, [2]> var_48_end_mask_0 = const()[name = tensor<string, []>("op_48_end_mask_0"), val = tensor<bool, [2]>([true, false])];
33
+ tensor<fp16, [1, ?]> var_48_cast_fp16 = slice_by_index(begin = var_48_begin_0, end = var_48_end_0, end_mask = var_48_end_mask_0, x = audio_signal_to_fp16)[name = tensor<string, []>("op_48_cast_fp16")];
34
+ tensor<fp16, []> var_49_to_fp16 = const()[name = tensor<string, []>("op_49_to_fp16"), val = tensor<fp16, []>(0x1.f0cp-1)];
35
+ tensor<fp16, [1, ?]> var_50_cast_fp16 = mul(x = var_48_cast_fp16, y = var_49_to_fp16)[name = tensor<string, []>("op_50_cast_fp16")];
36
+ tensor<fp16, [1, ?]> var_51_cast_fp16 = sub(x = var_46_cast_fp16, y = var_50_cast_fp16)[name = tensor<string, []>("op_51_cast_fp16")];
37
+ tensor<bool, []> input_1_interleave_0 = const()[name = tensor<string, []>("input_1_interleave_0"), val = tensor<bool, []>(false)];
38
+ tensor<fp16, [1, ?]> input_1_cast_fp16 = concat(axis = var_9, interleave = input_1_interleave_0, values = (var_44_cast_fp16, var_51_cast_fp16))[name = tensor<string, []>("input_1_cast_fp16")];
39
+ tensor<int32, [3]> concat_0x = const()[name = tensor<string, []>("concat_0x"), val = tensor<int32, [3]>([1, 1, -1])];
40
+ tensor<fp16, [1, 1, ?]> input_3_cast_fp16 = reshape(shape = concat_0x, x = input_1_cast_fp16)[name = tensor<string, []>("input_3_cast_fp16")];
41
+ tensor<int32, [6]> input_5_pad_0 = const()[name = tensor<string, []>("input_5_pad_0"), val = tensor<int32, [6]>([0, 0, 0, 0, 256, 256])];
42
+ tensor<string, []> input_5_mode_0 = const()[name = tensor<string, []>("input_5_mode_0"), val = tensor<string, []>("reflect")];
43
+ tensor<fp16, []> const_1_to_fp16 = const()[name = tensor<string, []>("const_1_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
44
+ tensor<fp16, [1, 1, ?]> input_5_cast_fp16 = pad(constant_val = const_1_to_fp16, mode = input_5_mode_0, pad = input_5_pad_0, x = input_3_cast_fp16)[name = tensor<string, []>("input_5_cast_fp16")];
45
+ tensor<int32, [2]> concat_1x = const()[name = tensor<string, []>("concat_1x"), val = tensor<int32, [2]>([1, -1])];
46
+ tensor<fp16, [1, ?]> input_cast_fp16 = reshape(shape = concat_1x, x = input_5_cast_fp16)[name = tensor<string, []>("input_cast_fp16")];
47
+ tensor<int32, [1]> expand_dims_3 = const()[name = tensor<string, []>("expand_dims_3"), val = tensor<int32, [1]>([160])];
48
+ tensor<int32, [1]> expand_dims_4_axes_0 = const()[name = tensor<string, []>("expand_dims_4_axes_0"), val = tensor<int32, [1]>([1])];
49
+ tensor<fp16, [1, 1, ?]> expand_dims_4_cast_fp16 = expand_dims(axes = expand_dims_4_axes_0, x = input_cast_fp16)[name = tensor<string, []>("expand_dims_4_cast_fp16")];
50
+ tensor<string, []> conv_0_pad_type_0 = const()[name = tensor<string, []>("conv_0_pad_type_0"), val = tensor<string, []>("valid")];
51
+ tensor<int32, [2]> conv_0_pad_0 = const()[name = tensor<string, []>("conv_0_pad_0"), val = tensor<int32, [2]>([0, 0])];
52
+ tensor<int32, [1]> conv_0_dilations_0 = const()[name = tensor<string, []>("conv_0_dilations_0"), val = tensor<int32, [1]>([1])];
53
+ tensor<int32, []> conv_0_groups_0 = const()[name = tensor<string, []>("conv_0_groups_0"), val = tensor<int32, []>(1)];
54
+ tensor<fp16, [257, 1, 512]> expand_dims_1_to_fp16_quantized = constexpr_affine_dequantize()[axis = tensor<int32, []>(0), name = tensor<string, []>("expand_dims_1_to_fp16_quantized"), quantized_data = tensor<int8, [257, 1, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64))), scale = tensor<fp16, [257]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(132096))), zero_point = tensor<int8, [257]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(131712)))];
55
+ tensor<fp16, [1, 257, ?]> conv_0_cast_fp16 = conv(dilations = conv_0_dilations_0, groups = conv_0_groups_0, pad = conv_0_pad_0, pad_type = conv_0_pad_type_0, strides = expand_dims_3, weight = expand_dims_1_to_fp16_quantized, x = expand_dims_4_cast_fp16)[name = tensor<string, []>("conv_0_cast_fp16")];
56
+ tensor<string, []> conv_1_pad_type_0 = const()[name = tensor<string, []>("conv_1_pad_type_0"), val = tensor<string, []>("valid")];
57
+ tensor<int32, [2]> conv_1_pad_0 = const()[name = tensor<string, []>("conv_1_pad_0"), val = tensor<int32, [2]>([0, 0])];
58
+ tensor<int32, [1]> conv_1_dilations_0 = const()[name = tensor<string, []>("conv_1_dilations_0"), val = tensor<int32, [1]>([1])];
59
+ tensor<int32, []> conv_1_groups_0 = const()[name = tensor<string, []>("conv_1_groups_0"), val = tensor<int32, []>(1)];
60
+ tensor<fp16, [257, 1, 512]> expand_dims_2_to_fp16_quantized = constexpr_affine_dequantize()[axis = tensor<int32, []>(0), name = tensor<string, []>("expand_dims_2_to_fp16_quantized"), quantized_data = tensor<int8, [257, 1, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(132736))), scale = tensor<fp16, [257]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(264768))), zero_point = tensor<int8, [257]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(264384)))];
61
+ tensor<fp16, [1, 257, ?]> conv_1_cast_fp16 = conv(dilations = conv_1_dilations_0, groups = conv_1_groups_0, pad = conv_1_pad_0, pad_type = conv_1_pad_type_0, strides = expand_dims_3, weight = expand_dims_2_to_fp16_quantized, x = expand_dims_4_cast_fp16)[name = tensor<string, []>("conv_1_cast_fp16")];
62
+ tensor<int32, []> stack_0_axis_0 = const()[name = tensor<string, []>("stack_0_axis_0"), val = tensor<int32, []>(-1)];
63
+ tensor<fp16, [1, 257, ?, 2]> stack_0_cast_fp16 = stack(axis = stack_0_axis_0, values = (conv_0_cast_fp16, conv_1_cast_fp16))[name = tensor<string, []>("stack_0_cast_fp16")];
64
+ tensor<fp16, []> var_17_promoted_to_fp16 = const()[name = tensor<string, []>("op_17_promoted_to_fp16"), val = tensor<fp16, []>(0x1p+1)];
65
+ tensor<fp16, [1, 257, ?, 2]> var_67_cast_fp16 = pow(x = stack_0_cast_fp16, y = var_17_promoted_to_fp16)[name = tensor<string, []>("op_67_cast_fp16")];
66
+ tensor<int32, [1]> var_69_axes_0 = const()[name = tensor<string, []>("op_69_axes_0"), val = tensor<int32, [1]>([-1])];
67
+ tensor<bool, []> var_69_keep_dims_0 = const()[name = tensor<string, []>("op_69_keep_dims_0"), val = tensor<bool, []>(false)];
68
+ tensor<fp16, [1, 257, ?]> var_69_cast_fp16 = reduce_sum(axes = var_69_axes_0, keep_dims = var_69_keep_dims_0, x = var_67_cast_fp16)[name = tensor<string, []>("op_69_cast_fp16")];
69
+ tensor<bool, []> x_11_transpose_x_0 = const()[name = tensor<string, []>("x_11_transpose_x_0"), val = tensor<bool, []>(false)];
70
+ tensor<bool, []> x_11_transpose_y_0 = const()[name = tensor<string, []>("x_11_transpose_y_0"), val = tensor<bool, []>(false)];
71
+ tensor<fp16, [1, 128, 257]> const_2_to_fp16_quantized = constexpr_affine_dequantize()[axis = tensor<int32, []>(1), name = tensor<string, []>("const_2_to_fp16_quantized"), quantized_data = tensor<int8, [1, 128, 257]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(265408))), scale = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(298560))), zero_point = tensor<int8, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(298368)))];
72
+ tensor<fp16, [1, 128, ?]> x_11_cast_fp16 = matmul(transpose_x = x_11_transpose_x_0, transpose_y = x_11_transpose_y_0, x = const_2_to_fp16_quantized, y = var_69_cast_fp16)[name = tensor<string, []>("x_11_cast_fp16")];
73
+ tensor<fp16, []> var_76_to_fp16 = const()[name = tensor<string, []>("op_76_to_fp16"), val = tensor<fp16, []>(0x1p-24)];
74
+ tensor<fp16, [1, 128, ?]> var_77_cast_fp16 = add(x = x_11_cast_fp16, y = var_76_to_fp16)[name = tensor<string, []>("op_77_cast_fp16")];
75
+ tensor<fp32, []> x_13_epsilon_0 = const()[name = tensor<string, []>("x_13_epsilon_0"), val = tensor<fp32, []>(0x1p-149)];
76
+ tensor<fp16, [1, 128, ?]> x_13_cast_fp16 = log(epsilon = x_13_epsilon_0, x = var_77_cast_fp16)[name = tensor<string, []>("x_13_cast_fp16")];
77
+ tensor<int32, [3]> var_79_shape_cast_fp16 = shape(x = x_13_cast_fp16)[name = tensor<string, []>("op_79_shape_cast_fp16")];
78
+ tensor<int32, []> gather_4 = const()[name = tensor<string, []>("gather_4"), val = tensor<int32, []>(1)];
79
+ tensor<int32, []> gather_5_axis_0 = const()[name = tensor<string, []>("gather_5_axis_0"), val = tensor<int32, []>(0)];
80
+ tensor<int32, []> gather_5_batch_dims_0 = const()[name = tensor<string, []>("gather_5_batch_dims_0"), val = tensor<int32, []>(0)];
81
+ tensor<bool, []> gather_5_validate_indices_0 = const()[name = tensor<string, []>("gather_5_validate_indices_0"), val = tensor<bool, []>(false)];
82
+ tensor<string, []> var_79_shape_cast_fp16_to_uint16_dtype_0 = const()[name = tensor<string, []>("op_79_shape_cast_fp16_to_uint16_dtype_0"), val = tensor<string, []>("uint16")];
83
+ tensor<uint16, []> gather_5_indices_0_to_uint16 = const()[name = tensor<string, []>("gather_5_indices_0_to_uint16"), val = tensor<uint16, []>(2)];
84
+ tensor<uint16, [3]> var_79_shape_cast_fp16_to_uint16 = cast(dtype = var_79_shape_cast_fp16_to_uint16_dtype_0, x = var_79_shape_cast_fp16)[name = tensor<string, []>("cast_7")];
85
+ tensor<uint16, []> gather_5_cast_uint16 = gather(axis = gather_5_axis_0, batch_dims = gather_5_batch_dims_0, indices = gather_5_indices_0_to_uint16, validate_indices = gather_5_validate_indices_0, x = var_79_shape_cast_fp16_to_uint16)[name = tensor<string, []>("gather_5_cast_uint16")];
86
+ tensor<string, []> gather_5_cast_uint16_to_int32_dtype_0 = const()[name = tensor<string, []>("gather_5_cast_uint16_to_int32_dtype_0"), val = tensor<string, []>("int32")];
87
+ tensor<int32, []> const_3 = const()[name = tensor<string, []>("const_3"), val = tensor<int32, []>(0)];
88
+ tensor<int32, []> const_4 = const()[name = tensor<string, []>("const_4"), val = tensor<int32, []>(1)];
89
+ tensor<int32, []> gather_5_cast_uint16_to_int32 = cast(dtype = gather_5_cast_uint16_to_int32_dtype_0, x = gather_5_cast_uint16)[name = tensor<string, []>("cast_6")];
90
+ tensor<int32, [?]> var_81 = range_1d(end = gather_5_cast_uint16_to_int32, start = const_3, step = const_4)[name = tensor<string, []>("op_81")];
91
+ tensor<int32, [1]> var_82_axes_0 = const()[name = tensor<string, []>("op_82_axes_0"), val = tensor<int32, [1]>([0])];
92
+ tensor<int32, [1, ?]> var_82 = expand_dims(axes = var_82_axes_0, x = var_81)[name = tensor<string, []>("op_82")];
93
+ tensor<int32, []> concat_2_axis_0 = const()[name = tensor<string, []>("concat_2_axis_0"), val = tensor<int32, []>(0)];
94
+ tensor<bool, []> concat_2_interleave_0 = const()[name = tensor<string, []>("concat_2_interleave_0"), val = tensor<bool, []>(false)];
95
+ tensor<int32, [2]> concat_2 = concat(axis = concat_2_axis_0, interleave = concat_2_interleave_0, values = (gather_4, gather_5_cast_uint16_to_int32))[name = tensor<string, []>("concat_2")];
96
+ tensor<int32, [2]> shape_0 = shape(x = var_82)[name = tensor<string, []>("shape_0")];
97
+ tensor<int32, [2]> real_div_0 = real_div(x = concat_2, y = shape_0)[name = tensor<string, []>("real_div_0")];
98
+ tensor<int32, [?, ?]> time_steps = tile(reps = real_div_0, x = var_82)[name = tensor<string, []>("time_steps")];
99
+ tensor<int32, [1]> var_85_axes_0 = const()[name = tensor<string, []>("op_85_axes_0"), val = tensor<int32, [1]>([1])];
100
+ tensor<int32, [1]> mel_length = cast(dtype = seq_len_dtype_0, x = seq_len_1_cast_fp16)[name = tensor<string, []>("cast_5")];
101
+ tensor<int32, [1, 1]> var_85 = expand_dims(axes = var_85_axes_0, x = mel_length)[name = tensor<string, []>("op_85")];
102
+ tensor<bool, [?, ?]> valid_mask = less(x = time_steps, y = var_85)[name = tensor<string, []>("valid_mask")];
103
+ tensor<int32, [1]> var_87_axes_0 = const()[name = tensor<string, []>("op_87_axes_0"), val = tensor<int32, [1]>([1])];
104
+ tensor<bool, [?, 1, ?]> var_87 = expand_dims(axes = var_87_axes_0, x = valid_mask)[name = tensor<string, []>("op_87")];
105
+ tensor<fp16, []> var_24_to_fp16 = const()[name = tensor<string, []>("op_24_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
106
+ tensor<fp16, [1, 128, ?]> var_88_cast_fp16 = select(a = x_13_cast_fp16, b = var_24_to_fp16, cond = var_87)[name = tensor<string, []>("op_88_cast_fp16")];
107
+ tensor<int32, [1]> x_mean_numerator_axes_0 = const()[name = tensor<string, []>("x_mean_numerator_axes_0"), val = tensor<int32, [1]>([2])];
108
+ tensor<bool, []> x_mean_numerator_keep_dims_0 = const()[name = tensor<string, []>("x_mean_numerator_keep_dims_0"), val = tensor<bool, []>(false)];
109
+ tensor<fp16, [1, 128]> x_mean_numerator_cast_fp16 = reduce_sum(axes = x_mean_numerator_axes_0, keep_dims = x_mean_numerator_keep_dims_0, x = var_88_cast_fp16)[name = tensor<string, []>("x_mean_numerator_cast_fp16")];
110
+ tensor<int32, [1]> x_mean_denominator_axes_0 = const()[name = tensor<string, []>("x_mean_denominator_axes_0"), val = tensor<int32, [1]>([1])];
111
+ tensor<bool, []> x_mean_denominator_keep_dims_0 = const()[name = tensor<string, []>("x_mean_denominator_keep_dims_0"), val = tensor<bool, []>(false)];
112
+ tensor<string, []> cast_3_to_fp16_dtype_0 = const()[name = tensor<string, []>("cast_3_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
113
+ tensor<fp16, [?, ?]> valid_mask_to_fp16 = cast(dtype = cast_3_to_fp16_dtype_0, x = valid_mask)[name = tensor<string, []>("cast_4")];
114
+ tensor<fp16, [?]> x_mean_denominator_cast_fp16 = reduce_sum(axes = x_mean_denominator_axes_0, keep_dims = x_mean_denominator_keep_dims_0, x = valid_mask_to_fp16)[name = tensor<string, []>("x_mean_denominator_cast_fp16")];
115
+ tensor<int32, [1]> var_93_axes_0 = const()[name = tensor<string, []>("op_93_axes_0"), val = tensor<int32, [1]>([1])];
116
+ tensor<fp16, [?, 1]> var_93_cast_fp16 = expand_dims(axes = var_93_axes_0, x = x_mean_denominator_cast_fp16)[name = tensor<string, []>("op_93_cast_fp16")];
117
+ tensor<fp16, [?, 128]> x_mean_cast_fp16 = real_div(x = x_mean_numerator_cast_fp16, y = var_93_cast_fp16)[name = tensor<string, []>("x_mean_cast_fp16")];
118
+ tensor<int32, [1]> var_96_axes_0 = const()[name = tensor<string, []>("op_96_axes_0"), val = tensor<int32, [1]>([2])];
119
+ tensor<fp16, [?, 128, 1]> var_96_cast_fp16 = expand_dims(axes = var_96_axes_0, x = x_mean_cast_fp16)[name = tensor<string, []>("op_96_cast_fp16")];
120
+ tensor<fp16, [?, 128, ?]> var_97_cast_fp16 = sub(x = x_13_cast_fp16, y = var_96_cast_fp16)[name = tensor<string, []>("op_97_cast_fp16")];
121
+ tensor<fp16, [?, 128, ?]> var_98_cast_fp16 = select(a = var_97_cast_fp16, b = var_24_to_fp16, cond = var_87)[name = tensor<string, []>("op_98_cast_fp16")];
122
+ tensor<fp16, []> var_17_promoted_1_to_fp16 = const()[name = tensor<string, []>("op_17_promoted_1_to_fp16"), val = tensor<fp16, []>(0x1p+1)];
123
+ tensor<fp16, [?, 128, ?]> var_99_cast_fp16 = pow(x = var_98_cast_fp16, y = var_17_promoted_1_to_fp16)[name = tensor<string, []>("op_99_cast_fp16")];
124
+ tensor<int32, [1]> var_101_axes_0 = const()[name = tensor<string, []>("op_101_axes_0"), val = tensor<int32, [1]>([2])];
125
+ tensor<bool, []> var_101_keep_dims_0 = const()[name = tensor<string, []>("op_101_keep_dims_0"), val = tensor<bool, []>(false)];
126
+ tensor<fp16, [?, 128]> var_101_cast_fp16 = reduce_sum(axes = var_101_axes_0, keep_dims = var_101_keep_dims_0, x = var_99_cast_fp16)[name = tensor<string, []>("op_101_cast_fp16")];
127
+ tensor<fp16, []> var_103_to_fp16 = const()[name = tensor<string, []>("op_103_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
128
+ tensor<fp16, [?, 1]> var_104_cast_fp16 = sub(x = var_93_cast_fp16, y = var_103_to_fp16)[name = tensor<string, []>("op_104_cast_fp16")];
129
+ tensor<fp16, [?, 128]> var_105_cast_fp16 = real_div(x = var_101_cast_fp16, y = var_104_cast_fp16)[name = tensor<string, []>("op_105_cast_fp16")];
130
+ tensor<fp16, [?, 128]> x_std_1_cast_fp16 = sqrt(x = var_105_cast_fp16)[name = tensor<string, []>("x_std_1_cast_fp16")];
131
+ tensor<fp16, []> var_25_to_fp16 = const()[name = tensor<string, []>("op_25_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
132
+ tensor<fp16, [?, 128]> x_std_cast_fp16 = add(x = x_std_1_cast_fp16, y = var_25_to_fp16)[name = tensor<string, []>("x_std_cast_fp16")];
133
+ tensor<int32, [1]> var_110_axes_0 = const()[name = tensor<string, []>("op_110_axes_0"), val = tensor<int32, [1]>([2])];
134
+ tensor<fp16, [?, 128, 1]> var_110_cast_fp16 = expand_dims(axes = var_110_axes_0, x = x_std_cast_fp16)[name = tensor<string, []>("op_110_cast_fp16")];
135
+ tensor<fp16, [?, 128, ?]> x_cast_fp16 = real_div(x = var_97_cast_fp16, y = var_110_cast_fp16)[name = tensor<string, []>("x_cast_fp16")];
136
+ tensor<int32, [3]> var_112_shape_cast_fp16 = shape(x = x_cast_fp16)[name = tensor<string, []>("op_112_shape_cast_fp16")];
137
+ tensor<int32, []> gather_6_batch_dims_0 = const()[name = tensor<string, []>("gather_6_batch_dims_0"), val = tensor<int32, []>(0)];
138
+ tensor<bool, []> gather_6_validate_indices_0 = const()[name = tensor<string, []>("gather_6_validate_indices_0"), val = tensor<bool, []>(false)];
139
+ tensor<string, []> var_112_shape_cast_fp16_to_uint16_dtype_0 = const()[name = tensor<string, []>("op_112_shape_cast_fp16_to_uint16_dtype_0"), val = tensor<string, []>("uint16")];
140
+ tensor<int32, []> gather_6_cast_uint16_axis_0 = const()[name = tensor<string, []>("gather_6_cast_uint16_axis_0"), val = tensor<int32, []>(0)];
141
+ tensor<uint16, []> select_0_to_uint16 = const()[name = tensor<string, []>("select_0_to_uint16"), val = tensor<uint16, []>(2)];
142
+ tensor<uint16, [3]> var_112_shape_cast_fp16_to_uint16 = cast(dtype = var_112_shape_cast_fp16_to_uint16_dtype_0, x = var_112_shape_cast_fp16)[name = tensor<string, []>("cast_3")];
143
+ tensor<uint16, []> gather_6_cast_uint16_cast_uint16 = gather(axis = gather_6_cast_uint16_axis_0, batch_dims = gather_6_batch_dims_0, indices = select_0_to_uint16, validate_indices = gather_6_validate_indices_0, x = var_112_shape_cast_fp16_to_uint16)[name = tensor<string, []>("gather_6_cast_uint16_cast_uint16")];
144
+ tensor<string, []> gather_6_cast_uint16_to_int32_dtype_0 = const()[name = tensor<string, []>("gather_6_cast_uint16_to_int32_dtype_0"), val = tensor<string, []>("int32")];
145
+ tensor<int32, []> const_5 = const()[name = tensor<string, []>("const_5"), val = tensor<int32, []>(0)];
146
+ tensor<int32, []> const_6 = const()[name = tensor<string, []>("const_6"), val = tensor<int32, []>(1)];
147
+ tensor<int32, []> gather_6_cast_uint16_to_int32 = cast(dtype = gather_6_cast_uint16_to_int32_dtype_0, x = gather_6_cast_uint16_cast_uint16)[name = tensor<string, []>("cast_2")];
148
+ tensor<int32, [?]> mask_1 = range_1d(end = gather_6_cast_uint16_to_int32, start = const_5, step = const_6)[name = tensor<string, []>("mask_1")];
149
+ tensor<int32, []> gather_7_axis_0 = const()[name = tensor<string, []>("gather_7_axis_0"), val = tensor<int32, []>(0)];
150
+ tensor<int32, []> gather_7_batch_dims_0 = const()[name = tensor<string, []>("gather_7_batch_dims_0"), val = tensor<int32, []>(0)];
151
+ tensor<bool, []> gather_7_validate_indices_0 = const()[name = tensor<string, []>("gather_7_validate_indices_0"), val = tensor<bool, []>(false)];
152
+ tensor<uint16, []> gather_7_indices_0_to_uint16 = const()[name = tensor<string, []>("gather_7_indices_0_to_uint16"), val = tensor<uint16, []>(0)];
153
+ tensor<uint16, []> gather_7_cast_uint16 = gather(axis = gather_7_axis_0, batch_dims = gather_7_batch_dims_0, indices = gather_7_indices_0_to_uint16, validate_indices = gather_7_validate_indices_0, x = var_112_shape_cast_fp16_to_uint16)[name = tensor<string, []>("gather_7_cast_uint16")];
154
+ tensor<string, []> gather_7_cast_uint16_to_int32_dtype_0 = const()[name = tensor<string, []>("gather_7_cast_uint16_to_int32_dtype_0"), val = tensor<string, []>("int32")];
155
+ tensor<int32, []> concat_3_axis_0 = const()[name = tensor<string, []>("concat_3_axis_0"), val = tensor<int32, []>(0)];
156
+ tensor<bool, []> concat_3_interleave_0 = const()[name = tensor<string, []>("concat_3_interleave_0"), val = tensor<bool, []>(false)];
157
+ tensor<int32, []> gather_7_cast_uint16_to_int32 = cast(dtype = gather_7_cast_uint16_to_int32_dtype_0, x = gather_7_cast_uint16)[name = tensor<string, []>("cast_1")];
158
+ tensor<int32, [2]> concat_3 = concat(axis = concat_3_axis_0, interleave = concat_3_interleave_0, values = (gather_7_cast_uint16_to_int32, var_9))[name = tensor<string, []>("concat_3")];
159
+ tensor<int32, [1]> expand_dims_0_axes_0 = const()[name = tensor<string, []>("expand_dims_0_axes_0"), val = tensor<int32, [1]>([0])];
160
+ tensor<int32, [1, ?]> expand_dims_0 = expand_dims(axes = expand_dims_0_axes_0, x = mask_1)[name = tensor<string, []>("expand_dims_0")];
161
+ tensor<int32, [?, ?]> var_116 = tile(reps = concat_3, x = expand_dims_0)[name = tensor<string, []>("op_116")];
162
+ tensor<bool, [?, ?]> mask = greater_equal(x = var_116, y = var_85)[name = tensor<string, []>("mask")];
163
+ tensor<int32, [1]> var_119_axes_0 = const()[name = tensor<string, []>("op_119_axes_0"), val = tensor<int32, [1]>([1])];
164
+ tensor<bool, [?, 1, ?]> var_119 = expand_dims(axes = var_119_axes_0, x = mask)[name = tensor<string, []>("op_119")];
165
+ tensor<fp16, [?, 128, ?]> processed_signal_cast_fp16 = select(a = var_24_to_fp16, b = x_cast_fp16, cond = var_119)[name = tensor<string, []>("processed_signal_cast_fp16")];
166
+ tensor<string, []> processed_signal_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("processed_signal_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
167
+ tensor<fp32, [?, 128, ?]> mel = cast(dtype = processed_signal_cast_fp16_to_fp32_dtype_0, x = processed_signal_cast_fp16)[name = tensor<string, []>("cast_0")];
168
+ } -> (mel, mel_length);
169
+ }
Preprocessor.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a5f7df6c7f47147ae9486fe18cc7792f9a44d093ec3c6a11e91ef2dc363c48dc
3
+ size 298880
README.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-4.0
3
+ thumbnail: null
4
+ tags:
5
+ - automatic-speech-recognition
6
+ - speech
7
+ - audio
8
+ - Transducer
9
+ - TDT
10
+ - FastConformer
11
+ - Conformer
12
+ - pytorch
13
+ - NeMo
14
+ - hf-asr-leaderboard
15
+ - coreml
16
+ - apple
17
+ language:
18
+ - en
19
+ pipeline_tag: automatic-speech-recognition
20
+ base_model:
21
+ - nvidia/parakeet-tdt-0.6b-v2
22
+ ---
23
+
24
+ # **<span style="color:#5DAF8D">🧃 Parakeet TDT 0.6B V2 - CoreML </span>**
25
+ [![Discord](https://img.shields.io/badge/Discord-Join%20Chat-7289da.svg)](https://discord.gg/WNsvaCtmDe)
26
+ [![GitHub Repo stars](https://img.shields.io/github/stars/FluidInference/FluidAudio?style=flat&logo=github)](https://github.com/FluidInference/FluidAudio)
27
+
28
+
29
+ This is a CoreML-optimized version of NVIDIA's Parakeet TDT 0.6B V2 model, designed for high-performance automatic speech recognition on Apple platforms.
30
+
31
+ ## Model Description
32
+
33
+ Models will continue to evolve as we optimize performance and accuracy. This model has been converted to CoreML format for efficient on-device inference on Apple Silicon and iOS devices, enabling real-time speech recognition with
34
+ minimal memory footprint.
35
+
36
+ ## Usage in Swift
37
+
38
+ See the [FluidAudio repository](https://github.com/FluidInference/FluidAudioSwift) for instructions.
39
+
40
+ ## Performance
41
+
42
+ - Real-time factor: ~110x on M4 Pro
43
+ - Memory usage: ~800MB peak
44
+ - Supported platforms: macOS 14+, iOS 17+
45
+ - Optimized for: Apple Silicon
46
+
47
+ ## Model Details
48
+
49
+ - Architecture: FastConformer-TDT
50
+ - Parameters: 0.6B
51
+ - Sample rate: 16kHz
52
+
53
+ ## License
54
+
55
+ This model is released under the CC-BY-4.0 license. See the LICENSE file for details.
56
+
57
+ Acknowledgments
58
+
59
+ Based on NVIDIA's Parakeet TDT model. CoreML conversion and Swift integration by the FluidInference team.
RNNTJoint.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f18d0665c71c76eae9ed704875e89feae268c69d52581f673a73101903c29e81
3
+ size 243
RNNTJoint.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5fe0254d313f1046d438a606112845c7fc89462e0174f6184a746485918db67b
3
+ size 392