ferdinandl007 commited on
Commit
07386c3
·
verified ·
1 Parent(s): 8a41f71

Add DeepFilterNet3 streaming CoreML (GRU state I/O)

Browse files
DeepFilterNet3.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:af5415fc08327b0cce559f37b1857d195c4a3e69abe6ca1f7c810068100ef8c3
3
+ size 243
DeepFilterNet3.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:00dcdb0213000f9aedaa19b3f0f5951a5b6010a7182fafe895dc771e3f536c5f
3
+ size 817
DeepFilterNet3.mlmodelc/metadata.json ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "shortDescription" : "DeepFilterNet3 noise suppression with explicit GRU state I\/O for glitch-free live streaming on Apple Silicon.",
4
+ "metadataOutputVersion" : "3.0",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float16",
10
+ "formattedType" : "MultiArray (Float16)",
11
+ "shortDescription" : "",
12
+ "shape" : "[]",
13
+ "name" : "erb_mask",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Float16",
20
+ "formattedType" : "MultiArray (Float16)",
21
+ "shortDescription" : "",
22
+ "shape" : "[]",
23
+ "name" : "df_coefs",
24
+ "type" : "MultiArray"
25
+ },
26
+ {
27
+ "hasShapeFlexibility" : "0",
28
+ "isOptional" : "0",
29
+ "dataType" : "Float16",
30
+ "formattedType" : "MultiArray (Float16 1 × 1 × 256)",
31
+ "shortDescription" : "",
32
+ "shape" : "[1, 1, 256]",
33
+ "name" : "h_enc_out",
34
+ "type" : "MultiArray"
35
+ },
36
+ {
37
+ "hasShapeFlexibility" : "0",
38
+ "isOptional" : "0",
39
+ "dataType" : "Float16",
40
+ "formattedType" : "MultiArray (Float16 2 × 1 × 256)",
41
+ "shortDescription" : "",
42
+ "shape" : "[2, 1, 256]",
43
+ "name" : "h_erb_out",
44
+ "type" : "MultiArray"
45
+ },
46
+ {
47
+ "hasShapeFlexibility" : "0",
48
+ "isOptional" : "0",
49
+ "dataType" : "Float16",
50
+ "formattedType" : "MultiArray (Float16 2 × 1 × 256)",
51
+ "shortDescription" : "",
52
+ "shape" : "[2, 1, 256]",
53
+ "name" : "h_df_out",
54
+ "type" : "MultiArray"
55
+ }
56
+ ],
57
+ "version" : "3.0-streaming",
58
+ "modelParameters" : [
59
+
60
+ ],
61
+ "author" : "ferdinandl007 (weights: Rikorose\/DeepFilterNet3)",
62
+ "specificationVersion" : 9,
63
+ "storagePrecision" : "Float16",
64
+ "license" : "Apache-2.0 \/ MIT",
65
+ "mlProgramOperationTypeHistogram" : {
66
+ "Ios18.expandDims" : 5,
67
+ "Ios18.mul" : 15,
68
+ "Fill" : 5,
69
+ "Ios18.matmul" : 8,
70
+ "Ios18.sigmoid" : 11,
71
+ "Crop" : 2,
72
+ "Ios18.gather" : 11,
73
+ "Ios18.add" : 32,
74
+ "Ios18.reshape" : 35,
75
+ "Shape" : 6,
76
+ "Pad" : 3,
77
+ "Ios18.scatter" : 5,
78
+ "WhileLoop" : 5,
79
+ "Ios18.linear" : 30,
80
+ "Ios18.conv" : 22,
81
+ "Ios18.relu" : 20,
82
+ "Ios18.concat" : 13,
83
+ "Ios18.tanh" : 6,
84
+ "Ios18.transpose" : 26,
85
+ "Ios18.cast" : 32,
86
+ "Ios18.less" : 5,
87
+ "Ios18.sub" : 5,
88
+ "Ios18.convTranspose" : 2,
89
+ "Ios18.sliceByIndex" : 21,
90
+ "Ios18.squeeze" : 10
91
+ },
92
+ "computePrecision" : "Mixed (Float16, Float32, Int32, UInt16)",
93
+ "stateSchema" : [
94
+
95
+ ],
96
+ "isUpdatable" : "0",
97
+ "availability" : {
98
+ "macOS" : "15.0",
99
+ "tvOS" : "18.0",
100
+ "visionOS" : "2.0",
101
+ "watchOS" : "11.0",
102
+ "iOS" : "18.0",
103
+ "macCatalyst" : "18.0"
104
+ },
105
+ "modelType" : {
106
+ "name" : "MLModelType_mlProgram"
107
+ },
108
+ "inputSchema" : [
109
+ {
110
+ "dataType" : "Float32",
111
+ "hasShapeFlexibility" : "1",
112
+ "isOptional" : "0",
113
+ "shapeFlexibility" : "1 × 1 × 1...6000 × 32",
114
+ "shapeRange" : "[[1, 1], [1, 1], [1, 6000], [32, 32]]",
115
+ "formattedType" : "MultiArray (Float32 1 × 1 × 32 × 32)",
116
+ "type" : "MultiArray",
117
+ "shape" : "[1, 1, 32, 32]",
118
+ "name" : "feat_erb",
119
+ "shortDescription" : ""
120
+ },
121
+ {
122
+ "dataType" : "Float32",
123
+ "hasShapeFlexibility" : "1",
124
+ "isOptional" : "0",
125
+ "shapeFlexibility" : "1 × 2 × 1...6000 × 96",
126
+ "shapeRange" : "[[1, 1], [2, 2], [1, 6000], [96, 96]]",
127
+ "formattedType" : "MultiArray (Float32 1 × 2 × 32 × 96)",
128
+ "type" : "MultiArray",
129
+ "shape" : "[1, 2, 32, 96]",
130
+ "name" : "feat_spec",
131
+ "shortDescription" : ""
132
+ },
133
+ {
134
+ "hasShapeFlexibility" : "0",
135
+ "isOptional" : "0",
136
+ "dataType" : "Float32",
137
+ "formattedType" : "MultiArray (Float32 1 × 1 × 256)",
138
+ "shortDescription" : "",
139
+ "shape" : "[1, 1, 256]",
140
+ "name" : "h_enc",
141
+ "type" : "MultiArray"
142
+ },
143
+ {
144
+ "hasShapeFlexibility" : "0",
145
+ "isOptional" : "0",
146
+ "dataType" : "Float32",
147
+ "formattedType" : "MultiArray (Float32 2 × 1 × 256)",
148
+ "shortDescription" : "",
149
+ "shape" : "[2, 1, 256]",
150
+ "name" : "h_erb",
151
+ "type" : "MultiArray"
152
+ },
153
+ {
154
+ "hasShapeFlexibility" : "0",
155
+ "isOptional" : "0",
156
+ "dataType" : "Float32",
157
+ "formattedType" : "MultiArray (Float32 2 × 1 × 256)",
158
+ "shortDescription" : "",
159
+ "shape" : "[2, 1, 256]",
160
+ "name" : "h_df",
161
+ "type" : "MultiArray"
162
+ }
163
+ ],
164
+ "userDefinedMetadata" : {
165
+ "com.github.apple.coremltools.conversion_date" : "2026-07-09",
166
+ "com.github.apple.coremltools.source" : "torch==2.13.0",
167
+ "com.github.apple.coremltools.version" : "9.0",
168
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
169
+ },
170
+ "generatedClassName" : "DeepFilterNet3",
171
+ "method" : "predict"
172
+ }
173
+ ]
DeepFilterNet3.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
DeepFilterNet3.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c6e78151ffdacd5b962941dedc5d3a3a40df278e5444e871530bfbc1e73f0a52
3
+ size 4274688
DeepFilterNet3.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e82eeaaecb9ff3cd3f492a249655f4c9797b898d6370648ad8947b8abc2c9e26
3
+ size 137927
DeepFilterNet3.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:c6e78151ffdacd5b962941dedc5d3a3a40df278e5444e871530bfbc1e73f0a52
3
+ size 4274688
DeepFilterNet3.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "213E2D10-59DA-40BC-8840-AF799E9C6E12": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Specification",
7
+ "name": "model.mlmodel",
8
+ "path": "com.apple.CoreML/model.mlmodel"
9
+ },
10
+ "5B78B7F6-775F-494E-A458-CF7E68B852F5": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Weights",
13
+ "name": "weights",
14
+ "path": "com.apple.CoreML/weights"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "213E2D10-59DA-40BC-8840-AF799E9C6E12"
18
+ }
README.md ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ tags:
4
+ - speech-enhancement
5
+ - denoising
6
+ - coreml
7
+ - apple-silicon
8
+ - deepfilternet
9
+ - streaming
10
+ base_model: Rikorose/DeepFilterNet3
11
+ library_name: coreml
12
+ pipeline_tag: audio-to-audio
13
+ ---
14
+
15
+ # DeepFilterNet3 — Streaming CoreML (GRU state I/O)
16
+
17
+ Same DeepFilterNet3 Neural Engine model as
18
+ [`aufklarer/DeepFilterNet3-CoreML`](https://huggingface.co/aufklarer/DeepFilterNet3-CoreML),
19
+ re-exported with the three SqueezedGRU hidden states as **explicit inputs and
20
+ outputs**. Carrying those states across blocks gives glitch-free live
21
+ denoising (no GRU re-warm at every chunk boundary).
22
+
23
+ ## I/O
24
+
25
+ | Name | Shape | Role |
26
+ |------|-------|------|
27
+ | `feat_erb` | `[1, 1, T, 32]` | ERB features (T = 1…6000) |
28
+ | `feat_spec` | `[1, 2, T, 96]` | Spec features (real/imag) |
29
+ | `h_enc` | `[1, 1, 256]` | Encoder GRU state in |
30
+ | `h_erb` | `[2, 1, 256]` | ERB-decoder GRU state in |
31
+ | `h_df` | `[2, 1, 256]` | DF-decoder GRU state in |
32
+ | `erb_mask` | `[1, 1, T, 32]` | ERB gain mask |
33
+ | `df_coefs` | `[1, 5, T, 96, 2]` | Deep-filter coefficients |
34
+ | `h_enc_out` / `h_erb_out` / `h_df_out` | same as inputs | Updated GRU states |
35
+
36
+ Pass zeros for the first block; feed each `*_out` back as the next block's
37
+ input. STFT / ERB / iSTFT stay on CPU (same `auxiliary.npz` as the stock pack).
38
+
39
+ ## Files
40
+
41
+ | File | Description |
42
+ |------|-------------|
43
+ | `DeepFilterNet3.mlmodelc` | Pre-compiled CoreML (ANE) |
44
+ | `DeepFilterNet3.mlpackage` | Source package |
45
+ | `auxiliary.npz` | ERB filterbank, Vorbis window, norm states |
46
+ | `config.json` | Shapes / metadata |
47
+
48
+ ## License
49
+
50
+ - Weights: Apache-2.0 / MIT (Rikorose/DeepFilterNet3)
51
+ - Conversion: Apache-2.0
auxiliary.npz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:332f9e9c4ee639e9edd61b27a873e84270b1aab1355c728b97efe7bb1d1563a1
3
+ size 128774
config.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_type": "deepfilternet3-streaming",
3
+ "base_model": "Rikorose/DeepFilterNet3",
4
+ "sample_rate": 48000,
5
+ "fft_size": 960,
6
+ "hop_size": 480,
7
+ "erb_bands": 32,
8
+ "df_bins": 96,
9
+ "df_order": 5,
10
+ "gru_states": {
11
+ "h_enc": [
12
+ 1,
13
+ 1,
14
+ 256
15
+ ],
16
+ "h_erb": [
17
+ 2,
18
+ 1,
19
+ 256
20
+ ],
21
+ "h_df": [
22
+ 2,
23
+ 1,
24
+ 256
25
+ ]
26
+ },
27
+ "inputs": [
28
+ "feat_erb",
29
+ "feat_spec",
30
+ "h_enc",
31
+ "h_erb",
32
+ "h_df"
33
+ ],
34
+ "outputs": [
35
+ "erb_mask",
36
+ "df_coefs",
37
+ "h_enc_out",
38
+ "h_erb_out",
39
+ "h_df_out"
40
+ ]
41
+ }