alexwengg commited on
Commit
d4a719e
Β·
verified Β·
1 Parent(s): 41217ea

Upload 14 files

Browse files
Flow-N250-fp16.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:284d3e102c55d68802a44985f987e70546706cc3331506a7919610672a0c02e9
3
+ size 243
Flow-N250-fp16.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:26bb56ba0063c0938eb7329bb264d50ce9a23a88a54ddf7644bc6688d636ad8c
3
+ size 491
Flow-N250-fp16.mlmodelc/metadata.json ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Float16",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32 1 Γ— 80 Γ— 500)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 80, 500]",
13
+ "name" : "mel",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Int32",
20
+ "formattedType" : "MultiArray (Int32 1)",
21
+ "shortDescription" : "",
22
+ "shape" : "[1]",
23
+ "name" : "num_prompt_mel",
24
+ "type" : "MultiArray"
25
+ }
26
+ ],
27
+ "modelParameters" : [
28
+
29
+ ],
30
+ "specificationVersion" : 8,
31
+ "mlProgramOperationTypeHistogram" : {
32
+ "Ios17.mul" : 2481,
33
+ "Ios17.sub" : 10,
34
+ "Ios16.softplus" : 20,
35
+ "Ios17.reshape" : 1762,
36
+ "Ios16.softmax" : 220,
37
+ "Ios17.matmul" : 440,
38
+ "Ios17.transpose" : 907,
39
+ "Ios17.maximum" : 1,
40
+ "Split" : 680,
41
+ "Select" : 1,
42
+ "Ios17.expandDims" : 1341,
43
+ "Ios17.add" : 1802,
44
+ "Tile" : 3,
45
+ "Ios17.sliceByIndex" : 880,
46
+ "Ios17.squeeze" : 880,
47
+ "Ios17.gather" : 1,
48
+ "Pad" : 22,
49
+ "Ios17.layerNorm" : 450,
50
+ "Ios16.silu" : 20,
51
+ "Ios17.conv" : 22,
52
+ "Ios17.clip" : 1,
53
+ "Ios17.cast" : 447,
54
+ "Ios17.realDiv" : 1,
55
+ "Ios17.linear" : 1581,
56
+ "Ios17.leakyRelu" : 1,
57
+ "Ios17.concat" : 462,
58
+ "Ios17.greaterEqual" : 1,
59
+ "Ios17.tanh" : 20,
60
+ "Stack" : 440,
61
+ "Ios16.gelu" : 220,
62
+ "Ios16.reduceL2Norm" : 1
63
+ },
64
+ "computePrecision" : "Mixed (Float16, Float32, Int16, Int32)",
65
+ "isUpdatable" : "0",
66
+ "stateSchema" : [
67
+
68
+ ],
69
+ "availability" : {
70
+ "macOS" : "14.0",
71
+ "tvOS" : "17.0",
72
+ "visionOS" : "1.0",
73
+ "watchOS" : "10.0",
74
+ "iOS" : "17.0",
75
+ "macCatalyst" : "17.0"
76
+ },
77
+ "modelType" : {
78
+ "name" : "MLModelType_mlProgram"
79
+ },
80
+ "userDefinedMetadata" : {
81
+ "com.github.apple.coremltools.conversion_date" : "2026-04-21",
82
+ "com.github.apple.coremltools.source" : "torch==2.11.0",
83
+ "com.github.apple.coremltools.version" : "9.0",
84
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
85
+ },
86
+ "inputSchema" : [
87
+ {
88
+ "hasShapeFlexibility" : "0",
89
+ "isOptional" : "0",
90
+ "dataType" : "Int32",
91
+ "formattedType" : "MultiArray (Int32 1 Γ— 250)",
92
+ "shortDescription" : "",
93
+ "shape" : "[1, 250]",
94
+ "name" : "token_total",
95
+ "type" : "MultiArray"
96
+ },
97
+ {
98
+ "hasShapeFlexibility" : "0",
99
+ "isOptional" : "0",
100
+ "dataType" : "Int32",
101
+ "formattedType" : "MultiArray (Int32 1)",
102
+ "shortDescription" : "",
103
+ "shape" : "[1]",
104
+ "name" : "num_prompt_tokens",
105
+ "type" : "MultiArray"
106
+ },
107
+ {
108
+ "hasShapeFlexibility" : "0",
109
+ "isOptional" : "0",
110
+ "dataType" : "Float32",
111
+ "formattedType" : "MultiArray (Float32 1 Γ— 500 Γ— 80)",
112
+ "shortDescription" : "",
113
+ "shape" : "[1, 500, 80]",
114
+ "name" : "prompt_feat",
115
+ "type" : "MultiArray"
116
+ },
117
+ {
118
+ "hasShapeFlexibility" : "0",
119
+ "isOptional" : "0",
120
+ "dataType" : "Float32",
121
+ "formattedType" : "MultiArray (Float32 1 Γ— 192)",
122
+ "shortDescription" : "",
123
+ "shape" : "[1, 192]",
124
+ "name" : "embedding",
125
+ "type" : "MultiArray"
126
+ }
127
+ ],
128
+ "generatedClassName" : "Flow_N250_fp16",
129
+ "method" : "predict"
130
+ }
131
+ ]
Flow-N250-fp16.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
Flow-N250-fp16.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8ff4749144aecc55b175d7c1dcfa6f1d719c2b9a5b70fea76a1d3e7691b1ef30
3
+ size 664579200
Flow-N250-fp16.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2fd2cb06bffd826546757e496e2b4800b77af50bd61bc42c81634361eec4a793
3
+ size 4628237
Flow-N250-fp16.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:8ff4749144aecc55b175d7c1dcfa6f1d719c2b9a5b70fea76a1d3e7691b1ef30
3
+ size 664579200
Flow-N250-fp16.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "12143FB2-1600-4F9F-943E-3D1360C0B1D5": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Specification",
7
+ "name": "model.mlmodel",
8
+ "path": "com.apple.CoreML/model.mlmodel"
9
+ },
10
+ "FA7ED383-45E5-444D-B341-92A0A4649791": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Weights",
13
+ "name": "weights",
14
+ "path": "com.apple.CoreML/weights"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "12143FB2-1600-4F9F-943E-3D1360C0B1D5"
18
+ }
README.md CHANGED
@@ -35,7 +35,7 @@ load either; `.mlmodelc` skips the one-time compile step on first use
35
  |---|---|---|---|
36
  | `LLM-Prefill-T256-M768-fp16` | CPU + ANE | Qwen2-0.5B prefill, 256-token context, 768-slot KV cache | fp16 |
37
  | `LLM-Decode-M768-fp16` | CPU + ANE | Single-step AR decode, 768-slot KV cache, 24 layers Γ— 2 KV heads Γ— 64 dim | fp16 |
38
- | `Flow-N250-fp32` | CPU only | Speech-token β†’ mel (80-bin, 24 kHz), N_total=250 | fp32 (fp16 NaNs on fused LayerNorm) |
39
  | `HiFT-T500-fp16` | CPU + ANE | Mel β†’ 24 kHz PCM, T=500 frames | fp16 |
40
 
41
  Total disk footprint (`.mlmodelc` + `.mlpackage` + runtime tables): ~6.6 GB on
@@ -51,11 +51,14 @@ disk. If you only need one format, delete the other after download.
51
  - `speech_embedding-fp16.safetensors` β€” 12 MB. CosyVoice3 `speech_embedding`
52
  table (6761 Γ— 896 fp16); row-lookup per decoded speech token.
53
 
54
- `voices/`
55
- - `cosyvoice3-default-zh.safetensors` + `.json` β€” default zero-shot voice
56
- bundle extracted from CosyVoice upstream `zero_shot_prompt.wav`
57
- (utterance: "εΈŒζœ›δ½ δ»₯εŽθƒ½ε€Ÿεšηš„ζ―”ζˆ‘θΏ˜ε₯½ε‘¦γ€‚", N_speech = 87).
58
- Schema documented in the voices repo README.
 
 
 
59
 
60
  `tokenizer/`
61
  - `vocab.json` + `merges.txt` + `tokenizer_config.json` β€” stock Qwen2 BPE
 
35
  |---|---|---|---|
36
  | `LLM-Prefill-T256-M768-fp16` | CPU + ANE | Qwen2-0.5B prefill, 256-token context, 768-slot KV cache | fp16 |
37
  | `LLM-Decode-M768-fp16` | CPU + ANE | Single-step AR decode, 768-slot KV cache, 24 layers Γ— 2 KV heads Γ— 64 dim | fp16 |
38
+ | `Flow-N250-fp16` | CPU + GPU | Speech-token β†’ mel (80-bin, 24 kHz), N_total=250 | fp16 (pure CPU overflows fused LayerNorm β†’ NaN; ANE refuses to compile; GPU path uses fp32 accumulators internally and is stable) |
39
  | `HiFT-T500-fp16` | CPU + ANE | Mel β†’ 24 kHz PCM, T=500 frames | fp16 |
40
 
41
  Total disk footprint (`.mlmodelc` + `.mlpackage` + runtime tables): ~6.6 GB on
 
51
  - `speech_embedding-fp16.safetensors` β€” 12 MB. CosyVoice3 `speech_embedding`
52
  table (6761 Γ— 896 fp16); row-lookup per decoded speech token.
53
 
54
+ `voices/` β€” 11 zero-shot voice bundles (~1 MB total)
55
+ - `cosyvoice3-default-zh.safetensors` β€” default voice from CosyVoice upstream
56
+ `zero_shot_prompt.wav` (female, εΈŒζœ›δ½ δ»₯εŽθƒ½ε€Ÿεšηš„ζ―”ζˆ‘θΏ˜ε₯½ε‘¦γ€‚, N_speech = 87).
57
+ - `aishell3-zh-SSB*.safetensors` β€” 10 AISHELL-3 speakers bootstrapped via
58
+ `verify/bootstrap_aishell3_voices.py` (5 female + 5 male, north + south
59
+ accents). See `aishell3-bootstrap.json` for per-voice provenance.
60
+ - Each `.safetensors` ships with a `.json` prompt-text sidecar and follows the
61
+ schema documented in the companion `cosyvoice3-voices-zh` repo.
62
 
63
  `tokenizer/`
64
  - `vocab.json` + `merges.txt` + `tokenizer_config.json` β€” stock Qwen2 BPE
manifest.json CHANGED
@@ -10,7 +10,7 @@
10
  "target_platform": "Apple Silicon (M-series)",
11
  "min_os": "macOS 14 / iOS 17",
12
  "neural_engine": ["LLM-Prefill", "LLM-Decode", "HiFT"],
13
- "cpu_only": ["Flow"]
14
  },
15
  "model_graph": {
16
  "llm_hidden_dim": 896,
@@ -72,25 +72,24 @@
72
  }
73
  },
74
  {
75
- "name": "Flow-N250-fp32",
76
  "paths": {
77
- "mlpackage": "Flow-N250-fp32.mlpackage",
78
- "mlmodelc": "Flow-N250-fp32.mlmodelc"
79
  },
80
- "dtype": "fp32",
81
- "compute_units": "cpuOnly",
82
- "purpose": "Speech tokens -> 80-bin log-mel @ 24 kHz. fp16 produces NaNs on fused LayerNorm.",
83
- "size_bytes": 1333084160,
84
  "inputs": {
85
  "token_total": "[1, 250] int32 (prompt_ids || new_ids, right-padded)",
86
  "num_prompt_tokens": "[1] int32",
87
- "num_new_tokens": "[1] int32",
88
  "prompt_feat": "[1, 500, 80] fp32 (right-padded)",
89
- "num_prompt_mel": "[1] int32",
90
  "embedding": "[1, 192] fp32 (CAMPPlus speaker embedding)"
91
  },
92
  "outputs": {
93
- "mel": "[1, 80, 500] fp32 (full buffer; slice to num_prompt_mel..num_prompt_mel+2*N_new)"
 
94
  }
95
  },
96
  {
 
10
  "target_platform": "Apple Silicon (M-series)",
11
  "min_os": "macOS 14 / iOS 17",
12
  "neural_engine": ["LLM-Prefill", "LLM-Decode", "HiFT"],
13
+ "cpu_and_gpu": ["Flow"]
14
  },
15
  "model_graph": {
16
  "llm_hidden_dim": 896,
 
72
  }
73
  },
74
  {
75
+ "name": "Flow-N250-fp16",
76
  "paths": {
77
+ "mlpackage": "Flow-N250-fp16.mlpackage",
78
+ "mlmodelc": "Flow-N250-fp16.mlmodelc"
79
  },
80
+ "dtype": "fp16",
81
+ "compute_units": "cpuAndGPU",
82
+ "purpose": "Speech tokens -> 80-bin log-mel @ 24 kHz. Must run with cpuAndGPU: pure CPU overflows the fused LayerNorm and produces NaNs; ANE refuses to compile this graph (ANECCompile fails). GPU path uses fp32 accumulators internally and is stable + ~3x faster than the previous fp32/cpuOnly shipping config.",
83
+ "size_bytes": 669208054,
84
  "inputs": {
85
  "token_total": "[1, 250] int32 (prompt_ids || new_ids, right-padded)",
86
  "num_prompt_tokens": "[1] int32",
 
87
  "prompt_feat": "[1, 500, 80] fp32 (right-padded)",
 
88
  "embedding": "[1, 192] fp32 (CAMPPlus speaker embedding)"
89
  },
90
  "outputs": {
91
+ "mel": "[1, 80, 500] fp32 (full buffer; slice to num_prompt_mel..num_prompt_mel+2*N_new)",
92
+ "num_prompt_mel": "[1] int32"
93
  }
94
  },
95
  {