Commit ·
f1bc4df
0
Parent(s):
Duplicate from FluidInference/parakeet-tdt-ctc-110m-coreml
Browse filesCo-authored-by: Alex Weng <alexwengg@users.noreply.huggingface.co>
- .gitattributes +35 -0
- Decoder.mlmodelc/analytics/coremldata.bin +3 -0
- Decoder.mlmodelc/coremldata.bin +3 -0
- Decoder.mlmodelc/metadata.json +122 -0
- Decoder.mlmodelc/model.mil +54 -0
- Decoder.mlmodelc/weights/weight.bin +3 -0
- Decoder.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
- Decoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
- Decoder.mlpackage/Manifest.json +18 -0
- JointDecision.mlmodelc/analytics/coremldata.bin +3 -0
- JointDecision.mlmodelc/coremldata.bin +3 -0
- JointDecision.mlmodelc/metadata.json +124 -0
- JointDecision.mlmodelc/model.mil +69 -0
- JointDecision.mlmodelc/weights/weight.bin +3 -0
- JointDecisionSingleStep.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
- JointDecisionSingleStep.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
- JointDecisionSingleStep.mlpackage/Manifest.json +18 -0
- Preprocessor.mlmodelc/analytics/coremldata.bin +3 -0
- Preprocessor.mlmodelc/coremldata.bin +3 -0
- Preprocessor.mlmodelc/metadata.json +116 -0
- Preprocessor.mlmodelc/model.mil +0 -0
- Preprocessor.mlmodelc/weights/weight.bin +3 -0
- Preprocessor.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
- Preprocessor.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
- Preprocessor.mlpackage/Manifest.json +18 -0
- README.md +89 -0
- config.json +147 -0
- parakeet_vocab.json +1026 -0
.gitattributes
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
Decoder.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dc7174d25586869ffb33e6c519cfcc882bf04b2f0e527b8b84a38fe4d469f618
|
| 3 |
+
size 243
|
Decoder.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:407846e00c895ee447ee5795eb61c0437b4d5ed8ae33e603173fb3f79d871151
|
| 3 |
+
size 562
|
Decoder.mlmodelc/metadata.json
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"metadataOutputVersion" : "3.0",
|
| 4 |
+
"shortDescription" : "Parakeet TDT-CTC 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 1 × 1 × 640)",
|
| 21 |
+
"shortDescription" : "",
|
| 22 |
+
"shape" : "[1, 1, 640]",
|
| 23 |
+
"name" : "h_out",
|
| 24 |
+
"type" : "MultiArray"
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"hasShapeFlexibility" : "0",
|
| 28 |
+
"isOptional" : "0",
|
| 29 |
+
"dataType" : "Float32",
|
| 30 |
+
"formattedType" : "MultiArray (Float32 1 × 1 × 640)",
|
| 31 |
+
"shortDescription" : "",
|
| 32 |
+
"shape" : "[1, 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" : 2,
|
| 46 |
+
"Ios17.gather" : 1,
|
| 47 |
+
"Ios17.cast" : 8,
|
| 48 |
+
"Ios17.lstm" : 1,
|
| 49 |
+
"Ios17.transpose" : 2,
|
| 50 |
+
"Ios17.add" : 1,
|
| 51 |
+
"Identity" : 1,
|
| 52 |
+
"Ios17.greaterEqual" : 1,
|
| 53 |
+
"Ios17.expandDims" : 2
|
| 54 |
+
},
|
| 55 |
+
"computePrecision" : "Mixed (Float16, Float32, Int16, Int32)",
|
| 56 |
+
"isUpdatable" : "0",
|
| 57 |
+
"stateSchema" : [
|
| 58 |
+
|
| 59 |
+
],
|
| 60 |
+
"availability" : {
|
| 61 |
+
"macOS" : "14.0",
|
| 62 |
+
"tvOS" : "17.0",
|
| 63 |
+
"visionOS" : "1.0",
|
| 64 |
+
"watchOS" : "10.0",
|
| 65 |
+
"iOS" : "17.0",
|
| 66 |
+
"macCatalyst" : "17.0"
|
| 67 |
+
},
|
| 68 |
+
"modelType" : {
|
| 69 |
+
"name" : "MLModelType_mlProgram"
|
| 70 |
+
},
|
| 71 |
+
"inputSchema" : [
|
| 72 |
+
{
|
| 73 |
+
"hasShapeFlexibility" : "0",
|
| 74 |
+
"isOptional" : "0",
|
| 75 |
+
"dataType" : "Int32",
|
| 76 |
+
"formattedType" : "MultiArray (Int32 1 × 1)",
|
| 77 |
+
"shortDescription" : "",
|
| 78 |
+
"shape" : "[1, 1]",
|
| 79 |
+
"name" : "targets",
|
| 80 |
+
"type" : "MultiArray"
|
| 81 |
+
},
|
| 82 |
+
{
|
| 83 |
+
"hasShapeFlexibility" : "0",
|
| 84 |
+
"isOptional" : "0",
|
| 85 |
+
"dataType" : "Int32",
|
| 86 |
+
"formattedType" : "MultiArray (Int32 1)",
|
| 87 |
+
"shortDescription" : "",
|
| 88 |
+
"shape" : "[1]",
|
| 89 |
+
"name" : "target_length",
|
| 90 |
+
"type" : "MultiArray"
|
| 91 |
+
},
|
| 92 |
+
{
|
| 93 |
+
"hasShapeFlexibility" : "0",
|
| 94 |
+
"isOptional" : "0",
|
| 95 |
+
"dataType" : "Float32",
|
| 96 |
+
"formattedType" : "MultiArray (Float32 1 × 1 × 640)",
|
| 97 |
+
"shortDescription" : "",
|
| 98 |
+
"shape" : "[1, 1, 640]",
|
| 99 |
+
"name" : "h_in",
|
| 100 |
+
"type" : "MultiArray"
|
| 101 |
+
},
|
| 102 |
+
{
|
| 103 |
+
"hasShapeFlexibility" : "0",
|
| 104 |
+
"isOptional" : "0",
|
| 105 |
+
"dataType" : "Float32",
|
| 106 |
+
"formattedType" : "MultiArray (Float32 1 × 1 × 640)",
|
| 107 |
+
"shortDescription" : "",
|
| 108 |
+
"shape" : "[1, 1, 640]",
|
| 109 |
+
"name" : "c_in",
|
| 110 |
+
"type" : "MultiArray"
|
| 111 |
+
}
|
| 112 |
+
],
|
| 113 |
+
"userDefinedMetadata" : {
|
| 114 |
+
"com.github.apple.coremltools.conversion_date" : "2026-03-16",
|
| 115 |
+
"com.github.apple.coremltools.source" : "torch==2.7.0",
|
| 116 |
+
"com.github.apple.coremltools.version" : "9.0b1",
|
| 117 |
+
"com.github.apple.coremltools.source_dialect" : "TorchScript"
|
| 118 |
+
},
|
| 119 |
+
"generatedClassName" : "Decoder",
|
| 120 |
+
"method" : "predict"
|
| 121 |
+
}
|
| 122 |
+
]
|
Decoder.mlmodelc/model.mil
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
program(1.0)
|
| 2 |
+
[buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3510.2.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, 1, 640]> c_in, tensor<fp32, [1, 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_1 = add(x = cast_1, y = slice_by_index_0)[name = tensor<string, []>("add_1")];
|
| 16 |
+
tensor<int32, [1, 1]> select_0 = select(a = cast_1, b = add_1, 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, [1]> input_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
|
| 23 |
+
tensor<string, []> h_in_to_fp16_dtype_0 = const()[name = tensor<string, []>("h_in_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
|
| 24 |
+
tensor<fp16, [1, 1, 640]> h_in_to_fp16 = cast(dtype = h_in_to_fp16_dtype_0, x = h_in)[name = tensor<string, []>("cast_6")];
|
| 25 |
+
tensor<fp16, [1, 640]> input_lstm_h0_squeeze_cast_fp16 = squeeze(axes = input_lstm_h0_squeeze_axes_0, x = h_in_to_fp16)[name = tensor<string, []>("input_lstm_h0_squeeze_cast_fp16")];
|
| 26 |
+
tensor<int32, [1]> input_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
|
| 27 |
+
tensor<string, []> c_in_to_fp16_dtype_0 = const()[name = tensor<string, []>("c_in_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
|
| 28 |
+
tensor<fp16, [1, 1, 640]> c_in_to_fp16 = cast(dtype = c_in_to_fp16_dtype_0, x = c_in)[name = tensor<string, []>("cast_5")];
|
| 29 |
+
tensor<fp16, [1, 640]> input_lstm_c0_squeeze_cast_fp16 = squeeze(axes = input_lstm_c0_squeeze_axes_0, x = c_in_to_fp16)[name = tensor<string, []>("input_lstm_c0_squeeze_cast_fp16")];
|
| 30 |
+
tensor<string, []> input_direction_0 = const()[name = tensor<string, []>("input_direction_0"), val = tensor<string, []>("forward")];
|
| 31 |
+
tensor<bool, []> input_output_sequence_0 = const()[name = tensor<string, []>("input_output_sequence_0"), val = tensor<bool, []>(true)];
|
| 32 |
+
tensor<string, []> input_recurrent_activation_0 = const()[name = tensor<string, []>("input_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
|
| 33 |
+
tensor<string, []> input_cell_activation_0 = const()[name = tensor<string, []>("input_cell_activation_0"), val = tensor<string, []>("tanh")];
|
| 34 |
+
tensor<string, []> input_activation_0 = const()[name = tensor<string, []>("input_activation_0"), val = tensor<string, []>("tanh")];
|
| 35 |
+
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)))];
|
| 36 |
+
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)))];
|
| 37 |
+
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)))];
|
| 38 |
+
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")];
|
| 39 |
+
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_0_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_2_to_fp16, weight_ih = concat_1_to_fp16, x = input_3_cast_fp16)[name = tensor<string, []>("input_cast_fp16")];
|
| 40 |
+
tensor<int32, [1]> obj_3_axes_0 = const()[name = tensor<string, []>("obj_3_axes_0"), val = tensor<int32, [1]>([0])];
|
| 41 |
+
tensor<fp16, [1, 1, 640]> obj_3_cast_fp16 = expand_dims(axes = obj_3_axes_0, x = input_cast_fp16_1)[name = tensor<string, []>("obj_3_cast_fp16")];
|
| 42 |
+
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")];
|
| 43 |
+
tensor<int32, [1]> obj_axes_0 = const()[name = tensor<string, []>("obj_axes_0"), val = tensor<int32, [1]>([0])];
|
| 44 |
+
tensor<fp16, [1, 1, 640]> obj_cast_fp16 = expand_dims(axes = obj_axes_0, x = input_cast_fp16_2)[name = tensor<string, []>("obj_cast_fp16")];
|
| 45 |
+
tensor<string, []> obj_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("obj_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
|
| 46 |
+
tensor<int32, [3]> transpose_0_perm_0 = const()[name = tensor<string, []>("transpose_0_perm_0"), val = tensor<int32, [3]>([1, 2, 0])];
|
| 47 |
+
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")];
|
| 48 |
+
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")];
|
| 49 |
+
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")];
|
| 50 |
+
tensor<fp32, [1, 1, 640]> c_out = cast(dtype = obj_cast_fp16_to_fp32_dtype_0, x = obj_cast_fp16)[name = tensor<string, []>("cast_3")];
|
| 51 |
+
tensor<fp32, [1, 1, 640]> h_out = cast(dtype = obj_3_cast_fp16_to_fp32_dtype_0, x = obj_3_cast_fp16)[name = tensor<string, []>("cast_4")];
|
| 52 |
+
tensor<int32, [1]> target_length_tmp = identity(x = target_length)[name = tensor<string, []>("target_length_tmp")];
|
| 53 |
+
} -> (decoder, h_out, c_out);
|
| 54 |
+
}
|
Decoder.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dd90b58597ee2c172c672dffe13b1110898ba07394c1a15efc96cc8c6b18411b
|
| 3 |
+
size 7871040
|
Decoder.mlpackage/Data/com.apple.CoreML/model.mlmodel
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b9ef589f858f577a3e0d3df097ede3efe407d7152d3022a965a7e78744f84404
|
| 3 |
+
size 7973
|
Decoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dd90b58597ee2c172c672dffe13b1110898ba07394c1a15efc96cc8c6b18411b
|
| 3 |
+
size 7871040
|
Decoder.mlpackage/Manifest.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fileFormatVersion": "1.0.0",
|
| 3 |
+
"itemInfoEntries": {
|
| 4 |
+
"5F11CFA7-5015-4466-A6AA-0AE65C954D95": {
|
| 5 |
+
"author": "com.apple.CoreML",
|
| 6 |
+
"description": "CoreML Model Weights",
|
| 7 |
+
"name": "weights",
|
| 8 |
+
"path": "com.apple.CoreML/weights"
|
| 9 |
+
},
|
| 10 |
+
"D180DDE9-941D-455C-B839-91C0843D02DE": {
|
| 11 |
+
"author": "com.apple.CoreML",
|
| 12 |
+
"description": "CoreML Model Specification",
|
| 13 |
+
"name": "model.mlmodel",
|
| 14 |
+
"path": "com.apple.CoreML/model.mlmodel"
|
| 15 |
+
}
|
| 16 |
+
},
|
| 17 |
+
"rootModelIdentifier": "D180DDE9-941D-455C-B839-91C0843D02DE"
|
| 18 |
+
}
|
JointDecision.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:42f7757cc6603cf025dd490169edef879c355b62a178243e1ca4d538e762af2f
|
| 3 |
+
size 243
|
JointDecision.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9ef957d12add316f594b2e8766202ce2b06341e3e5ebaea35b9ff2c3d7a0f4f7
|
| 3 |
+
size 583
|
JointDecision.mlmodelc/metadata.json
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"metadataOutputVersion" : "3.0",
|
| 4 |
+
"shortDescription" : "Parakeet TDT-CTC single-step joint decision",
|
| 5 |
+
"outputSchema" : [
|
| 6 |
+
{
|
| 7 |
+
"hasShapeFlexibility" : "0",
|
| 8 |
+
"isOptional" : "0",
|
| 9 |
+
"dataType" : "Int32",
|
| 10 |
+
"formattedType" : "MultiArray (Int32 1 × 1 × 1)",
|
| 11 |
+
"shortDescription" : "",
|
| 12 |
+
"shape" : "[1, 1, 1]",
|
| 13 |
+
"name" : "token_id",
|
| 14 |
+
"type" : "MultiArray"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"hasShapeFlexibility" : "0",
|
| 18 |
+
"isOptional" : "0",
|
| 19 |
+
"dataType" : "Float32",
|
| 20 |
+
"formattedType" : "MultiArray (Float32 1 × 1 × 1)",
|
| 21 |
+
"shortDescription" : "",
|
| 22 |
+
"shape" : "[1, 1, 1]",
|
| 23 |
+
"name" : "token_prob",
|
| 24 |
+
"type" : "MultiArray"
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"hasShapeFlexibility" : "0",
|
| 28 |
+
"isOptional" : "0",
|
| 29 |
+
"dataType" : "Int32",
|
| 30 |
+
"formattedType" : "MultiArray (Int32 1 × 1 × 1)",
|
| 31 |
+
"shortDescription" : "",
|
| 32 |
+
"shape" : "[1, 1, 1]",
|
| 33 |
+
"name" : "duration",
|
| 34 |
+
"type" : "MultiArray"
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"hasShapeFlexibility" : "0",
|
| 38 |
+
"isOptional" : "0",
|
| 39 |
+
"dataType" : "Int32",
|
| 40 |
+
"formattedType" : "MultiArray (Int32 1 × 1 × 1 × 64)",
|
| 41 |
+
"shortDescription" : "",
|
| 42 |
+
"shape" : "[1, 1, 1, 64]",
|
| 43 |
+
"name" : "top_k_ids",
|
| 44 |
+
"type" : "MultiArray"
|
| 45 |
+
},
|
| 46 |
+
{
|
| 47 |
+
"hasShapeFlexibility" : "0",
|
| 48 |
+
"isOptional" : "0",
|
| 49 |
+
"dataType" : "Float32",
|
| 50 |
+
"formattedType" : "MultiArray (Float32 1 × 1 × 1 × 64)",
|
| 51 |
+
"shortDescription" : "",
|
| 52 |
+
"shape" : "[1, 1, 1, 64]",
|
| 53 |
+
"name" : "top_k_logits",
|
| 54 |
+
"type" : "MultiArray"
|
| 55 |
+
}
|
| 56 |
+
],
|
| 57 |
+
"storagePrecision" : "Float16",
|
| 58 |
+
"modelParameters" : [
|
| 59 |
+
|
| 60 |
+
],
|
| 61 |
+
"author" : "Fluid Inference",
|
| 62 |
+
"specificationVersion" : 8,
|
| 63 |
+
"mlProgramOperationTypeHistogram" : {
|
| 64 |
+
"Ios17.reduceArgmax" : 2,
|
| 65 |
+
"Ios17.linear" : 3,
|
| 66 |
+
"Ios17.transpose" : 2,
|
| 67 |
+
"Ios17.sliceByIndex" : 2,
|
| 68 |
+
"Ios17.add" : 1,
|
| 69 |
+
"Ios17.topk" : 1,
|
| 70 |
+
"Ios16.relu" : 1,
|
| 71 |
+
"Ios16.softmax" : 1,
|
| 72 |
+
"Ios17.expandDims" : 3,
|
| 73 |
+
"Ios17.squeeze" : 1,
|
| 74 |
+
"Ios17.cast" : 6,
|
| 75 |
+
"Ios17.gatherAlongAxis" : 1
|
| 76 |
+
},
|
| 77 |
+
"computePrecision" : "Mixed (Float16, Float32, Int16, Int32, UInt16)",
|
| 78 |
+
"isUpdatable" : "0",
|
| 79 |
+
"stateSchema" : [
|
| 80 |
+
|
| 81 |
+
],
|
| 82 |
+
"availability" : {
|
| 83 |
+
"macOS" : "14.0",
|
| 84 |
+
"tvOS" : "17.0",
|
| 85 |
+
"visionOS" : "1.0",
|
| 86 |
+
"watchOS" : "10.0",
|
| 87 |
+
"iOS" : "17.0",
|
| 88 |
+
"macCatalyst" : "17.0"
|
| 89 |
+
},
|
| 90 |
+
"modelType" : {
|
| 91 |
+
"name" : "MLModelType_mlProgram"
|
| 92 |
+
},
|
| 93 |
+
"inputSchema" : [
|
| 94 |
+
{
|
| 95 |
+
"hasShapeFlexibility" : "0",
|
| 96 |
+
"isOptional" : "0",
|
| 97 |
+
"dataType" : "Float32",
|
| 98 |
+
"formattedType" : "MultiArray (Float32 1 × 512 × 1)",
|
| 99 |
+
"shortDescription" : "",
|
| 100 |
+
"shape" : "[1, 512, 1]",
|
| 101 |
+
"name" : "encoder_step",
|
| 102 |
+
"type" : "MultiArray"
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"hasShapeFlexibility" : "0",
|
| 106 |
+
"isOptional" : "0",
|
| 107 |
+
"dataType" : "Float32",
|
| 108 |
+
"formattedType" : "MultiArray (Float32 1 × 640 × 1)",
|
| 109 |
+
"shortDescription" : "",
|
| 110 |
+
"shape" : "[1, 640, 1]",
|
| 111 |
+
"name" : "decoder_step",
|
| 112 |
+
"type" : "MultiArray"
|
| 113 |
+
}
|
| 114 |
+
],
|
| 115 |
+
"userDefinedMetadata" : {
|
| 116 |
+
"com.github.apple.coremltools.conversion_date" : "2026-03-16",
|
| 117 |
+
"com.github.apple.coremltools.source" : "torch==2.7.0",
|
| 118 |
+
"com.github.apple.coremltools.version" : "9.0b1",
|
| 119 |
+
"com.github.apple.coremltools.source_dialect" : "TorchScript"
|
| 120 |
+
},
|
| 121 |
+
"generatedClassName" : "JointDecisionSingleStep",
|
| 122 |
+
"method" : "predict"
|
| 123 |
+
}
|
| 124 |
+
]
|
JointDecision.mlmodelc/model.mil
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
program(1.0)
|
| 2 |
+
[buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3510.2.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, 512, 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, 512]> joint_module_enc_weight_to_fp16 = const()[name = tensor<string, []>("joint_module_enc_weight_to_fp16"), val = tensor<fp16, [640, 512]>(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, []>(655488)))];
|
| 11 |
+
tensor<fp16, [1, 512, 1]> encoder_step_to_fp16 = cast(dtype = encoder_step_to_fp16_dtype_0, x = encoder_step)[name = tensor<string, []>("cast_5")];
|
| 12 |
+
tensor<fp16, [1, 1, 512]> 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, []>(656832)))];
|
| 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, []>(1476096)))];
|
| 16 |
+
tensor<fp16, [1, 640, 1]> decoder_step_to_fp16 = cast(dtype = decoder_step_to_fp16_dtype_0, x = decoder_step)[name = tensor<string, []>("cast_4")];
|
| 17 |
+
tensor<fp16, [1, 1, 640]> input_3_cast_fp16 = transpose(perm = input_3_perm_0, x = decoder_step_to_fp16)[name = tensor<string, []>("transpose_0")];
|
| 18 |
+
tensor<fp16, [1, 1, 640]> linear_1_cast_fp16 = linear(bias = joint_module_pred_bias_to_fp16, weight = joint_module_pred_weight_to_fp16, x = input_3_cast_fp16)[name = tensor<string, []>("linear_1_cast_fp16")];
|
| 19 |
+
tensor<int32, [1]> var_23_axes_0 = const()[name = tensor<string, []>("op_23_axes_0"), val = tensor<int32, [1]>([2])];
|
| 20 |
+
tensor<fp16, [1, 1, 1, 640]> var_23_cast_fp16 = expand_dims(axes = var_23_axes_0, x = linear_0_cast_fp16)[name = tensor<string, []>("op_23_cast_fp16")];
|
| 21 |
+
tensor<int32, [1]> var_24_axes_0 = const()[name = tensor<string, []>("op_24_axes_0"), val = tensor<int32, [1]>([1])];
|
| 22 |
+
tensor<fp16, [1, 1, 1, 640]> var_24_cast_fp16 = expand_dims(axes = var_24_axes_0, x = linear_1_cast_fp16)[name = tensor<string, []>("op_24_cast_fp16")];
|
| 23 |
+
tensor<fp16, [1, 1, 1, 640]> input_5_cast_fp16 = add(x = var_23_cast_fp16, y = var_24_cast_fp16)[name = tensor<string, []>("input_5_cast_fp16")];
|
| 24 |
+
tensor<fp16, [1, 1, 1, 640]> input_7_cast_fp16 = relu(x = input_5_cast_fp16)[name = tensor<string, []>("input_7_cast_fp16")];
|
| 25 |
+
tensor<fp16, [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, []>(1477440)))];
|
| 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, []>(2795904)))];
|
| 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_3")];
|
| 48 |
+
tensor<fp16, [1, 1, 1, 1]> var_61_cast_fp16_cast_int16 = gather_along_axis(axis = var_59, indices = var_58_to_int16, validate_indices = var_61_validate_indices_0, x = token_probs_all_cast_fp16)[name = tensor<string, []>("op_61_cast_fp16_cast_int16")];
|
| 49 |
+
tensor<int32, [1]> var_63_axes_0 = const()[name = tensor<string, []>("op_63_axes_0"), val = tensor<int32, [1]>([-1])];
|
| 50 |
+
tensor<fp16, [1, 1, 1]> var_63_cast_fp16 = squeeze(axes = var_63_axes_0, x = var_61_cast_fp16_cast_int16)[name = tensor<string, []>("op_63_cast_fp16")];
|
| 51 |
+
tensor<string, []> var_63_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_63_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
|
| 52 |
+
tensor<int32, []> var_66_axis_0 = const()[name = tensor<string, []>("op_66_axis_0"), val = tensor<int32, []>(-1)];
|
| 53 |
+
tensor<bool, []> var_66_keep_dims_0 = const()[name = tensor<string, []>("op_66_keep_dims_0"), val = tensor<bool, []>(false)];
|
| 54 |
+
tensor<string, []> var_66_output_dtype_0 = const()[name = tensor<string, []>("op_66_output_dtype_0"), val = tensor<string, []>("int32")];
|
| 55 |
+
tensor<int32, [1, 1, 1]> duration = reduce_argmax(axis = var_66_axis_0, keep_dims = var_66_keep_dims_0, output_dtype = var_66_output_dtype_0, x = duration_logits_cast_fp16)[name = tensor<string, []>("op_66_cast_fp16")];
|
| 56 |
+
tensor<int32, []> var_72 = const()[name = tensor<string, []>("op_72"), val = tensor<int32, []>(64)];
|
| 57 |
+
tensor<int32, []> var_76_axis_0 = const()[name = tensor<string, []>("op_76_axis_0"), val = tensor<int32, []>(-1)];
|
| 58 |
+
tensor<bool, []> var_76_ascending_0 = const()[name = tensor<string, []>("op_76_ascending_0"), val = tensor<bool, []>(false)];
|
| 59 |
+
tensor<bool, []> var_76_sort_0 = const()[name = tensor<string, []>("op_76_sort_0"), val = tensor<bool, []>(true)];
|
| 60 |
+
tensor<bool, []> var_76_return_indices_0 = const()[name = tensor<string, []>("op_76_return_indices_0"), val = tensor<bool, []>(true)];
|
| 61 |
+
tensor<string, []> var_76_cast_fp16_cast_int16_output_indices_dtype_0 = const()[name = tensor<string, []>("op_76_cast_fp16_cast_int16_output_indices_dtype_0"), val = tensor<string, []>("uint16")];
|
| 62 |
+
tensor<fp16, [1, 1, 1, 64]> var_76_cast_fp16_cast_int16_0, tensor<uint16, [1, 1, 1, 64]> var_76_cast_fp16_cast_int16_1 = topk(ascending = var_76_ascending_0, axis = var_76_axis_0, k = var_72, output_indices_dtype = var_76_cast_fp16_cast_int16_output_indices_dtype_0, return_indices = var_76_return_indices_0, sort = var_76_sort_0, x = token_logits_cast_fp16)[name = tensor<string, []>("op_76_cast_fp16_cast_int16")];
|
| 63 |
+
tensor<string, []> var_76_cast_fp16_cast_int16_1_to_int32_dtype_0 = const()[name = tensor<string, []>("op_76_cast_fp16_cast_int16_1_to_int32_dtype_0"), val = tensor<string, []>("int32")];
|
| 64 |
+
tensor<string, []> var_76_cast_fp16_0_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_76_cast_fp16_0_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
|
| 65 |
+
tensor<fp32, [1, 1, 1, 64]> top_k_logits = cast(dtype = var_76_cast_fp16_0_to_fp32_dtype_0, x = var_76_cast_fp16_cast_int16_0)[name = tensor<string, []>("cast_0")];
|
| 66 |
+
tensor<int32, [1, 1, 1, 64]> top_k_ids = cast(dtype = var_76_cast_fp16_cast_int16_1_to_int32_dtype_0, x = var_76_cast_fp16_cast_int16_1)[name = tensor<string, []>("cast_1")];
|
| 67 |
+
tensor<fp32, [1, 1, 1]> token_prob = cast(dtype = var_63_cast_fp16_to_fp32_dtype_0, x = var_63_cast_fp16)[name = tensor<string, []>("cast_2")];
|
| 68 |
+
} -> (token_id, token_prob, duration, top_k_ids, top_k_logits);
|
| 69 |
+
}
|
JointDecision.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b3f771cb65b190f1873e39629676ed79b65a8361522f451b37bdba8b1106e6ff
|
| 3 |
+
size 2798028
|
JointDecisionSingleStep.mlpackage/Data/com.apple.CoreML/model.mlmodel
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4b5bf959656c8f51446b19664a8ded1a1a8630ddd42a75325387e3c9dd6400d4
|
| 3 |
+
size 10668
|
JointDecisionSingleStep.mlpackage/Data/com.apple.CoreML/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b3f771cb65b190f1873e39629676ed79b65a8361522f451b37bdba8b1106e6ff
|
| 3 |
+
size 2798028
|
JointDecisionSingleStep.mlpackage/Manifest.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fileFormatVersion": "1.0.0",
|
| 3 |
+
"itemInfoEntries": {
|
| 4 |
+
"9837468A-52AB-4172-B88E-85F05A9261A0": {
|
| 5 |
+
"author": "com.apple.CoreML",
|
| 6 |
+
"description": "CoreML Model Specification",
|
| 7 |
+
"name": "model.mlmodel",
|
| 8 |
+
"path": "com.apple.CoreML/model.mlmodel"
|
| 9 |
+
},
|
| 10 |
+
"E9AA441F-A636-4AF4-BE59-ECD44D3C22F6": {
|
| 11 |
+
"author": "com.apple.CoreML",
|
| 12 |
+
"description": "CoreML Model Weights",
|
| 13 |
+
"name": "weights",
|
| 14 |
+
"path": "com.apple.CoreML/weights"
|
| 15 |
+
}
|
| 16 |
+
},
|
| 17 |
+
"rootModelIdentifier": "9837468A-52AB-4172-B88E-85F05A9261A0"
|
| 18 |
+
}
|
Preprocessor.mlmodelc/analytics/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d813d089b82b1edfdc558d902d91421c527c2db4ba85e36c4a611ea99eba8248
|
| 3 |
+
size 243
|
Preprocessor.mlmodelc/coremldata.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:69e29c6cf43349318661a4aaade4bc0cc124a5780582d283614056cc76eb2907
|
| 3 |
+
size 499
|
Preprocessor.mlmodelc/metadata.json
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"metadataOutputVersion" : "3.0",
|
| 4 |
+
"shortDescription" : "Parakeet TDT-CTC Mel+Encoder (15s window)",
|
| 5 |
+
"outputSchema" : [
|
| 6 |
+
{
|
| 7 |
+
"hasShapeFlexibility" : "0",
|
| 8 |
+
"isOptional" : "0",
|
| 9 |
+
"dataType" : "Float32",
|
| 10 |
+
"formattedType" : "MultiArray (Float32 1 × 512 × 188)",
|
| 11 |
+
"shortDescription" : "",
|
| 12 |
+
"shape" : "[1, 512, 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" : "Float16",
|
| 28 |
+
"modelParameters" : [
|
| 29 |
+
|
| 30 |
+
],
|
| 31 |
+
"author" : "Fluid Inference",
|
| 32 |
+
"specificationVersion" : 8,
|
| 33 |
+
"mlProgramOperationTypeHistogram" : {
|
| 34 |
+
"Tile" : 2,
|
| 35 |
+
"Stack" : 1,
|
| 36 |
+
"Ios17.greaterEqual" : 1,
|
| 37 |
+
"Ios16.silu" : 51,
|
| 38 |
+
"Ios17.sub" : 4,
|
| 39 |
+
"Identity" : 1,
|
| 40 |
+
"Ios16.reduceSum" : 4,
|
| 41 |
+
"Pad" : 35,
|
| 42 |
+
"Ios17.logicalNot" : 2,
|
| 43 |
+
"Ios17.sliceByIndex" : 37,
|
| 44 |
+
"Ios17.concat" : 1,
|
| 45 |
+
"Ios17.pow" : 2,
|
| 46 |
+
"Ios17.sqrt" : 1,
|
| 47 |
+
"Ios17.floor" : 3,
|
| 48 |
+
"Ios17.floorDiv" : 1,
|
| 49 |
+
"Ios17.expandDims" : 13,
|
| 50 |
+
"Ios17.less" : 2,
|
| 51 |
+
"Ios17.mul" : 72,
|
| 52 |
+
"Ios17.transpose" : 123,
|
| 53 |
+
"Ios17.matmul" : 52,
|
| 54 |
+
"Ios16.sigmoid" : 17,
|
| 55 |
+
"Ios17.conv" : 58,
|
| 56 |
+
"Ios17.reshape" : 105,
|
| 57 |
+
"Split" : 17,
|
| 58 |
+
"Ios17.log" : 1,
|
| 59 |
+
"Ios17.cast" : 7,
|
| 60 |
+
"Ios17.linear" : 137,
|
| 61 |
+
"Ios17.realDiv" : 3,
|
| 62 |
+
"Select" : 54,
|
| 63 |
+
"Ios16.relu" : 3,
|
| 64 |
+
"Ios16.softmax" : 17,
|
| 65 |
+
"Ios17.add" : 129,
|
| 66 |
+
"Ios17.layerNorm" : 85,
|
| 67 |
+
"Ios17.logicalAnd" : 2
|
| 68 |
+
},
|
| 69 |
+
"computePrecision" : "Mixed (Float16, Float32, Int32)",
|
| 70 |
+
"isUpdatable" : "0",
|
| 71 |
+
"stateSchema" : [
|
| 72 |
+
|
| 73 |
+
],
|
| 74 |
+
"availability" : {
|
| 75 |
+
"macOS" : "14.0",
|
| 76 |
+
"tvOS" : "17.0",
|
| 77 |
+
"visionOS" : "1.0",
|
| 78 |
+
"watchOS" : "10.0",
|
| 79 |
+
"iOS" : "17.0",
|
| 80 |
+
"macCatalyst" : "17.0"
|
| 81 |
+
},
|
| 82 |
+
"modelType" : {
|
| 83 |
+
"name" : "MLModelType_mlProgram"
|
| 84 |
+
},
|
| 85 |
+
"inputSchema" : [
|
| 86 |
+
{
|
| 87 |
+
"hasShapeFlexibility" : "0",
|
| 88 |
+
"isOptional" : "0",
|
| 89 |
+
"dataType" : "Float32",
|
| 90 |
+
"formattedType" : "MultiArray (Float32 1 × 240000)",
|
| 91 |
+
"shortDescription" : "",
|
| 92 |
+
"shape" : "[1, 240000]",
|
| 93 |
+
"name" : "audio_signal",
|
| 94 |
+
"type" : "MultiArray"
|
| 95 |
+
},
|
| 96 |
+
{
|
| 97 |
+
"hasShapeFlexibility" : "0",
|
| 98 |
+
"isOptional" : "0",
|
| 99 |
+
"dataType" : "Int32",
|
| 100 |
+
"formattedType" : "MultiArray (Int32 1)",
|
| 101 |
+
"shortDescription" : "",
|
| 102 |
+
"shape" : "[1]",
|
| 103 |
+
"name" : "audio_length",
|
| 104 |
+
"type" : "MultiArray"
|
| 105 |
+
}
|
| 106 |
+
],
|
| 107 |
+
"userDefinedMetadata" : {
|
| 108 |
+
"com.github.apple.coremltools.conversion_date" : "2026-03-16",
|
| 109 |
+
"com.github.apple.coremltools.source" : "torch==2.7.0",
|
| 110 |
+
"com.github.apple.coremltools.version" : "9.0b1",
|
| 111 |
+
"com.github.apple.coremltools.source_dialect" : "TorchScript"
|
| 112 |
+
},
|
| 113 |
+
"generatedClassName" : "Preprocessor",
|
| 114 |
+
"method" : "predict"
|
| 115 |
+
}
|
| 116 |
+
]
|
Preprocessor.mlmodelc/model.mil
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Preprocessor.mlmodelc/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a1c90b88b52667ee4f349b39994003cc2a9fb1b12c310752399d90c880286a7b
|
| 3 |
+
size 215951360
|
Preprocessor.mlpackage/Data/com.apple.CoreML/model.mlmodel
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2cdb59bc9293df8a1d993f534033e212d64fb12bdfad98fe96964b804b8d4d1e
|
| 3 |
+
size 525105
|
Preprocessor.mlpackage/Data/com.apple.CoreML/weights/weight.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a1c90b88b52667ee4f349b39994003cc2a9fb1b12c310752399d90c880286a7b
|
| 3 |
+
size 215951360
|
Preprocessor.mlpackage/Manifest.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"fileFormatVersion": "1.0.0",
|
| 3 |
+
"itemInfoEntries": {
|
| 4 |
+
"39C01B3A-5AD3-4DB9-950C-0AFE37EBAB79": {
|
| 5 |
+
"author": "com.apple.CoreML",
|
| 6 |
+
"description": "CoreML Model Weights",
|
| 7 |
+
"name": "weights",
|
| 8 |
+
"path": "com.apple.CoreML/weights"
|
| 9 |
+
},
|
| 10 |
+
"A9DC3D62-1D15-47F5-86AD-D33E82326E53": {
|
| 11 |
+
"author": "com.apple.CoreML",
|
| 12 |
+
"description": "CoreML Model Specification",
|
| 13 |
+
"name": "model.mlmodel",
|
| 14 |
+
"path": "com.apple.CoreML/model.mlmodel"
|
| 15 |
+
}
|
| 16 |
+
},
|
| 17 |
+
"rootModelIdentifier": "A9DC3D62-1D15-47F5-86AD-D33E82326E53"
|
| 18 |
+
}
|
README.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: cc-by-4.0
|
| 3 |
+
language:
|
| 4 |
+
- en
|
| 5 |
+
metrics:
|
| 6 |
+
- wer
|
| 7 |
+
base_model:
|
| 8 |
+
- nvidia/parakeet-tdt_ctc-110m
|
| 9 |
+
pipeline_tag: automatic-speech-recognition
|
| 10 |
+
tags:
|
| 11 |
+
- automatic-speech-recognition
|
| 12 |
+
- speech
|
| 13 |
+
- audio
|
| 14 |
+
- Transducer
|
| 15 |
+
- TDT
|
| 16 |
+
- FastConformer
|
| 17 |
+
- Conformer
|
| 18 |
+
- pytorch
|
| 19 |
+
- NeMo
|
| 20 |
+
- hf-asr-leaderboard
|
| 21 |
+
---
|
| 22 |
+
# Parakeet-TDT-CTC 110M — CoreML
|
| 23 |
+
|
| 24 |
+
CoreML export of [nvidia/parakeet-tdt_ctc-110m](https://huggingface.co/nvidia/parakeet-tdt_ctc-110m) for on-device speech recognition on Apple Silicon via [FluidAudio](https://github.com/FluidInference/FluidAudio).
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
## CoreML Components
|
| 28 |
+
|
| 29 |
+
| File | Size | Description |
|
| 30 |
+
|------|------|-------------|
|
| 31 |
+
| `Preprocessor.mlmodelc` | 207 MB | Fused mel-spectrogram + FastConformer encoder |
|
| 32 |
+
| `Decoder.mlmodelc` | 7.5 MB | 1-layer LSTM prediction network |
|
| 33 |
+
| `JointDecision.mlmodelc` | 2.7 MB | Single-step joint network (token + duration) |
|
| 34 |
+
| `parakeet_vocab.json` | 18 KB | 1024-token BPE vocabulary |
|
| 35 |
+
| `config.json` | 2.5 KB | Model metadata and I/O contracts |
|
| 36 |
+
|
| 37 |
+
**Input:** 16 kHz mono audio, fixed 15-second window (240,000 samples).
|
| 38 |
+
**Output:** Token IDs, probabilities, and TDT duration predictions per encoder frame.
|
| 39 |
+
|
| 40 |
+
## Performance
|
| 41 |
+
|
| 42 |
+
Benchmarked with FluidAudio CLI on Apple M2 (release build):
|
| 43 |
+
|
| 44 |
+
| Benchmark | WER |
|
| 45 |
+
|-----------|-----|
|
| 46 |
+
| LibriSpeech test-clean | **3.0%** |
|
| 47 |
+
| RTFx (overall) | **102x** real-time |
|
| 48 |
+
| Peak memory | 0.3 GB |
|
| 49 |
+
|
| 50 |
+
NVIDIA's reference WER (greedy, GPU):
|
| 51 |
+
|
| 52 |
+
| Benchmark | WER |
|
| 53 |
+
|-----------|-----|
|
| 54 |
+
| LibriSpeech test-clean | 2.4% |
|
| 55 |
+
| LibriSpeech test-other | 5.2% |
|
| 56 |
+
| AMI | 15.88% |
|
| 57 |
+
| Earnings-22 | 12.42% |
|
| 58 |
+
| GigaSpeech | 10.52% |
|
| 59 |
+
| TEDLIUM-v3 | 4.16% |
|
| 60 |
+
|
| 61 |
+
## Usage with FluidAudio
|
| 62 |
+
|
| 63 |
+
```bash
|
| 64 |
+
# Transcribe
|
| 65 |
+
fluidaudiocli transcribe audio.wav --model-version tdt-ctc-110m
|
| 66 |
+
|
| 67 |
+
# Benchmark
|
| 68 |
+
fluidaudiocli asr-benchmark --subset test-clean --model-version tdt-ctc-110m
|
| 69 |
+
```
|
| 70 |
+
|
| 71 |
+
Models auto-download from this repo on first use. To pre-fetch:
|
| 72 |
+
|
| 73 |
+
```bash
|
| 74 |
+
fluidaudiocli download --model-version tdt-ctc-110m
|
| 75 |
+
```
|
| 76 |
+
|
| 77 |
+
## Conversion
|
| 78 |
+
|
| 79 |
+
Exported from NeMo using [mobius/models/stt/parakeet-tdt-ctc-110m/coreml/convert-tdt-coreml.py](https://github.com/FluidInference/mobius):
|
| 80 |
+
|
| 81 |
+
- Preprocessor fuses mel-spectrogram extraction and the FastConformer encoder into a single CoreML model
|
| 82 |
+
- JointDecision is the single-step variant (encoder_step + decoder_step inputs) used by FluidAudio's TDT decoder
|
| 83 |
+
- All models exported as MLProgram (iOS 17+ / macOS 14+), float32 precision
|
| 84 |
+
|
| 85 |
+
## References
|
| 86 |
+
|
| 87 |
+
- [Fast Conformer with Linearly Scalable Attention](https://arxiv.org/abs/2305.05084)
|
| 88 |
+
- [Efficient Sequence Transduction by Jointly Predicting Tokens and Durations](https://arxiv.org/abs/2304.06795)
|
| 89 |
+
- [NVIDIA NeMo](https://github.com/NVIDIA/NeMo)
|
config.json
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_id": "nvidia/parakeet-tdt_ctc-110m",
|
| 3 |
+
"model_type": "hybrid_tdt_ctc",
|
| 4 |
+
"sample_rate": 16000,
|
| 5 |
+
"max_audio_seconds": 15.0,
|
| 6 |
+
"max_audio_samples": 240000,
|
| 7 |
+
"max_symbol_steps": 1,
|
| 8 |
+
"vocab_size": 1024,
|
| 9 |
+
"blank_id": 1024,
|
| 10 |
+
"joint_extra_outputs": 5,
|
| 11 |
+
"duration_bins": [
|
| 12 |
+
0,
|
| 13 |
+
1,
|
| 14 |
+
2,
|
| 15 |
+
3,
|
| 16 |
+
4
|
| 17 |
+
],
|
| 18 |
+
"encoder_dim": 512,
|
| 19 |
+
"decoder_dim": 640,
|
| 20 |
+
"decoder_hidden": 640,
|
| 21 |
+
"decoder_layers": 1,
|
| 22 |
+
"checkpoint": {
|
| 23 |
+
"type": "pretrained",
|
| 24 |
+
"model_id": "nvidia/parakeet-tdt_ctc-110m"
|
| 25 |
+
},
|
| 26 |
+
"coreml": {
|
| 27 |
+
"compute_units": "CPU_ONLY",
|
| 28 |
+
"compute_precision": "FLOAT32"
|
| 29 |
+
},
|
| 30 |
+
"components": {
|
| 31 |
+
"preprocessor": {
|
| 32 |
+
"inputs": {
|
| 33 |
+
"audio_signal": [
|
| 34 |
+
1,
|
| 35 |
+
240000
|
| 36 |
+
],
|
| 37 |
+
"audio_length": [
|
| 38 |
+
1
|
| 39 |
+
]
|
| 40 |
+
},
|
| 41 |
+
"outputs": {
|
| 42 |
+
"encoder": [
|
| 43 |
+
1,
|
| 44 |
+
512,
|
| 45 |
+
188
|
| 46 |
+
],
|
| 47 |
+
"encoder_length": [
|
| 48 |
+
1
|
| 49 |
+
]
|
| 50 |
+
},
|
| 51 |
+
"path": "Preprocessor.mlpackage"
|
| 52 |
+
},
|
| 53 |
+
"decoder": {
|
| 54 |
+
"inputs": {
|
| 55 |
+
"targets": [
|
| 56 |
+
1,
|
| 57 |
+
1
|
| 58 |
+
],
|
| 59 |
+
"target_length": [
|
| 60 |
+
1
|
| 61 |
+
],
|
| 62 |
+
"h_in": [
|
| 63 |
+
1,
|
| 64 |
+
1,
|
| 65 |
+
640
|
| 66 |
+
],
|
| 67 |
+
"c_in": [
|
| 68 |
+
1,
|
| 69 |
+
1,
|
| 70 |
+
640
|
| 71 |
+
]
|
| 72 |
+
},
|
| 73 |
+
"outputs": {
|
| 74 |
+
"decoder": [
|
| 75 |
+
1,
|
| 76 |
+
640,
|
| 77 |
+
1
|
| 78 |
+
],
|
| 79 |
+
"h_out": [
|
| 80 |
+
1,
|
| 81 |
+
1,
|
| 82 |
+
640
|
| 83 |
+
],
|
| 84 |
+
"c_out": [
|
| 85 |
+
1,
|
| 86 |
+
1,
|
| 87 |
+
640
|
| 88 |
+
]
|
| 89 |
+
},
|
| 90 |
+
"path": "Decoder.mlpackage"
|
| 91 |
+
},
|
| 92 |
+
"joint_decision": {
|
| 93 |
+
"inputs": {
|
| 94 |
+
"encoder": [
|
| 95 |
+
1,
|
| 96 |
+
512,
|
| 97 |
+
188
|
| 98 |
+
],
|
| 99 |
+
"decoder": [
|
| 100 |
+
1,
|
| 101 |
+
640,
|
| 102 |
+
1
|
| 103 |
+
]
|
| 104 |
+
},
|
| 105 |
+
"outputs": {
|
| 106 |
+
"token_id": "int32",
|
| 107 |
+
"token_prob": "float32",
|
| 108 |
+
"duration": "int32"
|
| 109 |
+
},
|
| 110 |
+
"path": "JointDecision.mlpackage"
|
| 111 |
+
},
|
| 112 |
+
"joint_decision_single_step": {
|
| 113 |
+
"inputs": {
|
| 114 |
+
"encoder_step": [
|
| 115 |
+
1,
|
| 116 |
+
512,
|
| 117 |
+
1
|
| 118 |
+
],
|
| 119 |
+
"decoder_step": [
|
| 120 |
+
1,
|
| 121 |
+
640,
|
| 122 |
+
1
|
| 123 |
+
]
|
| 124 |
+
},
|
| 125 |
+
"outputs": {
|
| 126 |
+
"token_id": [
|
| 127 |
+
1,
|
| 128 |
+
1,
|
| 129 |
+
1
|
| 130 |
+
],
|
| 131 |
+
"token_prob": [
|
| 132 |
+
1,
|
| 133 |
+
1,
|
| 134 |
+
1
|
| 135 |
+
],
|
| 136 |
+
"duration": [
|
| 137 |
+
1,
|
| 138 |
+
1,
|
| 139 |
+
1
|
| 140 |
+
],
|
| 141 |
+
"top_k_ids": "int32",
|
| 142 |
+
"top_k_logits": "float32"
|
| 143 |
+
},
|
| 144 |
+
"path": "JointDecisionSingleStep.mlpackage"
|
| 145 |
+
}
|
| 146 |
+
}
|
| 147 |
+
}
|
parakeet_vocab.json
ADDED
|
@@ -0,0 +1,1026 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"0": "<unk>",
|
| 3 |
+
"1": "▁t",
|
| 4 |
+
"2": "▁th",
|
| 5 |
+
"3": "▁a",
|
| 6 |
+
"4": "in",
|
| 7 |
+
"5": "re",
|
| 8 |
+
"6": "▁the",
|
| 9 |
+
"7": "▁w",
|
| 10 |
+
"8": "▁s",
|
| 11 |
+
"9": "▁o",
|
| 12 |
+
"10": "er",
|
| 13 |
+
"11": "ou",
|
| 14 |
+
"12": "at",
|
| 15 |
+
"13": "nd",
|
| 16 |
+
"14": "it",
|
| 17 |
+
"15": "▁h",
|
| 18 |
+
"16": "▁c",
|
| 19 |
+
"17": "▁b",
|
| 20 |
+
"18": "is",
|
| 21 |
+
"19": "en",
|
| 22 |
+
"20": "on",
|
| 23 |
+
"21": "ing",
|
| 24 |
+
"22": "▁f",
|
| 25 |
+
"23": "▁to",
|
| 26 |
+
"24": "▁m",
|
| 27 |
+
"25": "es",
|
| 28 |
+
"26": "▁p",
|
| 29 |
+
"27": "or",
|
| 30 |
+
"28": "an",
|
| 31 |
+
"29": "▁d",
|
| 32 |
+
"30": "ll",
|
| 33 |
+
"31": "▁I",
|
| 34 |
+
"32": "ed",
|
| 35 |
+
"33": "▁and",
|
| 36 |
+
"34": "▁l",
|
| 37 |
+
"35": "▁of",
|
| 38 |
+
"36": "▁in",
|
| 39 |
+
"37": "▁y",
|
| 40 |
+
"38": "ar",
|
| 41 |
+
"39": "▁g",
|
| 42 |
+
"40": "▁you",
|
| 43 |
+
"41": "as",
|
| 44 |
+
"42": "om",
|
| 45 |
+
"43": "▁n",
|
| 46 |
+
"44": "ve",
|
| 47 |
+
"45": "▁that",
|
| 48 |
+
"46": "le",
|
| 49 |
+
"47": "ic",
|
| 50 |
+
"48": "us",
|
| 51 |
+
"49": "ow",
|
| 52 |
+
"50": "et",
|
| 53 |
+
"51": "al",
|
| 54 |
+
"52": "▁e",
|
| 55 |
+
"53": "ut",
|
| 56 |
+
"54": "▁it",
|
| 57 |
+
"55": "ot",
|
| 58 |
+
"56": "▁be",
|
| 59 |
+
"57": "▁T",
|
| 60 |
+
"58": "ion",
|
| 61 |
+
"59": "▁is",
|
| 62 |
+
"60": "▁wh",
|
| 63 |
+
"61": "▁re",
|
| 64 |
+
"62": "▁on",
|
| 65 |
+
"63": "▁we",
|
| 66 |
+
"64": "ent",
|
| 67 |
+
"65": "▁A",
|
| 68 |
+
"66": "ay",
|
| 69 |
+
"67": "▁ha",
|
| 70 |
+
"68": "▁Th",
|
| 71 |
+
"69": "id",
|
| 72 |
+
"70": "▁S",
|
| 73 |
+
"71": "ac",
|
| 74 |
+
"72": "gh",
|
| 75 |
+
"73": "ver",
|
| 76 |
+
"74": "ke",
|
| 77 |
+
"75": "▁for",
|
| 78 |
+
"76": "im",
|
| 79 |
+
"77": "ly",
|
| 80 |
+
"78": "ur",
|
| 81 |
+
"79": "ld",
|
| 82 |
+
"80": "▁he",
|
| 83 |
+
"81": "▁st",
|
| 84 |
+
"82": "all",
|
| 85 |
+
"83": "ro",
|
| 86 |
+
"84": "st",
|
| 87 |
+
"85": "se",
|
| 88 |
+
"86": "ct",
|
| 89 |
+
"87": "ith",
|
| 90 |
+
"88": "ir",
|
| 91 |
+
"89": "am",
|
| 92 |
+
"90": "▁this",
|
| 93 |
+
"91": "if",
|
| 94 |
+
"92": "▁W",
|
| 95 |
+
"93": "oo",
|
| 96 |
+
"94": "ri",
|
| 97 |
+
"95": "▁was",
|
| 98 |
+
"96": "ght",
|
| 99 |
+
"97": "▁u",
|
| 100 |
+
"98": "▁with",
|
| 101 |
+
"99": "ad",
|
| 102 |
+
"100": "ch",
|
| 103 |
+
"101": "▁se",
|
| 104 |
+
"102": "▁k",
|
| 105 |
+
"103": "▁an",
|
| 106 |
+
"104": "▁The",
|
| 107 |
+
"105": "▁li",
|
| 108 |
+
"106": "▁do",
|
| 109 |
+
"107": "▁B",
|
| 110 |
+
"108": "▁have",
|
| 111 |
+
"109": "▁as",
|
| 112 |
+
"110": "th",
|
| 113 |
+
"111": "▁are",
|
| 114 |
+
"112": "▁sh",
|
| 115 |
+
"113": "ust",
|
| 116 |
+
"114": "ce",
|
| 117 |
+
"115": "ally",
|
| 118 |
+
"116": "ill",
|
| 119 |
+
"117": "▁H",
|
| 120 |
+
"118": "▁j",
|
| 121 |
+
"119": "ter",
|
| 122 |
+
"120": "▁go",
|
| 123 |
+
"121": "▁And",
|
| 124 |
+
"122": "ation",
|
| 125 |
+
"123": "▁C",
|
| 126 |
+
"124": "▁so",
|
| 127 |
+
"125": "ome",
|
| 128 |
+
"126": "▁not",
|
| 129 |
+
"127": "op",
|
| 130 |
+
"128": "il",
|
| 131 |
+
"129": "ore",
|
| 132 |
+
"130": "▁ne",
|
| 133 |
+
"131": "▁can",
|
| 134 |
+
"132": "▁me",
|
| 135 |
+
"133": "▁at",
|
| 136 |
+
"134": "ould",
|
| 137 |
+
"135": "ant",
|
| 138 |
+
"136": "▁M",
|
| 139 |
+
"137": "▁like",
|
| 140 |
+
"138": "ere",
|
| 141 |
+
"139": "▁they",
|
| 142 |
+
"140": "ra",
|
| 143 |
+
"141": "ers",
|
| 144 |
+
"142": "▁ab",
|
| 145 |
+
"143": "▁de",
|
| 146 |
+
"144": "▁kn",
|
| 147 |
+
"145": "ge",
|
| 148 |
+
"146": "▁Y",
|
| 149 |
+
"147": "▁ch",
|
| 150 |
+
"148": "ul",
|
| 151 |
+
"149": "pp",
|
| 152 |
+
"150": "▁or",
|
| 153 |
+
"151": "▁al",
|
| 154 |
+
"152": "▁con",
|
| 155 |
+
"153": "▁com",
|
| 156 |
+
"154": "ess",
|
| 157 |
+
"155": "▁su",
|
| 158 |
+
"156": "out",
|
| 159 |
+
"157": "▁your",
|
| 160 |
+
"158": "▁So",
|
| 161 |
+
"159": "ate",
|
| 162 |
+
"160": "▁one",
|
| 163 |
+
"161": "▁all",
|
| 164 |
+
"162": "▁ex",
|
| 165 |
+
"163": "est",
|
| 166 |
+
"164": "▁fr",
|
| 167 |
+
"165": "▁just",
|
| 168 |
+
"166": "▁pro",
|
| 169 |
+
"167": "▁know",
|
| 170 |
+
"168": "▁O",
|
| 171 |
+
"169": "ain",
|
| 172 |
+
"170": "▁but",
|
| 173 |
+
"171": "ol",
|
| 174 |
+
"172": "ive",
|
| 175 |
+
"173": "▁v",
|
| 176 |
+
"174": "use",
|
| 177 |
+
"175": "very",
|
| 178 |
+
"176": "art",
|
| 179 |
+
"177": "qu",
|
| 180 |
+
"178": "▁my",
|
| 181 |
+
"179": "el",
|
| 182 |
+
"180": "▁N",
|
| 183 |
+
"181": "nt",
|
| 184 |
+
"182": "▁It",
|
| 185 |
+
"183": "▁what",
|
| 186 |
+
"184": "ab",
|
| 187 |
+
"185": "▁P",
|
| 188 |
+
"186": "▁wor",
|
| 189 |
+
"187": "▁out",
|
| 190 |
+
"188": "▁there",
|
| 191 |
+
"189": "▁up",
|
| 192 |
+
"190": "um",
|
| 193 |
+
"191": "▁from",
|
| 194 |
+
"192": "pe",
|
| 195 |
+
"193": "▁tw",
|
| 196 |
+
"194": "▁r",
|
| 197 |
+
"195": "and",
|
| 198 |
+
"196": "ight",
|
| 199 |
+
"197": "ort",
|
| 200 |
+
"198": "un",
|
| 201 |
+
"199": "▁L",
|
| 202 |
+
"200": "ist",
|
| 203 |
+
"201": "▁about",
|
| 204 |
+
"202": "ide",
|
| 205 |
+
"203": "ig",
|
| 206 |
+
"204": "ake",
|
| 207 |
+
"205": "▁D",
|
| 208 |
+
"206": "em",
|
| 209 |
+
"207": "os",
|
| 210 |
+
"208": "king",
|
| 211 |
+
"209": "rou",
|
| 212 |
+
"210": "ind",
|
| 213 |
+
"211": "our",
|
| 214 |
+
"212": "res",
|
| 215 |
+
"213": "▁We",
|
| 216 |
+
"214": "▁get",
|
| 217 |
+
"215": "▁E",
|
| 218 |
+
"216": "▁G",
|
| 219 |
+
"217": "ack",
|
| 220 |
+
"218": "▁le",
|
| 221 |
+
"219": "ity",
|
| 222 |
+
"220": "od",
|
| 223 |
+
"221": "▁F",
|
| 224 |
+
"222": "ard",
|
| 225 |
+
"223": "▁pl",
|
| 226 |
+
"224": "▁our",
|
| 227 |
+
"225": "▁int",
|
| 228 |
+
"226": "ment",
|
| 229 |
+
"227": "▁will",
|
| 230 |
+
"228": "ies",
|
| 231 |
+
"229": "▁by",
|
| 232 |
+
"230": "ink",
|
| 233 |
+
"231": "ca",
|
| 234 |
+
"232": "▁if",
|
| 235 |
+
"233": "red",
|
| 236 |
+
"234": "her",
|
| 237 |
+
"235": "ie",
|
| 238 |
+
"236": "▁us",
|
| 239 |
+
"237": "▁some",
|
| 240 |
+
"238": "▁don",
|
| 241 |
+
"239": "ven",
|
| 242 |
+
"240": "ood",
|
| 243 |
+
"241": "ast",
|
| 244 |
+
"242": "▁R",
|
| 245 |
+
"243": "▁his",
|
| 246 |
+
"244": "▁tim",
|
| 247 |
+
"245": "▁tr",
|
| 248 |
+
"246": "▁more",
|
| 249 |
+
"247": "ich",
|
| 250 |
+
"248": "ous",
|
| 251 |
+
"249": "ame",
|
| 252 |
+
"250": "▁going",
|
| 253 |
+
"251": "▁had",
|
| 254 |
+
"252": "▁them",
|
| 255 |
+
"253": "ook",
|
| 256 |
+
"254": "▁pe",
|
| 257 |
+
"255": "▁Wh",
|
| 258 |
+
"256": "▁You",
|
| 259 |
+
"257": "▁But",
|
| 260 |
+
"258": "ine",
|
| 261 |
+
"259": "▁here",
|
| 262 |
+
"260": "▁would",
|
| 263 |
+
"261": "cause",
|
| 264 |
+
"262": "right",
|
| 265 |
+
"263": "so",
|
| 266 |
+
"264": "ost",
|
| 267 |
+
"265": "ure",
|
| 268 |
+
"266": "▁has",
|
| 269 |
+
"267": "ect",
|
| 270 |
+
"268": "▁think",
|
| 271 |
+
"269": "▁fe",
|
| 272 |
+
"270": "ong",
|
| 273 |
+
"271": "▁see",
|
| 274 |
+
"272": "▁when",
|
| 275 |
+
"273": "▁who",
|
| 276 |
+
"274": "▁were",
|
| 277 |
+
"275": "▁really",
|
| 278 |
+
"276": "▁their",
|
| 279 |
+
"277": "▁want",
|
| 280 |
+
"278": "one",
|
| 281 |
+
"279": "ople",
|
| 282 |
+
"280": "▁then",
|
| 283 |
+
"281": "▁time",
|
| 284 |
+
"282": "▁sa",
|
| 285 |
+
"283": "ap",
|
| 286 |
+
"284": "▁te",
|
| 287 |
+
"285": "▁He",
|
| 288 |
+
"286": "▁ye",
|
| 289 |
+
"287": "ck",
|
| 290 |
+
"288": "▁her",
|
| 291 |
+
"289": "▁thing",
|
| 292 |
+
"290": "▁right",
|
| 293 |
+
"291": "▁which",
|
| 294 |
+
"292": "itt",
|
| 295 |
+
"293": "ice",
|
| 296 |
+
"294": "act",
|
| 297 |
+
"295": "▁people",
|
| 298 |
+
"296": "ty",
|
| 299 |
+
"297": "▁two",
|
| 300 |
+
"298": "▁J",
|
| 301 |
+
"299": "▁im",
|
| 302 |
+
"300": "ther",
|
| 303 |
+
"301": "ci",
|
| 304 |
+
"302": "ose",
|
| 305 |
+
"303": "▁cl",
|
| 306 |
+
"304": "▁qu",
|
| 307 |
+
"305": "▁man",
|
| 308 |
+
"306": "▁also",
|
| 309 |
+
"307": "ree",
|
| 310 |
+
"308": "▁en",
|
| 311 |
+
"309": "ud",
|
| 312 |
+
"310": "▁how",
|
| 313 |
+
"311": "reat",
|
| 314 |
+
"312": "ak",
|
| 315 |
+
"313": "hing",
|
| 316 |
+
"314": "ag",
|
| 317 |
+
"315": "▁any",
|
| 318 |
+
"316": "ff",
|
| 319 |
+
"317": "ace",
|
| 320 |
+
"318": "per",
|
| 321 |
+
"319": "▁because",
|
| 322 |
+
"320": "▁very",
|
| 323 |
+
"321": "own",
|
| 324 |
+
"322": "▁ad",
|
| 325 |
+
"323": "▁act",
|
| 326 |
+
"324": "▁been",
|
| 327 |
+
"325": "▁now",
|
| 328 |
+
"326": "▁ag",
|
| 329 |
+
"327": "▁into",
|
| 330 |
+
"328": "▁comp",
|
| 331 |
+
"329": "ars",
|
| 332 |
+
"330": "ions",
|
| 333 |
+
"331": "are",
|
| 334 |
+
"332": "ite",
|
| 335 |
+
"333": "iv",
|
| 336 |
+
"334": "▁these",
|
| 337 |
+
"335": "ays",
|
| 338 |
+
"336": "ep",
|
| 339 |
+
"337": "▁This",
|
| 340 |
+
"338": "▁she",
|
| 341 |
+
"339": "ans",
|
| 342 |
+
"340": "ah",
|
| 343 |
+
"341": "een",
|
| 344 |
+
"342": "▁over",
|
| 345 |
+
"343": "ry",
|
| 346 |
+
"344": "▁lo",
|
| 347 |
+
"345": "age",
|
| 348 |
+
"346": "▁pr",
|
| 349 |
+
"347": "▁sp",
|
| 350 |
+
"348": "ue",
|
| 351 |
+
"349": "▁co",
|
| 352 |
+
"350": "ick",
|
| 353 |
+
"351": "ber",
|
| 354 |
+
"352": "▁did",
|
| 355 |
+
"353": "ip",
|
| 356 |
+
"354": "ach",
|
| 357 |
+
"355": "▁back",
|
| 358 |
+
"356": "▁no",
|
| 359 |
+
"357": "▁cont",
|
| 360 |
+
"358": "▁other",
|
| 361 |
+
"359": "▁every",
|
| 362 |
+
"360": "pt",
|
| 363 |
+
"361": "▁need",
|
| 364 |
+
"362": "▁him",
|
| 365 |
+
"363": "▁U",
|
| 366 |
+
"364": "▁In",
|
| 367 |
+
"365": "▁work",
|
| 368 |
+
"366": "irst",
|
| 369 |
+
"367": "▁part",
|
| 370 |
+
"368": "▁look",
|
| 371 |
+
"369": "ittle",
|
| 372 |
+
"370": "ble",
|
| 373 |
+
"371": "iz",
|
| 374 |
+
"372": "▁un",
|
| 375 |
+
"373": "▁make",
|
| 376 |
+
"374": "omet",
|
| 377 |
+
"375": "nder",
|
| 378 |
+
"376": "ish",
|
| 379 |
+
"377": "na",
|
| 380 |
+
"378": "▁little",
|
| 381 |
+
"379": "▁off",
|
| 382 |
+
"380": "▁than",
|
| 383 |
+
"381": "▁got",
|
| 384 |
+
"382": "ually",
|
| 385 |
+
"383": "▁per",
|
| 386 |
+
"384": "▁good",
|
| 387 |
+
"385": "▁way",
|
| 388 |
+
"386": "▁could",
|
| 389 |
+
"387": "▁ac",
|
| 390 |
+
"388": "▁imp",
|
| 391 |
+
"389": "able",
|
| 392 |
+
"390": "▁where",
|
| 393 |
+
"391": "iff",
|
| 394 |
+
"392": "▁That",
|
| 395 |
+
"393": "▁res",
|
| 396 |
+
"394": "ount",
|
| 397 |
+
"395": "pl",
|
| 398 |
+
"396": "ance",
|
| 399 |
+
"397": "▁first",
|
| 400 |
+
"398": "▁ro",
|
| 401 |
+
"399": "▁pre",
|
| 402 |
+
"400": "ass",
|
| 403 |
+
"401": "▁say",
|
| 404 |
+
"402": "int",
|
| 405 |
+
"403": "ated",
|
| 406 |
+
"404": "ire",
|
| 407 |
+
"405": "uch",
|
| 408 |
+
"406": "ase",
|
| 409 |
+
"407": "▁somet",
|
| 410 |
+
"408": "ound",
|
| 411 |
+
"409": "▁down",
|
| 412 |
+
"410": "▁diff",
|
| 413 |
+
"411": "sel",
|
| 414 |
+
"412": "▁gu",
|
| 415 |
+
"413": "▁am",
|
| 416 |
+
"414": "ress",
|
| 417 |
+
"415": "▁lot",
|
| 418 |
+
"416": "ence",
|
| 419 |
+
"417": "▁dis",
|
| 420 |
+
"418": "orm",
|
| 421 |
+
"419": "ix",
|
| 422 |
+
"420": "▁po",
|
| 423 |
+
"421": "ving",
|
| 424 |
+
"422": "enty",
|
| 425 |
+
"423": "▁K",
|
| 426 |
+
"424": "▁spe",
|
| 427 |
+
"425": "und",
|
| 428 |
+
"426": "he",
|
| 429 |
+
"427": "▁much",
|
| 430 |
+
"428": "▁ar",
|
| 431 |
+
"429": "round",
|
| 432 |
+
"430": "▁app",
|
| 433 |
+
"431": "co",
|
| 434 |
+
"432": "ark",
|
| 435 |
+
"433": "▁new",
|
| 436 |
+
"434": "ater",
|
| 437 |
+
"435": "ult",
|
| 438 |
+
"436": "end",
|
| 439 |
+
"437": "▁even",
|
| 440 |
+
"438": "▁start",
|
| 441 |
+
"439": "ations",
|
| 442 |
+
"440": "rough",
|
| 443 |
+
"441": "ile",
|
| 444 |
+
"442": "fter",
|
| 445 |
+
"443": "▁well",
|
| 446 |
+
"444": "be",
|
| 447 |
+
"445": "▁They",
|
| 448 |
+
"446": "▁three",
|
| 449 |
+
"447": "ign",
|
| 450 |
+
"448": "ild",
|
| 451 |
+
"449": "▁said",
|
| 452 |
+
"450": "ough",
|
| 453 |
+
"451": "ang",
|
| 454 |
+
"452": "▁too",
|
| 455 |
+
"453": "ade",
|
| 456 |
+
"454": "▁bl",
|
| 457 |
+
"455": "ens",
|
| 458 |
+
"456": "▁inc",
|
| 459 |
+
"457": "ia",
|
| 460 |
+
"458": "▁those",
|
| 461 |
+
"459": "▁mo",
|
| 462 |
+
"460": "▁take",
|
| 463 |
+
"461": "▁through",
|
| 464 |
+
"462": "▁fl",
|
| 465 |
+
"463": "▁kind",
|
| 466 |
+
"464": "▁things",
|
| 467 |
+
"465": "▁bet",
|
| 468 |
+
"466": "▁only",
|
| 469 |
+
"467": "▁St",
|
| 470 |
+
"468": "▁let",
|
| 471 |
+
"469": "cess",
|
| 472 |
+
"470": "▁Ch",
|
| 473 |
+
"471": "ary",
|
| 474 |
+
"472": "vel",
|
| 475 |
+
"473": "▁If",
|
| 476 |
+
"474": "xt",
|
| 477 |
+
"475": "other",
|
| 478 |
+
"476": "av",
|
| 479 |
+
"477": "ical",
|
| 480 |
+
"478": "ord",
|
| 481 |
+
"479": "▁again",
|
| 482 |
+
"480": "▁something",
|
| 483 |
+
"481": "onna",
|
| 484 |
+
"482": "fore",
|
| 485 |
+
"483": "▁may",
|
| 486 |
+
"484": "ting",
|
| 487 |
+
"485": "▁bu",
|
| 488 |
+
"486": "▁differe",
|
| 489 |
+
"487": "urn",
|
| 490 |
+
"488": "▁gonna",
|
| 491 |
+
"489": "▁does",
|
| 492 |
+
"490": "uct",
|
| 493 |
+
"491": "og",
|
| 494 |
+
"492": "▁twenty",
|
| 495 |
+
"493": "▁gr",
|
| 496 |
+
"494": "▁Ye",
|
| 497 |
+
"495": "wn",
|
| 498 |
+
"496": "▁should",
|
| 499 |
+
"497": "▁comm",
|
| 500 |
+
"498": "ition",
|
| 501 |
+
"499": "▁under",
|
| 502 |
+
"500": "▁hel",
|
| 503 |
+
"501": "ory",
|
| 504 |
+
"502": "▁fo",
|
| 505 |
+
"503": "▁use",
|
| 506 |
+
"504": "igh",
|
| 507 |
+
"505": "ife",
|
| 508 |
+
"506": "▁actually",
|
| 509 |
+
"507": "▁tal",
|
| 510 |
+
"508": "▁call",
|
| 511 |
+
"509": "ents",
|
| 512 |
+
"510": "ious",
|
| 513 |
+
"511": "ull",
|
| 514 |
+
"512": "▁There",
|
| 515 |
+
"513": "▁Yeah",
|
| 516 |
+
"514": "▁most",
|
| 517 |
+
"515": "▁ke",
|
| 518 |
+
"516": "ors",
|
| 519 |
+
"517": "ved",
|
| 520 |
+
"518": "ys",
|
| 521 |
+
"519": "▁sc",
|
| 522 |
+
"520": "▁happ",
|
| 523 |
+
"521": "ope",
|
| 524 |
+
"522": "▁help",
|
| 525 |
+
"523": "atch",
|
| 526 |
+
"524": "▁What",
|
| 527 |
+
"525": "▁rem",
|
| 528 |
+
"526": "ple",
|
| 529 |
+
"527": "▁Now",
|
| 530 |
+
"528": "▁br",
|
| 531 |
+
"529": "ool",
|
| 532 |
+
"530": "oth",
|
| 533 |
+
"531": "▁four",
|
| 534 |
+
"532": "self",
|
| 535 |
+
"533": "▁str",
|
| 536 |
+
"534": "ne",
|
| 537 |
+
"535": "thing",
|
| 538 |
+
"536": "▁put",
|
| 539 |
+
"537": "ial",
|
| 540 |
+
"538": "▁great",
|
| 541 |
+
"539": "ail",
|
| 542 |
+
"540": "ub",
|
| 543 |
+
"541": "ning",
|
| 544 |
+
"542": "▁sm",
|
| 545 |
+
"543": "▁feel",
|
| 546 |
+
"544": "▁five",
|
| 547 |
+
"545": "ody",
|
| 548 |
+
"546": "undred",
|
| 549 |
+
"547": "iss",
|
| 550 |
+
"548": "ank",
|
| 551 |
+
"549": "get",
|
| 552 |
+
"550": "aking",
|
| 553 |
+
"551": "▁many",
|
| 554 |
+
"552": "▁hundred",
|
| 555 |
+
"553": "▁years",
|
| 556 |
+
"554": "▁being",
|
| 557 |
+
"555": "▁come",
|
| 558 |
+
"556": "▁mean",
|
| 559 |
+
"557": "ily",
|
| 560 |
+
"558": "▁different",
|
| 561 |
+
"559": "▁after",
|
| 562 |
+
"560": "▁ser",
|
| 563 |
+
"561": "▁show",
|
| 564 |
+
"562": "form",
|
| 565 |
+
"563": "ful",
|
| 566 |
+
"564": "oy",
|
| 567 |
+
"565": "▁six",
|
| 568 |
+
"566": "▁vide",
|
| 569 |
+
"567": "▁V",
|
| 570 |
+
"568": "▁its",
|
| 571 |
+
"569": "▁point",
|
| 572 |
+
"570": "▁day",
|
| 573 |
+
"571": "▁des",
|
| 574 |
+
"572": "ons",
|
| 575 |
+
"573": "▁bit",
|
| 576 |
+
"574": "▁bel",
|
| 577 |
+
"575": "▁before",
|
| 578 |
+
"576": "▁aw",
|
| 579 |
+
"577": "▁end",
|
| 580 |
+
"578": "▁Oh",
|
| 581 |
+
"579": "▁still",
|
| 582 |
+
"580": "ath",
|
| 583 |
+
"581": "▁long",
|
| 584 |
+
"582": "▁'",
|
| 585 |
+
"583": "ise",
|
| 586 |
+
"584": "ob",
|
| 587 |
+
"585": "day",
|
| 588 |
+
"586": "▁add",
|
| 589 |
+
"587": "ft",
|
| 590 |
+
"588": "ves",
|
| 591 |
+
"589": "ces",
|
| 592 |
+
"590": "ady",
|
| 593 |
+
"591": "▁cr",
|
| 594 |
+
"592": "▁around",
|
| 595 |
+
"593": "▁try",
|
| 596 |
+
"594": "les",
|
| 597 |
+
"595": "vers",
|
| 598 |
+
"596": "kay",
|
| 599 |
+
"597": "ian",
|
| 600 |
+
"598": "ates",
|
| 601 |
+
"599": "▁find",
|
| 602 |
+
"600": "ward",
|
| 603 |
+
"601": "▁As",
|
| 604 |
+
"602": "▁eight",
|
| 605 |
+
"603": "lic",
|
| 606 |
+
"604": "▁same",
|
| 607 |
+
"605": "▁pos",
|
| 608 |
+
"606": "▁em",
|
| 609 |
+
"607": "▁made",
|
| 610 |
+
"608": "▁supp",
|
| 611 |
+
"609": "▁life",
|
| 612 |
+
"610": "▁Be",
|
| 613 |
+
"611": "pect",
|
| 614 |
+
"612": "▁dec",
|
| 615 |
+
"613": "▁play",
|
| 616 |
+
"614": "ange",
|
| 617 |
+
"615": "▁att",
|
| 618 |
+
"616": "▁pers",
|
| 619 |
+
"617": "ways",
|
| 620 |
+
"618": "▁high",
|
| 621 |
+
"619": "▁hand",
|
| 622 |
+
"620": "▁next",
|
| 623 |
+
"621": "▁cons",
|
| 624 |
+
"622": "▁own",
|
| 625 |
+
"623": "▁inv",
|
| 626 |
+
"624": "ower",
|
| 627 |
+
"625": "▁ind",
|
| 628 |
+
"626": "ert",
|
| 629 |
+
"627": "ng",
|
| 630 |
+
"628": "ave",
|
| 631 |
+
"629": "▁year",
|
| 632 |
+
"630": "▁big",
|
| 633 |
+
"631": "ating",
|
| 634 |
+
"632": "▁world",
|
| 635 |
+
"633": "▁rel",
|
| 636 |
+
"634": "▁sure",
|
| 637 |
+
"635": "▁tra",
|
| 638 |
+
"636": "ew",
|
| 639 |
+
"637": "ered",
|
| 640 |
+
"638": "▁fin",
|
| 641 |
+
"639": "▁Well",
|
| 642 |
+
"640": "▁sl",
|
| 643 |
+
"641": "▁doing",
|
| 644 |
+
"642": "bs",
|
| 645 |
+
"643": "▁set",
|
| 646 |
+
"644": "▁rec",
|
| 647 |
+
"645": "ual",
|
| 648 |
+
"646": "cial",
|
| 649 |
+
"647": "▁ph",
|
| 650 |
+
"648": "erm",
|
| 651 |
+
"649": "▁love",
|
| 652 |
+
"650": "ph",
|
| 653 |
+
"651": "▁real",
|
| 654 |
+
"652": "▁last",
|
| 655 |
+
"653": "ict",
|
| 656 |
+
"654": "▁bo",
|
| 657 |
+
"655": "▁ra",
|
| 658 |
+
"656": "ible",
|
| 659 |
+
"657": "▁wr",
|
| 660 |
+
"658": "mer",
|
| 661 |
+
"659": "▁count",
|
| 662 |
+
"660": "ities",
|
| 663 |
+
"661": "▁always",
|
| 664 |
+
"662": "inet",
|
| 665 |
+
"663": "ments",
|
| 666 |
+
"664": "uc",
|
| 667 |
+
"665": "▁might",
|
| 668 |
+
"666": "▁inter",
|
| 669 |
+
"667": "▁video",
|
| 670 |
+
"668": "gin",
|
| 671 |
+
"669": "▁tell",
|
| 672 |
+
"670": "▁never",
|
| 673 |
+
"671": "vent",
|
| 674 |
+
"672": "▁import",
|
| 675 |
+
"673": "ied",
|
| 676 |
+
"674": "▁sy",
|
| 677 |
+
"675": "▁How",
|
| 678 |
+
"676": "ically",
|
| 679 |
+
"677": "ought",
|
| 680 |
+
"678": "▁thir",
|
| 681 |
+
"679": "▁rep",
|
| 682 |
+
"680": "ks",
|
| 683 |
+
"681": "ib",
|
| 684 |
+
"682": "▁fam",
|
| 685 |
+
"683": "ject",
|
| 686 |
+
"684": "▁bas",
|
| 687 |
+
"685": "▁She",
|
| 688 |
+
"686": "▁give",
|
| 689 |
+
"687": "akes",
|
| 690 |
+
"688": "▁ninet",
|
| 691 |
+
"689": "▁reg",
|
| 692 |
+
"690": "▁min",
|
| 693 |
+
"691": "▁op",
|
| 694 |
+
"692": "▁def",
|
| 695 |
+
"693": "▁didn",
|
| 696 |
+
"694": "te",
|
| 697 |
+
"695": "▁cour",
|
| 698 |
+
"696": "▁why",
|
| 699 |
+
"697": "▁ent",
|
| 700 |
+
"698": "▁place",
|
| 701 |
+
"699": "▁ins",
|
| 702 |
+
"700": "▁car",
|
| 703 |
+
"701": "ather",
|
| 704 |
+
"702": "▁person",
|
| 705 |
+
"703": "ular",
|
| 706 |
+
"704": "▁inst",
|
| 707 |
+
"705": "▁prod",
|
| 708 |
+
"706": "lect",
|
| 709 |
+
"707": "▁Al",
|
| 710 |
+
"708": "▁today",
|
| 711 |
+
"709": "▁bec",
|
| 712 |
+
"710": "▁sur",
|
| 713 |
+
"711": "▁All",
|
| 714 |
+
"712": "▁another",
|
| 715 |
+
"713": "▁bus",
|
| 716 |
+
"714": "▁keep",
|
| 717 |
+
"715": "ell",
|
| 718 |
+
"716": "ese",
|
| 719 |
+
"717": "riend",
|
| 720 |
+
"718": "▁quest",
|
| 721 |
+
"719": "▁talk",
|
| 722 |
+
"720": "als",
|
| 723 |
+
"721": "ings",
|
| 724 |
+
"722": "▁mon",
|
| 725 |
+
"723": "cond",
|
| 726 |
+
"724": "old",
|
| 727 |
+
"725": "▁acc",
|
| 728 |
+
"726": "▁la",
|
| 729 |
+
"727": "▁num",
|
| 730 |
+
"728": "ident",
|
| 731 |
+
"729": "▁che",
|
| 732 |
+
"730": "iness",
|
| 733 |
+
"731": "▁turn",
|
| 734 |
+
"732": "▁ear",
|
| 735 |
+
"733": "▁No",
|
| 736 |
+
"734": "ousand",
|
| 737 |
+
"735": "▁better",
|
| 738 |
+
"736": "ific",
|
| 739 |
+
"737": "▁loo",
|
| 740 |
+
"738": "▁gl",
|
| 741 |
+
"739": "oc",
|
| 742 |
+
"740": "▁important",
|
| 743 |
+
"741": "ited",
|
| 744 |
+
"742": "▁An",
|
| 745 |
+
"743": "▁thousand",
|
| 746 |
+
"744": "ility",
|
| 747 |
+
"745": "llow",
|
| 748 |
+
"746": "▁used",
|
| 749 |
+
"747": "▁gen",
|
| 750 |
+
"748": "▁sim",
|
| 751 |
+
"749": "li",
|
| 752 |
+
"750": "▁happen",
|
| 753 |
+
"751": "▁Un",
|
| 754 |
+
"752": "▁Let",
|
| 755 |
+
"753": "air",
|
| 756 |
+
"754": "ock",
|
| 757 |
+
"755": "ably",
|
| 758 |
+
"756": "gg",
|
| 759 |
+
"757": "▁watch",
|
| 760 |
+
"758": "▁For",
|
| 761 |
+
"759": "▁sw",
|
| 762 |
+
"760": "ren",
|
| 763 |
+
"761": "ute",
|
| 764 |
+
"762": "ever",
|
| 765 |
+
"763": "▁pol",
|
| 766 |
+
"764": "▁sch",
|
| 767 |
+
"765": "▁When",
|
| 768 |
+
"766": "▁such",
|
| 769 |
+
"767": "▁fif",
|
| 770 |
+
"768": "▁home",
|
| 771 |
+
"769": "▁cle",
|
| 772 |
+
"770": "▁contin",
|
| 773 |
+
"771": "ouse",
|
| 774 |
+
"772": "▁friend",
|
| 775 |
+
"773": "uring",
|
| 776 |
+
"774": "▁Okay",
|
| 777 |
+
"775": "gr",
|
| 778 |
+
"776": "▁able",
|
| 779 |
+
"777": "▁stud",
|
| 780 |
+
"778": "▁eff",
|
| 781 |
+
"779": "hip",
|
| 782 |
+
"780": "body",
|
| 783 |
+
"781": "▁top",
|
| 784 |
+
"782": "ness",
|
| 785 |
+
"783": "▁exper",
|
| 786 |
+
"784": "▁pret",
|
| 787 |
+
"785": "▁both",
|
| 788 |
+
"786": "▁done",
|
| 789 |
+
"787": "cri",
|
| 790 |
+
"788": "▁mark",
|
| 791 |
+
"789": "▁while",
|
| 792 |
+
"790": "▁old",
|
| 793 |
+
"791": "ros",
|
| 794 |
+
"792": "ont",
|
| 795 |
+
"793": "▁second",
|
| 796 |
+
"794": "ative",
|
| 797 |
+
"795": "▁thought",
|
| 798 |
+
"796": "▁best",
|
| 799 |
+
"797": "▁found",
|
| 800 |
+
"798": "iew",
|
| 801 |
+
"799": "▁belie",
|
| 802 |
+
"800": "▁each",
|
| 803 |
+
"801": "erest",
|
| 804 |
+
"802": "▁tri",
|
| 805 |
+
"803": "▁eas",
|
| 806 |
+
"804": "▁ca",
|
| 807 |
+
"805": "▁fact",
|
| 808 |
+
"806": "▁care",
|
| 809 |
+
"807": "▁fun",
|
| 810 |
+
"808": "atter",
|
| 811 |
+
"809": "ures",
|
| 812 |
+
"810": "▁head",
|
| 813 |
+
"811": "▁lear",
|
| 814 |
+
"812": "▁water",
|
| 815 |
+
"813": "▁hard",
|
| 816 |
+
"814": "▁few",
|
| 817 |
+
"815": "▁side",
|
| 818 |
+
"816": "ween",
|
| 819 |
+
"817": "▁exp",
|
| 820 |
+
"818": "▁away",
|
| 821 |
+
"819": "its",
|
| 822 |
+
"820": "▁ext",
|
| 823 |
+
"821": "lud",
|
| 824 |
+
"822": "▁run",
|
| 825 |
+
"823": "▁trans",
|
| 826 |
+
"824": "ince",
|
| 827 |
+
"825": "▁sk",
|
| 828 |
+
"826": "▁open",
|
| 829 |
+
"827": "cus",
|
| 830 |
+
"828": "▁between",
|
| 831 |
+
"829": "▁called",
|
| 832 |
+
"830": "▁wee",
|
| 833 |
+
"831": "▁pretty",
|
| 834 |
+
"832": "ason",
|
| 835 |
+
"833": "▁far",
|
| 836 |
+
"834": "ember",
|
| 837 |
+
"835": "omm",
|
| 838 |
+
"836": "▁interest",
|
| 839 |
+
"837": "any",
|
| 840 |
+
"838": "ner",
|
| 841 |
+
"839": "uff",
|
| 842 |
+
"840": "▁pres",
|
| 843 |
+
"841": "▁cur",
|
| 844 |
+
"842": "▁child",
|
| 845 |
+
"843": "ee",
|
| 846 |
+
"844": "▁toget",
|
| 847 |
+
"845": "▁together",
|
| 848 |
+
"846": "olog",
|
| 849 |
+
"847": "▁God",
|
| 850 |
+
"848": "ond",
|
| 851 |
+
"849": "▁char",
|
| 852 |
+
"850": "▁looking",
|
| 853 |
+
"851": "stem",
|
| 854 |
+
"852": "az",
|
| 855 |
+
"853": "cent",
|
| 856 |
+
"854": "▁ob",
|
| 857 |
+
"855": "▁ass",
|
| 858 |
+
"856": "land",
|
| 859 |
+
"857": "▁doesn",
|
| 860 |
+
"858": "▁business",
|
| 861 |
+
"859": "▁course",
|
| 862 |
+
"860": "▁ten",
|
| 863 |
+
"861": "ps",
|
| 864 |
+
"862": "arch",
|
| 865 |
+
"863": "ced",
|
| 866 |
+
"864": "ms",
|
| 867 |
+
"865": "ize",
|
| 868 |
+
"866": "nce",
|
| 869 |
+
"867": "▁ref",
|
| 870 |
+
"868": "▁name",
|
| 871 |
+
"869": "ross",
|
| 872 |
+
"870": "▁grow",
|
| 873 |
+
"871": "oney",
|
| 874 |
+
"872": "▁went",
|
| 875 |
+
"873": "ics",
|
| 876 |
+
"874": "teen",
|
| 877 |
+
"875": "▁cou",
|
| 878 |
+
"876": "▁prob",
|
| 879 |
+
"877": "▁ret",
|
| 880 |
+
"878": "▁guys",
|
| 881 |
+
"879": "▁came",
|
| 882 |
+
"880": "ash",
|
| 883 |
+
"881": "led",
|
| 884 |
+
"882": "▁Eur",
|
| 885 |
+
"883": "ues",
|
| 886 |
+
"884": "▁ide",
|
| 887 |
+
"885": "gan",
|
| 888 |
+
"886": "▁everything",
|
| 889 |
+
"887": "▁getting",
|
| 890 |
+
"888": "▁ask",
|
| 891 |
+
"889": "▁cor",
|
| 892 |
+
"890": "▁build",
|
| 893 |
+
"891": "▁sign",
|
| 894 |
+
"892": "▁small",
|
| 895 |
+
"893": "uck",
|
| 896 |
+
"894": "▁el",
|
| 897 |
+
"895": "▁col",
|
| 898 |
+
"896": "▁Is",
|
| 899 |
+
"897": "ational",
|
| 900 |
+
"898": "stand",
|
| 901 |
+
"899": "cy",
|
| 902 |
+
"900": "▁conf",
|
| 903 |
+
"901": "der",
|
| 904 |
+
"902": "▁bre",
|
| 905 |
+
"903": "▁cap",
|
| 906 |
+
"904": "▁mod",
|
| 907 |
+
"905": "ets",
|
| 908 |
+
"906": "ike",
|
| 909 |
+
"907": "▁number",
|
| 910 |
+
"908": "▁comple",
|
| 911 |
+
"909": "ertain",
|
| 912 |
+
"910": "▁ever",
|
| 913 |
+
"911": "▁coll",
|
| 914 |
+
"912": "▁hum",
|
| 915 |
+
"913": "▁Europe",
|
| 916 |
+
"914": "▁cre",
|
| 917 |
+
"915": "▁met",
|
| 918 |
+
"916": "▁exam",
|
| 919 |
+
"917": "▁move",
|
| 920 |
+
"918": "▁pass",
|
| 921 |
+
"919": "▁left",
|
| 922 |
+
"920": "▁system",
|
| 923 |
+
"921": "▁includ",
|
| 924 |
+
"922": "▁Thank",
|
| 925 |
+
"923": "cept",
|
| 926 |
+
"924": "▁wom",
|
| 927 |
+
"925": "▁product",
|
| 928 |
+
"926": "ten",
|
| 929 |
+
"927": "▁rest",
|
| 930 |
+
"928": "▁probably",
|
| 931 |
+
"929": "▁dri",
|
| 932 |
+
"930": "▁Do",
|
| 933 |
+
"931": "▁gener",
|
| 934 |
+
"932": "▁anything",
|
| 935 |
+
"933": "▁lar",
|
| 936 |
+
"934": "▁My",
|
| 937 |
+
"935": "▁school",
|
| 938 |
+
"936": "▁lead",
|
| 939 |
+
"937": "▁sub",
|
| 940 |
+
"938": "▁ty",
|
| 941 |
+
"939": "▁plan",
|
| 942 |
+
"940": "▁seem",
|
| 943 |
+
"941": "▁whole",
|
| 944 |
+
"942": "irect",
|
| 945 |
+
"943": "▁light",
|
| 946 |
+
"944": "▁must",
|
| 947 |
+
"945": "▁mom",
|
| 948 |
+
"946": "▁opp",
|
| 949 |
+
"947": "▁support",
|
| 950 |
+
"948": "▁family",
|
| 951 |
+
"949": "ices",
|
| 952 |
+
"950": "amp",
|
| 953 |
+
"951": "▁proble",
|
| 954 |
+
"952": "▁dr",
|
| 955 |
+
"953": "ready",
|
| 956 |
+
"954": "▁using",
|
| 957 |
+
"955": "ense",
|
| 958 |
+
"956": "▁prov",
|
| 959 |
+
"957": "ush",
|
| 960 |
+
"958": "ax",
|
| 961 |
+
"959": "▁power",
|
| 962 |
+
"960": "▁Re",
|
| 963 |
+
"961": "alth",
|
| 964 |
+
"962": "▁ev",
|
| 965 |
+
"963": "▁stand",
|
| 966 |
+
"964": "▁war",
|
| 967 |
+
"965": "ts",
|
| 968 |
+
"966": "▁",
|
| 969 |
+
"967": "e",
|
| 970 |
+
"968": "t",
|
| 971 |
+
"969": "o",
|
| 972 |
+
"970": "a",
|
| 973 |
+
"971": "n",
|
| 974 |
+
"972": "i",
|
| 975 |
+
"973": "s",
|
| 976 |
+
"974": "r",
|
| 977 |
+
"975": "h",
|
| 978 |
+
"976": "l",
|
| 979 |
+
"977": "d",
|
| 980 |
+
"978": "u",
|
| 981 |
+
"979": "c",
|
| 982 |
+
"980": "m",
|
| 983 |
+
"981": "y",
|
| 984 |
+
"982": "g",
|
| 985 |
+
"983": "w",
|
| 986 |
+
"984": "f",
|
| 987 |
+
"985": "p",
|
| 988 |
+
"986": ".",
|
| 989 |
+
"987": "b",
|
| 990 |
+
"988": ",",
|
| 991 |
+
"989": "v",
|
| 992 |
+
"990": "k",
|
| 993 |
+
"991": "'",
|
| 994 |
+
"992": "I",
|
| 995 |
+
"993": "T",
|
| 996 |
+
"994": "A",
|
| 997 |
+
"995": "S",
|
| 998 |
+
"996": "x",
|
| 999 |
+
"997": "W",
|
| 1000 |
+
"998": "j",
|
| 1001 |
+
"999": "B",
|
| 1002 |
+
"1000": "C",
|
| 1003 |
+
"1001": "H",
|
| 1004 |
+
"1002": "?",
|
| 1005 |
+
"1003": "M",
|
| 1006 |
+
"1004": "O",
|
| 1007 |
+
"1005": "Y",
|
| 1008 |
+
"1006": "N",
|
| 1009 |
+
"1007": "P",
|
| 1010 |
+
"1008": "E",
|
| 1011 |
+
"1009": "q",
|
| 1012 |
+
"1010": "L",
|
| 1013 |
+
"1011": "D",
|
| 1014 |
+
"1012": "z",
|
| 1015 |
+
"1013": "G",
|
| 1016 |
+
"1014": "F",
|
| 1017 |
+
"1015": "R",
|
| 1018 |
+
"1016": "!",
|
| 1019 |
+
"1017": "J",
|
| 1020 |
+
"1018": "U",
|
| 1021 |
+
"1019": "K",
|
| 1022 |
+
"1020": "V",
|
| 1023 |
+
"1021": "Q",
|
| 1024 |
+
"1022": "Z",
|
| 1025 |
+
"1023": "X"
|
| 1026 |
+
}
|