spybyscript commited on
Commit
13be636
·
verified ·
1 Parent(s): 6b84e6d

Add Core ML and Core AI bundles of v2-20261005

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +5 -0
  2. README.md +24 -17
  3. SHA256SUMS.json +230 -2
  4. coreai/assets/fixed_references.json +0 -0
  5. coreai/assets/g2p/export_config.json +33 -0
  6. coreai/assets/g2p/language_map.json +47 -0
  7. coreai/assets/g2p/normalization.json +40 -0
  8. coreai/assets/g2p/phoneme_dict.json +9 -0
  9. coreai/assets/g2p/pronunciation_overrides.json +4 -0
  10. coreai/assets/g2p/tokenizer.json +517 -0
  11. coreai/assets/languages.json +30 -0
  12. coreai/assets/phone_vocab.json +111 -0
  13. coreai/assets/voices.json +42 -0
  14. coreai/coreai/duration_predictor.aimodel/main.hash +1 -0
  15. coreai/coreai/duration_predictor.aimodel/main.mlirb +3 -0
  16. coreai/coreai/duration_predictor.aimodel/metadata.json +5 -0
  17. coreai/coreai/g2p.aimodel/main.hash +1 -0
  18. coreai/coreai/g2p.aimodel/main.mlirb +3 -0
  19. coreai/coreai/g2p.aimodel/metadata.json +5 -0
  20. coreai/coreai/vector_context_encoder.aimodel/main.hash +1 -0
  21. coreai/coreai/vector_context_encoder.aimodel/main.mlirb +3 -0
  22. coreai/coreai/vector_context_encoder.aimodel/metadata.json +5 -0
  23. coreai/coreai/vector_estimator.aimodel/main.hash +1 -0
  24. coreai/coreai/vector_estimator.aimodel/main.mlirb +3 -0
  25. coreai/coreai/vector_estimator.aimodel/metadata.json +5 -0
  26. coreai/coreai/vocoder.aimodel/main.hash +1 -0
  27. coreai/coreai/vocoder.aimodel/main.mlirb +3 -0
  28. coreai/coreai/vocoder.aimodel/metadata.json +5 -0
  29. coreai/manifest.json +1003 -0
  30. coreml/assets/fixed_references.json +0 -0
  31. coreml/assets/g2p/export_config.json +33 -0
  32. coreml/assets/g2p/language_map.json +47 -0
  33. coreml/assets/g2p/normalization.json +40 -0
  34. coreml/assets/g2p/phoneme_dict.json +9 -0
  35. coreml/assets/g2p/pronunciation_overrides.json +4 -0
  36. coreml/assets/g2p/tokenizer.json +517 -0
  37. coreml/assets/languages.json +30 -0
  38. coreml/assets/phone_vocab.json +111 -0
  39. coreml/assets/voices.json +42 -0
  40. coreml/coreml/duration_predictor.mlmodelc/analytics/coremldata.bin +3 -0
  41. coreml/coreml/duration_predictor.mlmodelc/coremldata.bin +3 -0
  42. coreml/coreml/duration_predictor.mlmodelc/model.mil +0 -0
  43. coreml/coreml/duration_predictor.mlmodelc/weights/weight.bin +3 -0
  44. coreml/coreml/g2p.mlmodelc/analytics/coremldata.bin +3 -0
  45. coreml/coreml/g2p.mlmodelc/coremldata.bin +3 -0
  46. coreml/coreml/g2p.mlmodelc/model.mil +0 -0
  47. coreml/coreml/g2p.mlmodelc/weights/weight.bin +3 -0
  48. coreml/coreml/vector_context_encoder.mlmodelc/analytics/coremldata.bin +3 -0
  49. coreml/coreml/vector_context_encoder.mlmodelc/coremldata.bin +3 -0
  50. coreml/coreml/vector_context_encoder.mlmodelc/model.mil +267 -0
.gitattributes CHANGED
@@ -35,3 +35,8 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  onnx/onnx/g2p/model.fp32.onnx.data filter=lfs diff=lfs merge=lfs -text
37
  onnx-int8/onnx/g2p/model.fp32.onnx.data filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  onnx/onnx/g2p/model.fp32.onnx.data filter=lfs diff=lfs merge=lfs -text
37
  onnx-int8/onnx/g2p/model.fp32.onnx.data filter=lfs diff=lfs merge=lfs -text
38
+ coreai/coreai/duration_predictor.aimodel/main.mlirb filter=lfs diff=lfs merge=lfs -text
39
+ coreai/coreai/g2p.aimodel/main.mlirb filter=lfs diff=lfs merge=lfs -text
40
+ coreai/coreai/vector_context_encoder.aimodel/main.mlirb filter=lfs diff=lfs merge=lfs -text
41
+ coreai/coreai/vector_estimator.aimodel/main.mlirb filter=lfs diff=lfs merge=lfs -text
42
+ coreai/coreai/vocoder.aimodel/main.mlirb filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -3,12 +3,12 @@ license: apache-2.0
3
  language: [en, es, it, fr, de, vi]
4
  library_name: litert
5
  pipeline_tag: text-to-speech
6
- tags: [text-to-speech, tts, litert, onnx, pytorch, multilingual, expressive-tts, duration-flow, whisper]
7
  ---
8
 
9
  # Scylla's Band v2
10
 
11
- Release **`v2-20261005`**. The [Scylla's Band runtime](https://github.com/lowkeytea/scyllasband) supports this release.
12
 
13
  The model exposes **energy, tension, valence and assertiveness** on **0–4 scales with neutral at 2**, plus **binary whisper**. Combining the controls changes the generated delivery; a request is not a guarantee of a particular perceived emotion or exact external scorer value.
14
 
@@ -23,7 +23,7 @@ python -m scyllasband speak --voice ariadne --language en_us \
23
  --sampler heun --steps 8 -o hello.wav "It is a pleasure to meet you."
24
  ```
25
 
26
- The default download is the LiteRT bundle, installed under `scyllasband/models/litert`. `--flavor onnx` downloads the ONNX Runtime bundle instead (`pip install onnxruntime`). Downloads pin this release tag. The manifest declares graph contract `scyllasband_measured_delivery_v2`; runtimes written for earlier releases cannot run these graphs.
27
 
28
  ## Controls
29
 
@@ -32,27 +32,31 @@ The default download is the LiteRT bundle, installed under `scyllasband/models/l
32
  | Energy, tension, valence, assertiveness | 0–4 or unspecified | 2 each |
33
  | Whisper | on/off or unspecified | off |
34
 
35
- With every control at 2, the default, voices speak in a calm, conversational delivery with a neutral tone. Moving a control away from 2 changes the delivery:
36
 
37
- | Control | Toward 0 | Toward 4 |
38
  | --- | --- | --- |
39
- | Energy | Lower, darker voice with more pauses between phrases | Higher, brighter, more projected voice |
40
  | Tension | Slightly looser and steadier | Tighter, with wider pitch swings |
41
- | Valence | Flatter pitch, a little slower, longer pauses | Livelier pitch, a little quicker, shorter pauses |
42
- | Assertiveness | Hesitant, with longer pauses between phrases | Faster and clipped with few pauses; the strongest control over pace |
43
 
44
- Whisper on gives quieter, breathy speech. Combining the controls gives familiar deliveries:
 
 
 
 
45
 
46
  | Delivery | Settings |
47
  | --- | --- |
48
- | Calm and soft | `energy=1.2,tension=0.8,valence=2.6` |
49
- | Assertive and rapid-fire | `energy=2.6,tension=2.2,assertiveness=3.6` |
50
- | Joyful | `energy=3.2,valence=3.6` |
51
- | Angry | `energy=3.4,tension=3.4,valence=0.8,assertiveness=3.4` |
52
- | Sad | `energy=1,tension=1.6,valence=0.8,assertiveness=1.6` |
53
  | Whispered | `whisper=on` |
54
 
55
- The [voice gallery](https://lowkeytea.github.io/scyllasband/#delivery) plays each of these for all ten voices with the exact settings used. How far a control moves the delivery varies with voice, language and text, so start near 2 and listen as you move toward the extremes.
56
 
57
  `--delivery auto` omits all coordinates. A per-axis `auto` omits just that coordinate; other unspecified fields in a partial request use neutral defaults. Omission is represented by a separate mask, not by the value 2. It is not an automatic text-to-performance planner.
58
 
@@ -86,12 +90,14 @@ All ten have Spanish (`es`), Italian (`it`), French (`fr`), German (`de`) and Vi
86
 
87
  ## Artifacts
88
 
89
- - `litert/`: LiteRT bundle; default download. Transformer and vocoder weights are dynamic-range INT8; each size bucket is a signature of one model file, sharing weights.
 
 
90
  - `onnx/`: ONNX Runtime bundle with dynamic INT8 transformer weights; the vocoder stays in full precision.
91
  - `pytorch/`: duration, vector, adapter/vocoder, autoencoder and G2P checkpoints, with the release configuration assets.
92
  - `SHA256SUMS.json`: published-file hashes.
93
 
94
- Both runtime bundles include the G2P model in a matching precision.
95
 
96
  ## Validation and limitations
97
 
@@ -100,6 +106,7 @@ Release validation separates graph accuracy, frontend/timing behaviour and perce
100
  - Component comparisons against PyTorch during export, and end-to-end comparison of full passages against the PyTorch reference path.
101
  - Quantized bundles compared with full precision on real sentences: identical phonemes, phone durations and generated latents within small tolerances, followed by listening across all ten voices.
102
  - G2P conversions compared with the full-precision G2P on multilingual text.
 
103
 
104
  Listening is decisive; external emotion-score agreement is approximate. Scorer measurements are imperfect supervision and do not establish emotional ground truth. Training audio is not distributed.
105
 
 
3
  language: [en, es, it, fr, de, vi]
4
  library_name: litert
5
  pipeline_tag: text-to-speech
6
+ tags: [text-to-speech, tts, litert, onnx, coreml, coreai, pytorch, multilingual, expressive-tts, duration-flow, whisper]
7
  ---
8
 
9
  # Scylla's Band v2
10
 
11
+ Release **`v2-20261005`**. The [Scylla's Band runtime](https://github.com/lowkeytea/scyllasband) supports this release. Tag `v2-20261005-apple` adds Core ML and Core AI bundles of the same model; the runtime downloads from that tag.
12
 
13
  The model exposes **energy, tension, valence and assertiveness** on **0–4 scales with neutral at 2**, plus **binary whisper**. Combining the controls changes the generated delivery; a request is not a guarantee of a particular perceived emotion or exact external scorer value.
14
 
 
23
  --sampler heun --steps 8 -o hello.wav "It is a pleasure to meet you."
24
  ```
25
 
26
+ The default download is the Core ML bundle on an Apple silicon Mac and the LiteRT bundle elsewhere, installed under `scyllasband/models/<bundle>`. A Mac that can build apps for iOS, iPadOS or visionOS 27 is also offered the Core AI bundle those apps use. `--flavor coreml`, `--flavor coreai`, `--flavor litert` or `--flavor onnx` choose explicitly. Downloads pin a release tag. The manifest declares graph contract `scyllasband_measured_delivery_v2`; runtimes written for earlier releases cannot run these graphs.
27
 
28
  ## Controls
29
 
 
32
  | Energy, tension, valence, assertiveness | 0–4 or unspecified | 2 each |
33
  | Whisper | on/off or unspecified | off |
34
 
35
+ With every control at 2, the default, voices speak in a calm, conversational delivery with a neutral tone. Raising or lowering a control changes the delivery:
36
 
37
+ | Control | Lower | Higher |
38
  | --- | --- | --- |
39
+ | Energy | Lower, darker voice with a few more pauses | Higher, brighter, more projected voice |
40
  | Tension | Slightly looser and steadier | Tighter, with wider pitch swings |
41
+ | Valence | Flatter, more downcast pitch | Livelier pitch, a little quicker, shorter pauses |
42
+ | Assertiveness | More pauses between phrases | Faster and clipped with fewer pauses; the strongest control over pace |
43
 
44
+ Whisper on gives quieter, breathy speech.
45
+
46
+ The model learned delivery mostly from settings between about 1.7 and 2.8 for energy, 1.9 and 3.0 for valence, 1.8 and 2.7 for assertiveness, and 1.0 and 3.1 for tension. The controls are most reliable inside those ranges; further out, voices can sound strained or a style can become ambiguous.
47
+
48
+ Combining the controls gives familiar deliveries:
49
 
50
  | Delivery | Settings |
51
  | --- | --- |
52
+ | Calm and soft | `energy=1.8,tension=1,valence=2.5,assertiveness=2.1` |
53
+ | Assertive and quick | `energy=2.6,tension=2.4,valence=2.1,assertiveness=2.8` |
54
+ | Joyful | `energy=2.7,tension=2.1,valence=3.1,assertiveness=2.3` |
55
+ | Angry | `energy=2.7,tension=3.1,valence=1.3,assertiveness=2.5` |
56
+ | Sad | `energy=1.7,tension=1.7,valence=1.8,assertiveness=2` |
57
  | Whispered | `whisper=on` |
58
 
59
+ Angry takes valence a little below the trained range so that it separates clearly from joyful. These are moderate styles; how strongly each comes through varies with voice, language and text. The [voice gallery](https://lowkeytea.github.io/scyllasband/#delivery) plays each of them for all ten voices.
60
 
61
  `--delivery auto` omits all coordinates. A per-axis `auto` omits just that coordinate; other unspecified fields in a partial request use neutral defaults. Omission is represented by a separate mask, not by the value 2. It is not an automatic text-to-performance planner.
62
 
 
90
 
91
  ## Artifacts
92
 
93
+ - `litert/` (164 MB): LiteRT bundle; default download. Transformer and vocoder weights are dynamic-range INT8; each size bucket is a signature of one model file, sharing weights.
94
+ - `coreai/` (155 MB): Core AI bundle for apps on iOS, iPadOS and visionOS 27 (`.aimodel` assets); it also runs on macOS 27, where the runtime uses the Core ML bundle by default. INT8 weights per output channel with FP16 compute; size buckets are functions of one asset sharing weights. The flow also runs accurately on the Neural Engine (`controls.coreai.neural_engine_assets`), which is the placement for apps that speak in the background; the GPU is the default.
95
+ - `coreml/` (142 MB): Core ML bundle for Apple silicon with iOS 18 / macOS 15 and later (compiled `.mlmodelc` assets), with INT8 weights and FP16 compute; GPU by default, CPU in background apps.
96
  - `onnx/`: ONNX Runtime bundle with dynamic INT8 transformer weights; the vocoder stays in full precision.
97
  - `pytorch/`: duration, vector, adapter/vocoder, autoencoder and G2P checkpoints, with the release configuration assets.
98
  - `SHA256SUMS.json`: published-file hashes.
99
 
100
+ Every runtime bundle includes the G2P model in a matching precision. The Apple bundles also give the G2P narrower input widths (64–512 tokens), so short phrases are converted faster.
101
 
102
  ## Validation and limitations
103
 
 
106
  - Component comparisons against PyTorch during export, and end-to-end comparison of full passages against the PyTorch reference path.
107
  - Quantized bundles compared with full precision on real sentences: identical phonemes, phone durations and generated latents within small tolerances, followed by listening across all ten voices.
108
  - G2P conversions compared with the full-precision G2P on multilingual text.
109
+ - Core ML and Core AI bundles compared with the PyTorch model on every graph and on real passages, on each compute unit they are used with (GPU, CPU, and for Core AI the Neural Engine): identical phonemes apart from two near-tie stress marks also seen in FP16, fewer changed phone durations than the LiteRT bundle, and smaller latent and spectral differences. The Apple exports rewrite three computations into equivalent forms that FP16 and the Neural Engine evaluate exactly (span pooling, the modifier bit decoding, the duration model's combined phone/segment index), and scale the flow's residual stream; in FP32 the rewritten graphs are bit-identical to the trained ones.
110
 
111
  Listening is decisive; external emotion-score agreement is approximate. Scorer measurements are imperfect supervision and do not establish emotional ground truth. Training audio is not distributed.
112
 
SHA256SUMS.json CHANGED
@@ -4,8 +4,236 @@
4
  "bytes": 11357
5
  },
6
  "README.md": {
7
- "sha256": "b7590ee31e834406273b1bf28ea3ee2380aba97f18bf6113d39b60e745add56f",
8
- "bytes": 7158
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  },
10
  "litert/assets/fixed_references.json": {
11
  "sha256": "d3c26e7e90d90fa719254ff1ff05dc4b391cd47231b7556c3c2ed5f63547925b",
 
4
  "bytes": 11357
5
  },
6
  "README.md": {
7
+ "sha256": "b4c317afeaa2544f675f8d48f63c9fa5d809bdc7d7eabeb3b1432ef0fedd4570",
8
+ "bytes": 9251
9
+ },
10
+ "coreai/assets/fixed_references.json": {
11
+ "sha256": "d3c26e7e90d90fa719254ff1ff05dc4b391cd47231b7556c3c2ed5f63547925b",
12
+ "bytes": 1115042
13
+ },
14
+ "coreai/assets/g2p/export_config.json": {
15
+ "sha256": "0ec5ea81f346521f3a5c9c4a90b939c6b5143b1a11cc5e74b9902969db56e568",
16
+ "bytes": 928
17
+ },
18
+ "coreai/assets/g2p/language_map.json": {
19
+ "sha256": "b3db2048b492799f8746b43001e0f7411eb5d359e17cabc6bfce4a7bccbfdd99",
20
+ "bytes": 844
21
+ },
22
+ "coreai/assets/g2p/normalization.json": {
23
+ "sha256": "f9ca4fe4e4eca5e02b6f2874f5da6ede8b44b25c71c3c6ac00f96d7397024de6",
24
+ "bytes": 1090
25
+ },
26
+ "coreai/assets/g2p/phoneme_dict.json": {
27
+ "sha256": "9cfb40b2fd31d7a32351c33f90230062554a4dc0a44e89f722de211d42ed1875",
28
+ "bytes": 93
29
+ },
30
+ "coreai/assets/g2p/pronunciation_overrides.json": {
31
+ "sha256": "a1f311379b76cb44719a2242a93a4046ff5f344cdac613374288234c2817eb59",
32
+ "bytes": 80
33
+ },
34
+ "coreai/assets/g2p/tokenizer.json": {
35
+ "sha256": "4843d57a422b0a6045bbc6fc9a99afa329126a6742ff95ebcefcda660f3ee474",
36
+ "bytes": 7769
37
+ },
38
+ "coreai/assets/languages.json": {
39
+ "sha256": "f2af2233d0a1c0dbb6e6236fd57592d12da84262fdd1a336ead1ee83a657e2ae",
40
+ "bytes": 289
41
+ },
42
+ "coreai/assets/phone_vocab.json": {
43
+ "sha256": "83e6457a69948edbd9a94b404c22fd408c263eb0d0b5acaafa4926e994587721",
44
+ "bytes": 1793
45
+ },
46
+ "coreai/assets/voices.json": {
47
+ "sha256": "db9aa57e3d5f9f34fed283fb8e79f4c38e218647d33bc4a5c71ea3e8338c1a56",
48
+ "bytes": 433
49
+ },
50
+ "coreai/coreai/duration_predictor.aimodel/main.hash": {
51
+ "sha256": "ec1450950c5c92a8567b91acb3999a9d53ebcfae92401c4c9893a3ab780020af",
52
+ "bytes": 32
53
+ },
54
+ "coreai/coreai/duration_predictor.aimodel/main.mlirb": {
55
+ "sha256": "4243d405361c9ebc82a0e233a3cb1bd5d64b5389a96ddd58947f14fb84b3c949",
56
+ "bytes": 10884924
57
+ },
58
+ "coreai/coreai/duration_predictor.aimodel/metadata.json": {
59
+ "sha256": "3b825889dba08f532b2e922b099aff707fdefc53cf86716392f5867f1b667999",
60
+ "bytes": 105
61
+ },
62
+ "coreai/coreai/g2p.aimodel/main.hash": {
63
+ "sha256": "300a60ae5cd565c7207ff5877dfa8427af6868a14fb6ccfa195ca17fe0e50a3f",
64
+ "bytes": 32
65
+ },
66
+ "coreai/coreai/g2p.aimodel/main.mlirb": {
67
+ "sha256": "e7426aa159702a859176420d0c34b493da7d3dd97fa74fdeedb2ee4c4f0dce18",
68
+ "bytes": 28377271
69
+ },
70
+ "coreai/coreai/g2p.aimodel/metadata.json": {
71
+ "sha256": "07542e963b0d178a540fa3a7927bd54ac3050c4ccc959dc38defe42e33fe7066",
72
+ "bytes": 105
73
+ },
74
+ "coreai/coreai/vector_context_encoder.aimodel/main.hash": {
75
+ "sha256": "0dfa623d5496abf0b862e73ed8adc2a4e8bf5f4249b1c209543ca44312cdc5f3",
76
+ "bytes": 32
77
+ },
78
+ "coreai/coreai/vector_context_encoder.aimodel/main.mlirb": {
79
+ "sha256": "9dca40e4aa2ce1cf2099c7c4ee34bbea72f2594d88459210cfa06dfc9592f135",
80
+ "bytes": 8029277
81
+ },
82
+ "coreai/coreai/vector_context_encoder.aimodel/metadata.json": {
83
+ "sha256": "2adcb7092d18dc35b8686fc8b5a6075c09b852ce0353899bc1459cdbbfb3f6ba",
84
+ "bytes": 105
85
+ },
86
+ "coreai/coreai/vector_estimator.aimodel/main.hash": {
87
+ "sha256": "eddcebf2eca499422d841f257a6c270866151ee1b5f082ad375dda29264176c3",
88
+ "bytes": 32
89
+ },
90
+ "coreai/coreai/vector_estimator.aimodel/main.mlirb": {
91
+ "sha256": "4dc8e41c5c9de01f2d3a9fd847a30df8b27ceec9aa0894b235f49181dcd664d2",
92
+ "bytes": 63149068
93
+ },
94
+ "coreai/coreai/vector_estimator.aimodel/metadata.json": {
95
+ "sha256": "e90fa086d07ef39797bce9b6d6c82429d84b17a5ebb77380d71d94d44eb630f7",
96
+ "bytes": 105
97
+ },
98
+ "coreai/coreai/vocoder.aimodel/main.hash": {
99
+ "sha256": "62fae3f0d6ca6e5cb648e1c54d47c243d919bdb9e93e89e53f786eb318f90003",
100
+ "bytes": 32
101
+ },
102
+ "coreai/coreai/vocoder.aimodel/main.mlirb": {
103
+ "sha256": "0e0d07b91327322c55da5081c7e3301565e92c5298dd9a5dfb74b71ee6074669",
104
+ "bytes": 43811030
105
+ },
106
+ "coreai/coreai/vocoder.aimodel/metadata.json": {
107
+ "sha256": "d1169c91caecc862135efebf9a832fd956459929050ca29415db3e41197ef6b2",
108
+ "bytes": 105
109
+ },
110
+ "coreai/manifest.json": {
111
+ "sha256": "a2a3b2c822673e98ae44af5280ab3b71039609ea913d1c50392faf37ed97c19d",
112
+ "bytes": 21685
113
+ },
114
+ "coreml/assets/fixed_references.json": {
115
+ "sha256": "d3c26e7e90d90fa719254ff1ff05dc4b391cd47231b7556c3c2ed5f63547925b",
116
+ "bytes": 1115042
117
+ },
118
+ "coreml/assets/g2p/export_config.json": {
119
+ "sha256": "0ec5ea81f346521f3a5c9c4a90b939c6b5143b1a11cc5e74b9902969db56e568",
120
+ "bytes": 928
121
+ },
122
+ "coreml/assets/g2p/language_map.json": {
123
+ "sha256": "b3db2048b492799f8746b43001e0f7411eb5d359e17cabc6bfce4a7bccbfdd99",
124
+ "bytes": 844
125
+ },
126
+ "coreml/assets/g2p/normalization.json": {
127
+ "sha256": "f9ca4fe4e4eca5e02b6f2874f5da6ede8b44b25c71c3c6ac00f96d7397024de6",
128
+ "bytes": 1090
129
+ },
130
+ "coreml/assets/g2p/phoneme_dict.json": {
131
+ "sha256": "9cfb40b2fd31d7a32351c33f90230062554a4dc0a44e89f722de211d42ed1875",
132
+ "bytes": 93
133
+ },
134
+ "coreml/assets/g2p/pronunciation_overrides.json": {
135
+ "sha256": "a1f311379b76cb44719a2242a93a4046ff5f344cdac613374288234c2817eb59",
136
+ "bytes": 80
137
+ },
138
+ "coreml/assets/g2p/tokenizer.json": {
139
+ "sha256": "4843d57a422b0a6045bbc6fc9a99afa329126a6742ff95ebcefcda660f3ee474",
140
+ "bytes": 7769
141
+ },
142
+ "coreml/assets/languages.json": {
143
+ "sha256": "f2af2233d0a1c0dbb6e6236fd57592d12da84262fdd1a336ead1ee83a657e2ae",
144
+ "bytes": 289
145
+ },
146
+ "coreml/assets/phone_vocab.json": {
147
+ "sha256": "83e6457a69948edbd9a94b404c22fd408c263eb0d0b5acaafa4926e994587721",
148
+ "bytes": 1793
149
+ },
150
+ "coreml/assets/voices.json": {
151
+ "sha256": "db9aa57e3d5f9f34fed283fb8e79f4c38e218647d33bc4a5c71ea3e8338c1a56",
152
+ "bytes": 433
153
+ },
154
+ "coreml/coreml/duration_predictor.mlmodelc/analytics/coremldata.bin": {
155
+ "sha256": "953e274e93c3abfae6f04977436816dc28223ef61d4e91e4191f67837740a2e8",
156
+ "bytes": 243
157
+ },
158
+ "coreml/coreml/duration_predictor.mlmodelc/coremldata.bin": {
159
+ "sha256": "c090d28d8df68312410867a49963b5fbda00f5883178969df17b1b0c86e7eff2",
160
+ "bytes": 554
161
+ },
162
+ "coreml/coreml/duration_predictor.mlmodelc/model.mil": {
163
+ "sha256": "b342ee3bcc2acb6b8bd0de42bebfc6c3d83b40e5512156fb26f909fa9ae3d608",
164
+ "bytes": 138985
165
+ },
166
+ "coreml/coreml/duration_predictor.mlmodelc/weights/weight.bin": {
167
+ "sha256": "5383e19195d6807cf6632d2c82b51b86aaa947ba51d8042434f73b5039c70ea4",
168
+ "bytes": 10562880
169
+ },
170
+ "coreml/coreml/g2p.mlmodelc/analytics/coremldata.bin": {
171
+ "sha256": "61936fdfe11637e628b2134025bea29d673c98e93ce6f01c05e7b5da124563b8",
172
+ "bytes": 243
173
+ },
174
+ "coreml/coreml/g2p.mlmodelc/coremldata.bin": {
175
+ "sha256": "f5fc8bee0186f33fa14d35a59a58ec3393676d07bdf03802a3836d806662cd03",
176
+ "bytes": 377
177
+ },
178
+ "coreml/coreml/g2p.mlmodelc/model.mil": {
179
+ "sha256": "d464334a231d99b9a3764d50c28657d1720e25eaa45e39fa4daa401bb89452a1",
180
+ "bytes": 388409
181
+ },
182
+ "coreml/coreml/g2p.mlmodelc/weights/weight.bin": {
183
+ "sha256": "045da2991ed2a42ba027aaa6b83813054f410b6eedfdce82f2ab287ec4ca74e2",
184
+ "bytes": 27346752
185
+ },
186
+ "coreml/coreml/vector_context_encoder.mlmodelc/analytics/coremldata.bin": {
187
+ "sha256": "f89405fefad88549b521a819805c5c1781e0c930c03b8f670b1e1539aafe88c6",
188
+ "bytes": 243
189
+ },
190
+ "coreml/coreml/vector_context_encoder.mlmodelc/coremldata.bin": {
191
+ "sha256": "d031d4ef221bc846aec129114aec7366fcb6126dacae44c24c4b344c54dc6c5a",
192
+ "bytes": 476
193
+ },
194
+ "coreml/coreml/vector_context_encoder.mlmodelc/model.mil": {
195
+ "sha256": "c3c0df163512f0ed8ab4dbb927054f2cb627980c734419bd96e341540660d372",
196
+ "bytes": 44809
197
+ },
198
+ "coreml/coreml/vector_context_encoder.mlmodelc/weights/weight.bin": {
199
+ "sha256": "7120be9d216af8b1021ad92a4d3d0d136881d55e48debfb348197f12da2a21d6",
200
+ "bytes": 7572352
201
+ },
202
+ "coreml/coreml/vector_estimator.mlmodelc/analytics/coremldata.bin": {
203
+ "sha256": "4cd08db9de17f4e62caab8acf50c3c28909c28b945acb105f35e45820366621a",
204
+ "bytes": 243
205
+ },
206
+ "coreml/coreml/vector_estimator.mlmodelc/coremldata.bin": {
207
+ "sha256": "d22410a5a41fc0aae79224588c2da505cd4abae60526d06fd989749001741762",
208
+ "bytes": 3647
209
+ },
210
+ "coreml/coreml/vector_estimator.mlmodelc/model.mil": {
211
+ "sha256": "48c7230b2cee7088f5431117ea54758e6a37e5f55faa8cdea3aa7fdd34010831",
212
+ "bytes": 1469007
213
+ },
214
+ "coreml/coreml/vector_estimator.mlmodelc/weights/weight.bin": {
215
+ "sha256": "135922d329c47a98942f1ce104c3e62f9ccc6578b6866d57482839172c9bf1be",
216
+ "bytes": 60754048
217
+ },
218
+ "coreml/coreml/vocoder.mlmodelc/analytics/coremldata.bin": {
219
+ "sha256": "c8c3075b62c159b4773c0d721e911570449783db5e493eb53e2a0a78049e717e",
220
+ "bytes": 243
221
+ },
222
+ "coreml/coreml/vocoder.mlmodelc/coremldata.bin": {
223
+ "sha256": "04bf9f9de7edfc6ce58e5928a0a1d6669d09095ebc03cb5ca24dd85a416653df",
224
+ "bytes": 1190
225
+ },
226
+ "coreml/coreml/vocoder.mlmodelc/model.mil": {
227
+ "sha256": "e7b28b62c2ce75b56bb284333542585cf4abe4ebda50ce72322cbea88dcea53c",
228
+ "bytes": 969259
229
+ },
230
+ "coreml/coreml/vocoder.mlmodelc/weights/weight.bin": {
231
+ "sha256": "8d1aa1e85be960d5ad32f751b602c38601bc9517a951be5bd42c991449d3bccc",
232
+ "bytes": 31043584
233
+ },
234
+ "coreml/manifest.json": {
235
+ "sha256": "3519f7fe3c8c98e8672a99451e44ff7ef60ed35317031e82669adbb1b5acf3a0",
236
+ "bytes": 21577
237
  },
238
  "litert/assets/fixed_references.json": {
239
  "sha256": "d3c26e7e90d90fa719254ff1ff05dc4b391cd47231b7556c3c2ed5f63547925b",
coreai/assets/fixed_references.json ADDED
The diff for this file is too large to render. See raw diff
 
coreai/assets/g2p/export_config.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "batch_dynamic": true,
3
+ "format": "scyllasband_g2p",
4
+ "input_granularity": "phrase",
5
+ "languages": [
6
+ "de",
7
+ "en_gb",
8
+ "en_us",
9
+ "es",
10
+ "fr",
11
+ "it",
12
+ "vi"
13
+ ],
14
+ "model_type": "transformer",
15
+ "onnx_export_batch_size": 4,
16
+ "onnx_export_layout": "batch_first",
17
+ "onnx_export_max_batch_size": 256,
18
+ "onnx_exporter": "dynamo",
19
+ "onnx_fp32_model": "model.onnx",
20
+ "onnx_model": "model.onnx",
21
+ "onnx_padded_output": "ctc_blank",
22
+ "onnx_quantization": "none",
23
+ "onnx_quantized_parity_tolerance": 3.0,
24
+ "opset": 18,
25
+ "phoneme_token_mode": "char",
26
+ "phrase_rows_per_language": 200000,
27
+ "preserve_commas": true,
28
+ "punctuation_silence_target": "explicit_silence",
29
+ "release_role": "fp32_bundle_frontend",
30
+ "source_checkpoint": "output/deepphonemizer_multilingual/model_v10_7lang/checkpoints/model_step_250k.pt",
31
+ "training_mix": "phrase_word_chunked_clean",
32
+ "word_rows_per_language": 200000
33
+ }
coreai/assets/g2p/language_map.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "american": "en_us",
3
+ "american_english": "en_us",
4
+ "british": "en_gb",
5
+ "british_english": "en_gb",
6
+ "de": "de",
7
+ "de_de": "de",
8
+ "deu": "de",
9
+ "en": "en_us",
10
+ "en-gb": "en_gb",
11
+ "en-uk": "en_gb",
12
+ "en-us": "en_us",
13
+ "en_gb": "en_gb",
14
+ "en_uk": "en_gb",
15
+ "en_us": "en_us",
16
+ "eng": "en_us",
17
+ "eng_gb": "en_gb",
18
+ "eng_us": "en_us",
19
+ "english": "en_us",
20
+ "english_gb": "en_gb",
21
+ "english_uk": "en_gb",
22
+ "english_us": "en_us",
23
+ "es": "es",
24
+ "es_es": "es",
25
+ "es_mx": "es",
26
+ "fr": "fr",
27
+ "fr_fr": "fr",
28
+ "fra": "fr",
29
+ "fre": "fr",
30
+ "french": "fr",
31
+ "gb": "en_gb",
32
+ "ger": "de",
33
+ "german": "de",
34
+ "it": "it",
35
+ "it_it": "it",
36
+ "ita": "it",
37
+ "italian": "it",
38
+ "spa": "es",
39
+ "spanish": "es",
40
+ "uk": "en_gb",
41
+ "us": "en_us",
42
+ "vi": "vi",
43
+ "vi_hn": "vi",
44
+ "vi_vn": "vi",
45
+ "vie": "vi",
46
+ "vietnamese": "vi"
47
+ }
coreai/assets/g2p/normalization.json ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "contract": {
3
+ "colon_semicolon_classes": "preserved",
4
+ "dot_runs_two_or_more": "ellipsis_three_dots",
5
+ "homogeneous_terminal_runs": "single_mark",
6
+ "lexical_hyphen": "space_no_pause",
7
+ "mixed_question_exclamation": "leading_mark",
8
+ "non_acoustic_modifiers": [
9
+ "stress",
10
+ "length",
11
+ "unicode_combining"
12
+ ],
13
+ "ok_spoken_form": "okay",
14
+ "punctuation_silence_target": "explicit_silence",
15
+ "syntactic_dash": "em_dash_pause",
16
+ "training_phone_source": "espeak",
17
+ "version": "scyllasband_spoken_text_v2_2026_08_05"
18
+ },
19
+ "contract_sha256": "d8fd1b2415d0d100d1c70237a4469117ee6b73d0e4da703e4654c83192779cc4",
20
+ "contract_version": "scyllasband_spoken_text_v2_2026_08_05",
21
+ "expand_currency": true,
22
+ "expand_dates": true,
23
+ "expand_numbers": true,
24
+ "expand_ordinals": true,
25
+ "expand_percentages": true,
26
+ "expand_times": true,
27
+ "languages": [
28
+ "en",
29
+ "en_us",
30
+ "en_gb",
31
+ "es",
32
+ "it",
33
+ "fr",
34
+ "de",
35
+ "vi"
36
+ ],
37
+ "normalize_at_sign": true,
38
+ "normalize_punctuation": true,
39
+ "normalizer": "SpokenTextNormalizer"
40
+ }
coreai/assets/g2p/phoneme_dict.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "de": {},
3
+ "en_gb": {},
4
+ "en_us": {},
5
+ "es": {},
6
+ "fr": {},
7
+ "it": {},
8
+ "vi": {}
9
+ }
coreai/assets/g2p/pronunciation_overrides.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "format": "scyllasband_g2p_pronunciation_overrides_v1",
3
+ "languages": {}
4
+ }
coreai/assets/g2p/tokenizer.json ADDED
@@ -0,0 +1,517 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format": "deepphonemizer_forward_ctc",
3
+ "languages": [
4
+ "de",
5
+ "en_gb",
6
+ "en_us",
7
+ "es",
8
+ "fr",
9
+ "it",
10
+ "vi"
11
+ ],
12
+ "char_repeats": 4,
13
+ "lowercase": true,
14
+ "phoneme_token_mode": "char",
15
+ "text_symbols": {
16
+ "_": 0,
17
+ "<de>": 1,
18
+ "<en_gb>": 2,
19
+ "<en_us>": 3,
20
+ "<es>": 4,
21
+ "<fr>": 5,
22
+ "<it>": 6,
23
+ "<vi>": 7,
24
+ "<end>": 8,
25
+ "\b": 9,
26
+ " ": 10,
27
+ "!": 11,
28
+ "\"": 12,
29
+ "#": 13,
30
+ "$": 14,
31
+ "%": 15,
32
+ "&": 16,
33
+ "'": 17,
34
+ "(": 18,
35
+ ")": 19,
36
+ "*": 20,
37
+ "+": 21,
38
+ ",": 22,
39
+ "-": 23,
40
+ ".": 24,
41
+ "/": 25,
42
+ "0": 26,
43
+ "1": 27,
44
+ "2": 28,
45
+ "3": 29,
46
+ "4": 30,
47
+ "5": 31,
48
+ "6": 32,
49
+ "7": 33,
50
+ "8": 34,
51
+ "9": 35,
52
+ ":": 36,
53
+ ";": 37,
54
+ "<": 38,
55
+ "=": 39,
56
+ ">": 40,
57
+ "?": 41,
58
+ "@": 42,
59
+ "A": 43,
60
+ "B": 44,
61
+ "C": 45,
62
+ "D": 46,
63
+ "E": 47,
64
+ "F": 48,
65
+ "G": 49,
66
+ "H": 50,
67
+ "I": 51,
68
+ "J": 52,
69
+ "K": 53,
70
+ "L": 54,
71
+ "M": 55,
72
+ "N": 56,
73
+ "O": 57,
74
+ "P": 58,
75
+ "Q": 59,
76
+ "R": 60,
77
+ "S": 61,
78
+ "T": 62,
79
+ "U": 63,
80
+ "V": 64,
81
+ "W": 65,
82
+ "X": 66,
83
+ "Y": 67,
84
+ "Z": 68,
85
+ "[": 69,
86
+ "\\": 70,
87
+ "]": 71,
88
+ "^": 72,
89
+ "`": 73,
90
+ "a": 74,
91
+ "b": 75,
92
+ "c": 76,
93
+ "d": 77,
94
+ "e": 78,
95
+ "f": 79,
96
+ "g": 80,
97
+ "h": 81,
98
+ "i": 82,
99
+ "j": 83,
100
+ "k": 84,
101
+ "l": 85,
102
+ "m": 86,
103
+ "n": 87,
104
+ "o": 88,
105
+ "p": 89,
106
+ "q": 90,
107
+ "r": 91,
108
+ "s": 92,
109
+ "t": 93,
110
+ "u": 94,
111
+ "v": 95,
112
+ "w": 96,
113
+ "x": 97,
114
+ "y": 98,
115
+ "z": 99,
116
+ "{": 100,
117
+ "|": 101,
118
+ "}": 102,
119
+ "~": 103,
120
+ "¡": 104,
121
+ "¢": 105,
122
+ "£": 106,
123
+ "¥": 107,
124
+ "§": 108,
125
+ "ª": 109,
126
+ "«": 110,
127
+ "­": 111,
128
+ "®": 112,
129
+ "°": 113,
130
+ "±": 114,
131
+ "²": 115,
132
+ "³": 116,
133
+ "´": 117,
134
+ "¶": 118,
135
+ "·": 119,
136
+ "¹": 120,
137
+ "º": 121,
138
+ "»": 122,
139
+ "¼": 123,
140
+ "½": 124,
141
+ "¾": 125,
142
+ "¿": 126,
143
+ "À": 127,
144
+ "Á": 128,
145
+ "Â": 129,
146
+ "Ä": 130,
147
+ "Å": 131,
148
+ "Æ": 132,
149
+ "Ç": 133,
150
+ "È": 134,
151
+ "É": 135,
152
+ "Ê": 136,
153
+ "Í": 137,
154
+ "Ï": 138,
155
+ "Ñ": 139,
156
+ "Ó": 140,
157
+ "Ô": 141,
158
+ "Ö": 142,
159
+ "×": 143,
160
+ "Ù": 144,
161
+ "Ú": 145,
162
+ "Ü": 146,
163
+ "Ý": 147,
164
+ "Þ": 148,
165
+ "ß": 149,
166
+ "à": 150,
167
+ "á": 151,
168
+ "â": 152,
169
+ "ã": 153,
170
+ "ä": 154,
171
+ "å": 155,
172
+ "æ": 156,
173
+ "ç": 157,
174
+ "è": 158,
175
+ "é": 159,
176
+ "ê": 160,
177
+ "ë": 161,
178
+ "ì": 162,
179
+ "í": 163,
180
+ "î": 164,
181
+ "ï": 165,
182
+ "ð": 166,
183
+ "ñ": 167,
184
+ "ò": 168,
185
+ "ó": 169,
186
+ "ô": 170,
187
+ "õ": 171,
188
+ "ö": 172,
189
+ "ø": 173,
190
+ "ù": 174,
191
+ "ú": 175,
192
+ "û": 176,
193
+ "ü": 177,
194
+ "ý": 178,
195
+ "þ": 179,
196
+ "ÿ": 180,
197
+ "ā": 181,
198
+ "Ă": 182,
199
+ "ă": 183,
200
+ "ą": 184,
201
+ "ć": 185,
202
+ "č": 186,
203
+ "Đ": 187,
204
+ "đ": 188,
205
+ "ē": 189,
206
+ "ė": 190,
207
+ "ę": 191,
208
+ "ğ": 192,
209
+ "ġ": 193,
210
+ "ĩ": 194,
211
+ "ī": 195,
212
+ "ļ": 196,
213
+ "ł": 197,
214
+ "ń": 198,
215
+ "Ō": 199,
216
+ "ō": 200,
217
+ "Œ": 201,
218
+ "œ": 202,
219
+ "ŕ": 203,
220
+ "ś": 204,
221
+ "ş": 205,
222
+ "š": 206,
223
+ "ŧ": 207,
224
+ "ũ": 208,
225
+ "ū": 209,
226
+ "ŭ": 210,
227
+ "ů": 211,
228
+ "ű": 212,
229
+ "ż": 213,
230
+ "Ž": 214,
231
+ "ž": 215,
232
+ "ſ": 216,
233
+ "Ơ": 217,
234
+ "ơ": 218,
235
+ "Ư": 219,
236
+ "ư": 220,
237
+ "ǁ": 221,
238
+ "ǂ": 222,
239
+ "ǐ": 223,
240
+ "ǘ": 224,
241
+ "ǧ": 225,
242
+ "ș": 226,
243
+ "Ȝ": 227,
244
+ "ȝ": 228,
245
+ "ȟ": 229,
246
+ "ɛ": 230,
247
+ "ʰ": 231,
248
+ "ˆ": 232,
249
+ "ˈ": 233,
250
+ "ˢ": 234,
251
+ "̃": 235,
252
+ "̍": 236,
253
+ "̣": 237,
254
+ "̱": 238,
255
+ "͈": 239,
256
+ "α": 240,
257
+ "β": 241,
258
+ "γ": 242,
259
+ "δ": 243,
260
+ "ε": 244,
261
+ "η": 245,
262
+ "κ": 246,
263
+ "μ": 247,
264
+ "ξ": 248,
265
+ "π": 249,
266
+ "ς": 250,
267
+ "σ": 251,
268
+ "χ": 252,
269
+ "ψ": 253,
270
+ "а": 254,
271
+ "д": 255,
272
+ "е": 256,
273
+ "з": 257,
274
+ "и": 258,
275
+ "к": 259,
276
+ "л": 260,
277
+ "о": 261,
278
+ "п": 262,
279
+ "р": 263,
280
+ "с": 264,
281
+ "т": 265,
282
+ "ч": 266,
283
+ "ь": 267,
284
+ "ง": 268,
285
+ "ย": 269,
286
+ "า": 270,
287
+ "่": 271,
288
+ "ည": 272,
289
+ "လ": 273,
290
+ "း": 274,
291
+ "်": 275,
292
+ "ᵈ": 276,
293
+ "ᵗ": 277,
294
+ "ḅ": 278,
295
+ "ḍ": 279,
296
+ "ḳ": 280,
297
+ "ṅ": 281,
298
+ "Ṭ": 282,
299
+ "ẓ": 283,
300
+ "ạ": 284,
301
+ "Ả": 285,
302
+ "ả": 286,
303
+ "Ấ": 287,
304
+ "ấ": 288,
305
+ "ầ": 289,
306
+ "ẩ": 290,
307
+ "ẫ": 291,
308
+ "ậ": 292,
309
+ "ắ": 293,
310
+ "ằ": 294,
311
+ "ẳ": 295,
312
+ "ẵ": 296,
313
+ "ặ": 297,
314
+ "ẹ": 298,
315
+ "ẻ": 299,
316
+ "ẽ": 300,
317
+ "Ế": 301,
318
+ "ế": 302,
319
+ "Ề": 303,
320
+ "ề": 304,
321
+ "ể": 305,
322
+ "ễ": 306,
323
+ "ệ": 307,
324
+ "ỉ": 308,
325
+ "ị": 309,
326
+ "ọ": 310,
327
+ "ỏ": 311,
328
+ "Ố": 312,
329
+ "ố": 313,
330
+ "Ồ": 314,
331
+ "ồ": 315,
332
+ "Ổ": 316,
333
+ "ổ": 317,
334
+ "ỗ": 318,
335
+ "Ộ": 319,
336
+ "ộ": 320,
337
+ "ớ": 321,
338
+ "Ờ": 322,
339
+ "ờ": 323,
340
+ "Ở": 324,
341
+ "ở": 325,
342
+ "ỡ": 326,
343
+ "ợ": 327,
344
+ "ụ": 328,
345
+ "ủ": 329,
346
+ "Ứ": 330,
347
+ "ứ": 331,
348
+ "Ừ": 332,
349
+ "ừ": 333,
350
+ "ử": 334,
351
+ "ữ": 335,
352
+ "ự": 336,
353
+ "ỳ": 337,
354
+ "ỵ": 338,
355
+ "Ỷ": 339,
356
+ "ỷ": 340,
357
+ "ỹ": 341,
358
+ "ὖ": 342,
359
+ "ὼ": 343,
360
+ "ῆ": 344,
361
+ "​": 345,
362
+ "‐": 346,
363
+ "—": 347,
364
+ "―": 348,
365
+ "†": 349,
366
+ "•": 350,
367
+ "…": 351,
368
+ "‰": 352,
369
+ "′": 353,
370
+ "″": 354,
371
+ "⁄": 355,
372
+ "⁷": 356,
373
+ "⁻": 357,
374
+ "₀": 358,
375
+ "₁": 359,
376
+ "₂": 360,
377
+ "₃": 361,
378
+ "₄": 362,
379
+ "₅": 363,
380
+ "₆": 364,
381
+ "₇": 365,
382
+ "₈": 366,
383
+ "€": 367,
384
+ "₹": 368,
385
+ "⅓": 369,
386
+ "⅔": 370,
387
+ "⅖": 371,
388
+ "⅙": 372,
389
+ "⅛": 373,
390
+ "⅝": 374,
391
+ "√": 375,
392
+ "│": 376,
393
+ "♦": 377,
394
+ "⚓": 378,
395
+ "✈": 379,
396
+ "✠": 380,
397
+ "✨": 381,
398
+ "⟙": 382,
399
+ "⸺": 383,
400
+ "。": 384,
401
+ "〈": 385,
402
+ "な": 386,
403
+ "三": 387,
404
+ "次": 388,
405
+ "肿": 389,
406
+ "臃": 390,
407
+ "구": 391,
408
+ "로": 392,
409
+ "요": 393,
410
+ "ﷺ": 394,
411
+ "️": 395,
412
+ "𝑥": 396,
413
+ "𝑦": 397,
414
+ "🌊": 398,
415
+ "🌿": 399,
416
+ "💦": 400,
417
+ "💨": 401
418
+ },
419
+ "phoneme_symbols": {
420
+ "0": "_",
421
+ "1": "<de>",
422
+ "2": "<en_gb>",
423
+ "3": "<en_us>",
424
+ "4": "<es>",
425
+ "5": "<fr>",
426
+ "6": "<it>",
427
+ "7": "<vi>",
428
+ "8": "<end>",
429
+ "9": " ",
430
+ "10": "!",
431
+ "11": ",",
432
+ "12": "-",
433
+ "13": ".",
434
+ "14": "1",
435
+ "15": "2",
436
+ "16": "4",
437
+ "17": "5",
438
+ "18": "6",
439
+ "19": "7",
440
+ "20": ":",
441
+ "21": ";",
442
+ "22": "?",
443
+ "23": "a",
444
+ "24": "b",
445
+ "25": "c",
446
+ "26": "d",
447
+ "27": "e",
448
+ "28": "f",
449
+ "29": "h",
450
+ "30": "i",
451
+ "31": "j",
452
+ "32": "k",
453
+ "33": "l",
454
+ "34": "m",
455
+ "35": "n",
456
+ "36": "o",
457
+ "37": "p",
458
+ "38": "q",
459
+ "39": "r",
460
+ "40": "s",
461
+ "41": "t",
462
+ "42": "u",
463
+ "43": "v",
464
+ "44": "w",
465
+ "45": "x",
466
+ "46": "y",
467
+ "47": "z",
468
+ "48": "«",
469
+ "49": "»",
470
+ "50": "æ",
471
+ "51": "ç",
472
+ "52": "ð",
473
+ "53": "ø",
474
+ "54": "ŋ",
475
+ "55": "œ",
476
+ "56": "ɐ",
477
+ "57": "ɑ",
478
+ "58": "ɒ",
479
+ "59": "ɔ",
480
+ "60": "ɗ",
481
+ "61": "ə",
482
+ "62": "ɚ",
483
+ "63": "ɛ",
484
+ "64": "ɜ",
485
+ "65": "ɟ",
486
+ "66": "ɡ",
487
+ "67": "ɣ",
488
+ "68": "ɨ",
489
+ "69": "ɪ",
490
+ "70": "ɬ",
491
+ "71": "ɯ",
492
+ "72": "ɲ",
493
+ "73": "ɹ",
494
+ "74": "ɾ",
495
+ "75": "ʁ",
496
+ "76": "ʃ",
497
+ "77": "ʊ",
498
+ "78": "ʌ",
499
+ "79": "ʎ",
500
+ "80": "ʐ",
501
+ "81": "ʒ",
502
+ "82": "ʔ",
503
+ "83": "ʝ",
504
+ "84": "ʲ",
505
+ "85": "ˈ",
506
+ "86": "ˌ",
507
+ "87": "ː",
508
+ "88": "̃",
509
+ "89": "̩",
510
+ "90": "̪",
511
+ "91": "β",
512
+ "92": "θ",
513
+ "93": "ᵻ",
514
+ "94": "—",
515
+ "95": "…"
516
+ }
517
+ }
coreai/assets/languages.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "id": "en_us",
4
+ "index": 0
5
+ },
6
+ {
7
+ "id": "en_gb",
8
+ "index": 1
9
+ },
10
+ {
11
+ "id": "es",
12
+ "index": 2
13
+ },
14
+ {
15
+ "id": "it",
16
+ "index": 3
17
+ },
18
+ {
19
+ "id": "fr",
20
+ "index": 4
21
+ },
22
+ {
23
+ "id": "de",
24
+ "index": 5
25
+ },
26
+ {
27
+ "id": "vi",
28
+ "index": 6
29
+ }
30
+ ]
coreai/assets/phone_vocab.json ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "mode": "scyllasband_ipa_phone_symbols",
4
+ "special_tokens": [
5
+ "<pad>",
6
+ "<unk>",
7
+ "<sil>",
8
+ "<pause_comma>",
9
+ "<pause_semicolon>",
10
+ "<pause_colon>",
11
+ "<pause_dash>",
12
+ "<ellipsis>",
13
+ "<end_stmt>",
14
+ "<end_question>",
15
+ "<end_exclaim>",
16
+ "<ctx_sentence_start>",
17
+ "<ctx_continuation>",
18
+ "<ctx_sentence_end>",
19
+ "<ctx_chunk_continue>"
20
+ ],
21
+ "vocab_size": 87,
22
+ "token_to_id": {
23
+ "<pad>": 0,
24
+ "<unk>": 1,
25
+ "<sil>": 2,
26
+ "<pause_comma>": 3,
27
+ "<pause_semicolon>": 4,
28
+ "<pause_colon>": 5,
29
+ "<pause_dash>": 6,
30
+ "<ellipsis>": 7,
31
+ "<end_stmt>": 8,
32
+ "<end_question>": 9,
33
+ "<end_exclaim>": 10,
34
+ "<ctx_sentence_start>": 11,
35
+ "<ctx_continuation>": 12,
36
+ "<ctx_sentence_end>": 13,
37
+ "<ctx_chunk_continue>": 14,
38
+ "1": 15,
39
+ "2": 16,
40
+ "4": 17,
41
+ "5": 18,
42
+ "6": 19,
43
+ "7": 20,
44
+ "a": 21,
45
+ "b": 22,
46
+ "c": 23,
47
+ "d": 24,
48
+ "e": 25,
49
+ "f": 26,
50
+ "h": 27,
51
+ "i": 28,
52
+ "j": 29,
53
+ "k": 30,
54
+ "l": 31,
55
+ "m": 32,
56
+ "n": 33,
57
+ "o": 34,
58
+ "p": 35,
59
+ "r": 36,
60
+ "s": 37,
61
+ "t": 38,
62
+ "u": 39,
63
+ "v": 40,
64
+ "w": 41,
65
+ "x": 42,
66
+ "y": 43,
67
+ "z": 44,
68
+ "æ": 45,
69
+ "ç": 46,
70
+ "ð": 47,
71
+ "ø": 48,
72
+ "ŋ": 49,
73
+ "œ": 50,
74
+ "ɐ": 51,
75
+ "ɑ": 52,
76
+ "ɒ": 53,
77
+ "ɔ": 54,
78
+ "ɗ": 55,
79
+ "ə": 56,
80
+ "ɚ": 57,
81
+ "ɛ": 58,
82
+ "ɜ": 59,
83
+ "ɟ": 60,
84
+ "ɡ": 61,
85
+ "ɣ": 62,
86
+ "ɪ": 63,
87
+ "ɯ": 64,
88
+ "ɲ": 65,
89
+ "ɹ": 66,
90
+ "ɾ": 67,
91
+ "ʁ": 68,
92
+ "ʃ": 69,
93
+ "ʊ": 70,
94
+ "ʌ": 71,
95
+ "ʎ": 72,
96
+ "ʐ": 73,
97
+ "ʒ": 74,
98
+ "ʔ": 75,
99
+ "ʝ": 76,
100
+ "ʲ": 77,
101
+ "ˈ": 78,
102
+ "ˌ": 79,
103
+ "ː": 80,
104
+ "̃": 81,
105
+ "̩": 82,
106
+ "̪": 83,
107
+ "β": 84,
108
+ "θ": 85,
109
+ "ᵻ": 86
110
+ }
111
+ }
coreai/assets/voices.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "id": "ariadne",
4
+ "index": 0
5
+ },
6
+ {
7
+ "id": "felix",
8
+ "index": 1
9
+ },
10
+ {
11
+ "id": "gwen",
12
+ "index": 2
13
+ },
14
+ {
15
+ "id": "ink",
16
+ "index": 3
17
+ },
18
+ {
19
+ "id": "max",
20
+ "index": 4
21
+ },
22
+ {
23
+ "id": "orpheus",
24
+ "index": 5
25
+ },
26
+ {
27
+ "id": "rex",
28
+ "index": 6
29
+ },
30
+ {
31
+ "id": "scylla",
32
+ "index": 7
33
+ },
34
+ {
35
+ "id": "stone",
36
+ "index": 8
37
+ },
38
+ {
39
+ "id": "tuesday",
40
+ "index": 9
41
+ }
42
+ ]
coreai/coreai/duration_predictor.aimodel/main.hash ADDED
@@ -0,0 +1 @@
 
 
1
+ BC�6�����3����KS��m�X�����I
coreai/coreai/duration_predictor.aimodel/main.mlirb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4243d405361c9ebc82a0e233a3cb1bd5d64b5389a96ddd58947f14fb84b3c949
3
+ size 10884924
coreai/coreai/duration_predictor.aimodel/metadata.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "assetVersion" : "2.0",
3
+ "producer" : "coreai-core 1.0.0b3",
4
+ "creationDate" : "20261005T221157Z"
5
+ }
coreai/coreai/g2p.aimodel/main.hash ADDED
@@ -0,0 +1 @@
 
 
1
+ �Bj�Yp*��vB
coreai/coreai/g2p.aimodel/main.mlirb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e7426aa159702a859176420d0c34b493da7d3dd97fa74fdeedb2ee4c4f0dce18
3
+ size 28377271
coreai/coreai/g2p.aimodel/metadata.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "producer" : "coreai-core 1.0.0b3",
3
+ "creationDate" : "20261005T221156Z",
4
+ "assetVersion" : "2.0"
5
+ }
coreai/coreai/vector_context_encoder.aimodel/main.hash ADDED
@@ -0,0 +1 @@
 
 
1
+ ��@�,�� ����4��r�YM�E�Ϡm����5
coreai/coreai/vector_context_encoder.aimodel/main.mlirb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9dca40e4aa2ce1cf2099c7c4ee34bbea72f2594d88459210cfa06dfc9592f135
3
+ size 8029277
coreai/coreai/vector_context_encoder.aimodel/metadata.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "creationDate" : "20261005T221159Z",
3
+ "assetVersion" : "2.0",
4
+ "producer" : "coreai-core 1.0.0b3"
5
+ }
coreai/coreai/vector_estimator.aimodel/main.hash ADDED
@@ -0,0 +1 @@
 
 
1
+ M��\��-:��G�
coreai/coreai/vector_estimator.aimodel/main.mlirb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4dc8e41c5c9de01f2d3a9fd847a30df8b27ceec9aa0894b235f49181dcd664d2
3
+ size 63149068
coreai/coreai/vector_estimator.aimodel/metadata.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "assetVersion" : "2.0",
3
+ "creationDate" : "20261005T221212Z",
4
+ "producer" : "coreai-core 1.0.0b3"
5
+ }
coreai/coreai/vocoder.aimodel/main.hash ADDED
@@ -0,0 +1 @@
 
 
1
+ 
coreai/coreai/vocoder.aimodel/main.mlirb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0e0d07b91327322c55da5081c7e3301565e92c5298dd9a5dfb74b71ee6074669
3
+ size 43811030
coreai/coreai/vocoder.aimodel/metadata.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "creationDate" : "20261005T221220Z",
3
+ "producer" : "coreai-core 1.0.0b3",
4
+ "assetVersion" : "2.0"
5
+ }
coreai/manifest.json ADDED
@@ -0,0 +1,1003 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architecture": "scyllasband-duration-flow",
3
+ "assets": {
4
+ "fixed_delivery_references": "assets/fixed_references.json",
5
+ "g2p_config": "assets/g2p/export_config.json",
6
+ "g2p_language_map": "assets/g2p/language_map.json",
7
+ "g2p_normalization": "assets/g2p/normalization.json",
8
+ "g2p_phoneme_dict": "assets/g2p/phoneme_dict.json",
9
+ "g2p_pronunciation_overrides": "assets/g2p/pronunciation_overrides.json",
10
+ "g2p_tokenizer": "assets/g2p/tokenizer.json",
11
+ "language_index": "assets/languages.json",
12
+ "phone_vocab": "assets/phone_vocab.json",
13
+ "voice_index": "assets/voices.json"
14
+ },
15
+ "audio": {
16
+ "hop_length": 256,
17
+ "latent_dim": 24,
18
+ "latent_hop_length": 512,
19
+ "n_mels": 100,
20
+ "sample_rate": 24000
21
+ },
22
+ "components": {
23
+ "g2p_64": {
24
+ "artifacts": {
25
+ "coreai": {
26
+ "format": "coreai",
27
+ "path": "coreai/g2p.aimodel",
28
+ "function": "g2p_64"
29
+ }
30
+ },
31
+ "inputs": [
32
+ "text"
33
+ ],
34
+ "outputs": [
35
+ "logits"
36
+ ],
37
+ "required": false
38
+ },
39
+ "g2p_128": {
40
+ "artifacts": {
41
+ "coreai": {
42
+ "format": "coreai",
43
+ "path": "coreai/g2p.aimodel",
44
+ "function": "g2p_128"
45
+ }
46
+ },
47
+ "inputs": [
48
+ "text"
49
+ ],
50
+ "outputs": [
51
+ "logits"
52
+ ],
53
+ "required": false
54
+ },
55
+ "g2p_256": {
56
+ "artifacts": {
57
+ "coreai": {
58
+ "format": "coreai",
59
+ "path": "coreai/g2p.aimodel",
60
+ "function": "g2p_256"
61
+ }
62
+ },
63
+ "inputs": [
64
+ "text"
65
+ ],
66
+ "outputs": [
67
+ "logits"
68
+ ],
69
+ "required": false
70
+ },
71
+ "g2p": {
72
+ "artifacts": {
73
+ "coreai": {
74
+ "format": "coreai",
75
+ "path": "coreai/g2p.aimodel",
76
+ "function": "g2p"
77
+ }
78
+ },
79
+ "inputs": [
80
+ "text"
81
+ ],
82
+ "outputs": [
83
+ "logits"
84
+ ],
85
+ "required": true
86
+ },
87
+ "duration_predictor": {
88
+ "artifacts": {
89
+ "coreai": {
90
+ "format": "coreai",
91
+ "path": "coreai/duration_predictor.aimodel",
92
+ "function": "duration_predictor"
93
+ }
94
+ },
95
+ "inputs": [
96
+ "span_phone_ids",
97
+ "span_segment_ids",
98
+ "span_mask",
99
+ "voice_id",
100
+ "language_id",
101
+ "delivery_values",
102
+ "delivery_present"
103
+ ],
104
+ "outputs": [
105
+ "durations"
106
+ ],
107
+ "required": true
108
+ },
109
+ "vector_context_encoder": {
110
+ "artifacts": {
111
+ "coreai": {
112
+ "format": "coreai",
113
+ "path": "coreai/vector_context_encoder.aimodel",
114
+ "function": "vector_context_encoder"
115
+ }
116
+ },
117
+ "inputs": [
118
+ "span_context_phone_ids",
119
+ "span_context_segment_ids",
120
+ "span_context_mask"
121
+ ],
122
+ "outputs": [
123
+ "span_context_hidden"
124
+ ],
125
+ "required": true
126
+ },
127
+ "vector_estimator_128": {
128
+ "artifacts": {
129
+ "coreai": {
130
+ "format": "coreai",
131
+ "path": "coreai/vector_estimator.aimodel",
132
+ "function": "vector_estimator_128"
133
+ }
134
+ },
135
+ "inputs": [
136
+ "noise",
137
+ "time",
138
+ "expanded_phone_ids",
139
+ "voice_id",
140
+ "language_id",
141
+ "delivery_values",
142
+ "delivery_present",
143
+ "latent_mask",
144
+ "span_context_hidden",
145
+ "prefix_latents",
146
+ "prefix_mask",
147
+ "expanded_boundary_event_ids",
148
+ "expanded_modifier_event_ids",
149
+ "expanded_phone_phase",
150
+ "expanded_phone_log_duration",
151
+ "expanded_sentence_type_ids"
152
+ ],
153
+ "outputs": [
154
+ "velocity"
155
+ ],
156
+ "required": false
157
+ },
158
+ "vocoder_128": {
159
+ "artifacts": {
160
+ "coreai": {
161
+ "format": "coreai",
162
+ "path": "coreai/vocoder.aimodel",
163
+ "function": "vocoder_128"
164
+ }
165
+ },
166
+ "inputs": [
167
+ "latents",
168
+ "latent_mask",
169
+ "voice_id",
170
+ "language_id",
171
+ "emotion_id"
172
+ ],
173
+ "outputs": [
174
+ "audio"
175
+ ],
176
+ "required": false
177
+ },
178
+ "vector_estimator_256": {
179
+ "artifacts": {
180
+ "coreai": {
181
+ "format": "coreai",
182
+ "path": "coreai/vector_estimator.aimodel",
183
+ "function": "vector_estimator_256"
184
+ }
185
+ },
186
+ "inputs": [
187
+ "noise",
188
+ "time",
189
+ "expanded_phone_ids",
190
+ "voice_id",
191
+ "language_id",
192
+ "delivery_values",
193
+ "delivery_present",
194
+ "latent_mask",
195
+ "span_context_hidden",
196
+ "prefix_latents",
197
+ "prefix_mask",
198
+ "expanded_boundary_event_ids",
199
+ "expanded_modifier_event_ids",
200
+ "expanded_phone_phase",
201
+ "expanded_phone_log_duration",
202
+ "expanded_sentence_type_ids"
203
+ ],
204
+ "outputs": [
205
+ "velocity"
206
+ ],
207
+ "required": false
208
+ },
209
+ "vocoder_256": {
210
+ "artifacts": {
211
+ "coreai": {
212
+ "format": "coreai",
213
+ "path": "coreai/vocoder.aimodel",
214
+ "function": "vocoder_256"
215
+ }
216
+ },
217
+ "inputs": [
218
+ "latents",
219
+ "latent_mask",
220
+ "voice_id",
221
+ "language_id",
222
+ "emotion_id"
223
+ ],
224
+ "outputs": [
225
+ "audio"
226
+ ],
227
+ "required": false
228
+ },
229
+ "vector_estimator_384": {
230
+ "artifacts": {
231
+ "coreai": {
232
+ "format": "coreai",
233
+ "path": "coreai/vector_estimator.aimodel",
234
+ "function": "vector_estimator_384"
235
+ }
236
+ },
237
+ "inputs": [
238
+ "noise",
239
+ "time",
240
+ "expanded_phone_ids",
241
+ "voice_id",
242
+ "language_id",
243
+ "delivery_values",
244
+ "delivery_present",
245
+ "latent_mask",
246
+ "span_context_hidden",
247
+ "prefix_latents",
248
+ "prefix_mask",
249
+ "expanded_boundary_event_ids",
250
+ "expanded_modifier_event_ids",
251
+ "expanded_phone_phase",
252
+ "expanded_phone_log_duration",
253
+ "expanded_sentence_type_ids"
254
+ ],
255
+ "outputs": [
256
+ "velocity"
257
+ ],
258
+ "required": false
259
+ },
260
+ "vocoder_384": {
261
+ "artifacts": {
262
+ "coreai": {
263
+ "format": "coreai",
264
+ "path": "coreai/vocoder.aimodel",
265
+ "function": "vocoder_384"
266
+ }
267
+ },
268
+ "inputs": [
269
+ "latents",
270
+ "latent_mask",
271
+ "voice_id",
272
+ "language_id",
273
+ "emotion_id"
274
+ ],
275
+ "outputs": [
276
+ "audio"
277
+ ],
278
+ "required": false
279
+ },
280
+ "vector_estimator_512": {
281
+ "artifacts": {
282
+ "coreai": {
283
+ "format": "coreai",
284
+ "path": "coreai/vector_estimator.aimodel",
285
+ "function": "vector_estimator_512"
286
+ }
287
+ },
288
+ "inputs": [
289
+ "noise",
290
+ "time",
291
+ "expanded_phone_ids",
292
+ "voice_id",
293
+ "language_id",
294
+ "delivery_values",
295
+ "delivery_present",
296
+ "latent_mask",
297
+ "span_context_hidden",
298
+ "prefix_latents",
299
+ "prefix_mask",
300
+ "expanded_boundary_event_ids",
301
+ "expanded_modifier_event_ids",
302
+ "expanded_phone_phase",
303
+ "expanded_phone_log_duration",
304
+ "expanded_sentence_type_ids"
305
+ ],
306
+ "outputs": [
307
+ "velocity"
308
+ ],
309
+ "required": false
310
+ },
311
+ "vocoder_512": {
312
+ "artifacts": {
313
+ "coreai": {
314
+ "format": "coreai",
315
+ "path": "coreai/vocoder.aimodel",
316
+ "function": "vocoder_512"
317
+ }
318
+ },
319
+ "inputs": [
320
+ "latents",
321
+ "latent_mask",
322
+ "voice_id",
323
+ "language_id",
324
+ "emotion_id"
325
+ ],
326
+ "outputs": [
327
+ "audio"
328
+ ],
329
+ "required": false
330
+ },
331
+ "vector_estimator_768": {
332
+ "artifacts": {
333
+ "coreai": {
334
+ "format": "coreai",
335
+ "path": "coreai/vector_estimator.aimodel",
336
+ "function": "vector_estimator_768"
337
+ }
338
+ },
339
+ "inputs": [
340
+ "noise",
341
+ "time",
342
+ "expanded_phone_ids",
343
+ "voice_id",
344
+ "language_id",
345
+ "delivery_values",
346
+ "delivery_present",
347
+ "latent_mask",
348
+ "span_context_hidden",
349
+ "prefix_latents",
350
+ "prefix_mask",
351
+ "expanded_boundary_event_ids",
352
+ "expanded_modifier_event_ids",
353
+ "expanded_phone_phase",
354
+ "expanded_phone_log_duration",
355
+ "expanded_sentence_type_ids"
356
+ ],
357
+ "outputs": [
358
+ "velocity"
359
+ ],
360
+ "required": false
361
+ },
362
+ "vocoder_768": {
363
+ "artifacts": {
364
+ "coreai": {
365
+ "format": "coreai",
366
+ "path": "coreai/vocoder.aimodel",
367
+ "function": "vocoder_768"
368
+ }
369
+ },
370
+ "inputs": [
371
+ "latents",
372
+ "latent_mask",
373
+ "voice_id",
374
+ "language_id",
375
+ "emotion_id"
376
+ ],
377
+ "outputs": [
378
+ "audio"
379
+ ],
380
+ "required": false
381
+ },
382
+ "vector_estimator": {
383
+ "artifacts": {
384
+ "coreai": {
385
+ "format": "coreai",
386
+ "path": "coreai/vector_estimator.aimodel",
387
+ "function": "vector_estimator"
388
+ }
389
+ },
390
+ "inputs": [
391
+ "noise",
392
+ "time",
393
+ "expanded_phone_ids",
394
+ "voice_id",
395
+ "language_id",
396
+ "delivery_values",
397
+ "delivery_present",
398
+ "latent_mask",
399
+ "span_context_hidden",
400
+ "prefix_latents",
401
+ "prefix_mask",
402
+ "expanded_boundary_event_ids",
403
+ "expanded_modifier_event_ids",
404
+ "expanded_phone_phase",
405
+ "expanded_phone_log_duration",
406
+ "expanded_sentence_type_ids"
407
+ ],
408
+ "outputs": [
409
+ "velocity"
410
+ ],
411
+ "required": true
412
+ },
413
+ "vocoder": {
414
+ "artifacts": {
415
+ "coreai": {
416
+ "format": "coreai",
417
+ "path": "coreai/vocoder.aimodel",
418
+ "function": "vocoder"
419
+ }
420
+ },
421
+ "inputs": [
422
+ "latents",
423
+ "latent_mask",
424
+ "voice_id",
425
+ "language_id",
426
+ "emotion_id"
427
+ ],
428
+ "outputs": [
429
+ "audio"
430
+ ],
431
+ "required": true
432
+ }
433
+ },
434
+ "contract_version": "1.0.0",
435
+ "controls": {
436
+ "chunk_context": {
437
+ "artificial_continuation_boundaries": [
438
+ "chunk_continue"
439
+ ],
440
+ "artificial_continuation_phone": null,
441
+ "boundary_after_values": [
442
+ "sentence_end",
443
+ "paragraph_end",
444
+ "clause_continue",
445
+ "chunk_continue"
446
+ ],
447
+ "boundary_before_values": [
448
+ "sentence_start",
449
+ "paragraph_start",
450
+ "clause_continue",
451
+ "chunk_continue"
452
+ ],
453
+ "clause_continuation_fallback_phone": "<pause_comma>",
454
+ "conditioning": "boundary_embeddings",
455
+ "context_phone_tokens": {
456
+ "continuation": "<ctx_continuation>",
457
+ "sentence_end": "<ctx_sentence_end>",
458
+ "sentence_start": "<ctx_sentence_start>"
459
+ },
460
+ "default_boundary_after": "sentence_end",
461
+ "default_boundary_before": "sentence_start",
462
+ "emit_context_phone_tokens": false,
463
+ "linguistic_continuation_boundaries": [
464
+ "clause_continue"
465
+ ],
466
+ "schema_version": 2
467
+ },
468
+ "chunking": {
469
+ "shared_split_phone": "<sil>",
470
+ "split_after": [
471
+ "<end_stmt>",
472
+ "<end_question>",
473
+ "<end_exclaim>",
474
+ "<ellipsis>"
475
+ ],
476
+ "unit": "sentence"
477
+ },
478
+ "decoding": {
479
+ "context_frames": 48,
480
+ "mode": "overlap"
481
+ },
482
+ "delivery": {
483
+ "axes": [
484
+ "energy",
485
+ "tension",
486
+ "valence",
487
+ "assertiveness"
488
+ ],
489
+ "default": "neutral",
490
+ "enabled": true,
491
+ "neutral": 2.0,
492
+ "normalization": "(rating-2)/4",
493
+ "presence_mask": true,
494
+ "range": [
495
+ 0.0,
496
+ 4.0
497
+ ],
498
+ "release_id": "v2-20261005",
499
+ "scope": "utterance",
500
+ "timeline_conditioning": false,
501
+ "voice_locales": {
502
+ "ariadne": [
503
+ "de",
504
+ "en_us",
505
+ "es",
506
+ "fr",
507
+ "it",
508
+ "vi"
509
+ ],
510
+ "felix": [
511
+ "de",
512
+ "en_us",
513
+ "es",
514
+ "fr",
515
+ "it",
516
+ "vi"
517
+ ],
518
+ "gwen": [
519
+ "de",
520
+ "en_us",
521
+ "es",
522
+ "fr",
523
+ "it",
524
+ "vi"
525
+ ],
526
+ "ink": [
527
+ "de",
528
+ "en_gb",
529
+ "es",
530
+ "fr",
531
+ "it",
532
+ "vi"
533
+ ],
534
+ "max": [
535
+ "de",
536
+ "en_us",
537
+ "es",
538
+ "fr",
539
+ "it",
540
+ "vi"
541
+ ],
542
+ "orpheus": [
543
+ "de",
544
+ "en_gb",
545
+ "es",
546
+ "fr",
547
+ "it",
548
+ "vi"
549
+ ],
550
+ "rex": [
551
+ "de",
552
+ "en_us",
553
+ "es",
554
+ "fr",
555
+ "it",
556
+ "vi"
557
+ ],
558
+ "scylla": [
559
+ "de",
560
+ "en_us",
561
+ "es",
562
+ "fr",
563
+ "it",
564
+ "vi"
565
+ ],
566
+ "stone": [
567
+ "de",
568
+ "en_us",
569
+ "es",
570
+ "fr",
571
+ "it",
572
+ "vi"
573
+ ],
574
+ "tuesday": [
575
+ "de",
576
+ "en_gb",
577
+ "es",
578
+ "fr",
579
+ "it",
580
+ "vi"
581
+ ]
582
+ },
583
+ "whisper": "binary"
584
+ },
585
+ "durations": {
586
+ "rounding": "half_even",
587
+ "silence_min_frames": 0,
588
+ "speech_min_frames": 1,
589
+ "zero_frame_phones": "punctuation_and_modifiers"
590
+ },
591
+ "emotions": {
592
+ "enabled": false
593
+ },
594
+ "energy": {
595
+ "default": 1.0,
596
+ "max": 1.5,
597
+ "min": 0.5
598
+ },
599
+ "fixed_shapes": {
600
+ "g2p_text_tokens": 512,
601
+ "latent_frames": 1024,
602
+ "phone_frames": 512
603
+ },
604
+ "graph_input_contract": "scyllasband_measured_delivery_v2",
605
+ "pitch": {
606
+ "default": 0.0,
607
+ "max": 4.0,
608
+ "min": -4.0
609
+ },
610
+ "prefix_conditioning": {
611
+ "alignment": "right",
612
+ "enabled": true,
613
+ "max_frames": 96,
614
+ "source": "previous_latents_tail"
615
+ },
616
+ "punctuation_silence": {
617
+ "calibrated_floors": false,
618
+ "floor_table_ms": {},
619
+ "silence_phone": "<sil>",
620
+ "target": "explicit_silence"
621
+ },
622
+ "reference_packs": {
623
+ "enabled": false,
624
+ "fixed_in_graph": true
625
+ },
626
+ "sampler": {
627
+ "choices": [
628
+ "euler",
629
+ "heun"
630
+ ],
631
+ "default": "heun"
632
+ },
633
+ "span_conditioning": {
634
+ "context_max_phones": 512,
635
+ "context_phones_each_side": 180,
636
+ "duration_inputs": [
637
+ "span_phone_ids",
638
+ "span_segment_ids",
639
+ "span_mask"
640
+ ],
641
+ "enabled": true,
642
+ "encoder_component": "vector_context_encoder",
643
+ "encoder_inputs": [
644
+ "span_context_phone_ids",
645
+ "span_context_segment_ids",
646
+ "span_context_mask"
647
+ ],
648
+ "exclude_context_phones": [
649
+ "<sil>"
650
+ ],
651
+ "hidden_size": 512,
652
+ "layout": "balanced_before_target_after",
653
+ "scope": "passage",
654
+ "segments": 3,
655
+ "solver_input": "span_context_hidden"
656
+ },
657
+ "speed": {
658
+ "default": 1.0,
659
+ "max": 1.25,
660
+ "min": 0.75
661
+ },
662
+ "steps": {
663
+ "default": 8,
664
+ "max": 64,
665
+ "min": 1
666
+ },
667
+ "target_buckets": {
668
+ "bucket_margin_frames": 0,
669
+ "buckets": [
670
+ {
671
+ "default": false,
672
+ "latent_frames": 128,
673
+ "vector_estimator": "vector_estimator_128",
674
+ "vocoder": "vocoder_128"
675
+ },
676
+ {
677
+ "default": false,
678
+ "latent_frames": 256,
679
+ "vector_estimator": "vector_estimator_256",
680
+ "vocoder": "vocoder_256"
681
+ },
682
+ {
683
+ "default": false,
684
+ "latent_frames": 384,
685
+ "vector_estimator": "vector_estimator_384",
686
+ "vocoder": "vocoder_384"
687
+ },
688
+ {
689
+ "default": false,
690
+ "latent_frames": 512,
691
+ "vector_estimator": "vector_estimator_512",
692
+ "vocoder": "vocoder_512"
693
+ },
694
+ {
695
+ "default": false,
696
+ "latent_frames": 768,
697
+ "vector_estimator": "vector_estimator_768",
698
+ "vocoder": "vocoder_768"
699
+ },
700
+ {
701
+ "default": true,
702
+ "latent_frames": 1024,
703
+ "vector_estimator": "vector_estimator",
704
+ "vocoder": "vocoder"
705
+ }
706
+ ],
707
+ "default_latent_frames": 1024,
708
+ "enabled": true,
709
+ "policy": "smallest_fit"
710
+ },
711
+ "text_normalizer": {
712
+ "prepared_contract_recorded": true,
713
+ "sha256": "d8fd1b2415d0d100d1c70237a4469117ee6b73d0e4da703e4654c83192779cc4",
714
+ "version": "scyllasband_spoken_text_v2_2026_08_05"
715
+ },
716
+ "timing_events": {
717
+ "enabled": true,
718
+ "inputs": [
719
+ "expanded_boundary_event_ids",
720
+ "expanded_modifier_event_ids",
721
+ "expanded_phone_phase",
722
+ "expanded_phone_log_duration",
723
+ "expanded_sentence_type_ids"
724
+ ],
725
+ "modifier_bits": {
726
+ "ˈ": 1,
727
+ "ˌ": 2,
728
+ "ː": 4,
729
+ "̃": 8,
730
+ "̩": 16,
731
+ "̪": 32
732
+ },
733
+ "punctuation_owner": "following_silence_else_first_frame_of_next_phone",
734
+ "sentence_type_count": 5,
735
+ "sentence_type_lookahead": "following_context",
736
+ "sentence_types": {
737
+ "<ellipsis>": 4,
738
+ "<end_exclaim>": 3,
739
+ "<end_question>": 2,
740
+ "<end_stmt>": 1
741
+ },
742
+ "word_start_event_id": 87,
743
+ "word_start_owner": "first_phone_of_word_after_chunk_first_word"
744
+ },
745
+ "word_boundaries": {
746
+ "duration_phone": "<sil>",
747
+ "enabled": true,
748
+ "g2p_output_symbol": " ",
749
+ "zero_frames_allowed": true
750
+ },
751
+ "g2p_buckets": [
752
+ {
753
+ "text_tokens": 64,
754
+ "component": "g2p_64"
755
+ },
756
+ {
757
+ "text_tokens": 128,
758
+ "component": "g2p_128"
759
+ },
760
+ {
761
+ "text_tokens": 256,
762
+ "component": "g2p_256"
763
+ },
764
+ {
765
+ "text_tokens": 512,
766
+ "component": "g2p"
767
+ }
768
+ ],
769
+ "coreai": {
770
+ "minimum_os": {
771
+ "ios": "27.0",
772
+ "macos": "27.0"
773
+ },
774
+ "io": {
775
+ "ids": "int32",
776
+ "masks": "int32",
777
+ "values": "float32"
778
+ },
779
+ "assets": {
780
+ "g2p": {
781
+ "precision": "fp16",
782
+ "weights": "w8",
783
+ "bytes": 28377408
784
+ },
785
+ "duration_predictor": {
786
+ "precision": "fp16",
787
+ "weights": "w8",
788
+ "bytes": 10885061
789
+ },
790
+ "vector_context_encoder": {
791
+ "precision": "fp16",
792
+ "weights": "w8",
793
+ "bytes": 8029414
794
+ },
795
+ "vector_estimator": {
796
+ "precision": "fp16",
797
+ "weights": "w8",
798
+ "bytes": 63149205
799
+ },
800
+ "vocoder": {
801
+ "precision": "fp16",
802
+ "weights": "w8",
803
+ "bytes": 43811167
804
+ }
805
+ },
806
+ "compute_units": "gpu",
807
+ "neural_engine_assets": [
808
+ "vector_estimator"
809
+ ]
810
+ }
811
+ },
812
+ "dataset_summary": {
813
+ "controls": "measured_four_axes_plus_binary_whisper",
814
+ "voice_locale_pairs": 60
815
+ },
816
+ "default_language": "en_us",
817
+ "languages": [
818
+ "en_us",
819
+ "en_gb",
820
+ "es",
821
+ "it",
822
+ "fr",
823
+ "de",
824
+ "vi"
825
+ ],
826
+ "model_name": "Scylla's Band",
827
+ "model_version": "2",
828
+ "preferred_backends": [
829
+ "coreai"
830
+ ],
831
+ "voices": [
832
+ {
833
+ "default_language": "en_us",
834
+ "embedding_path": null,
835
+ "id": "ariadne",
836
+ "languages": [
837
+ "de",
838
+ "en_us",
839
+ "es",
840
+ "fr",
841
+ "it",
842
+ "vi"
843
+ ],
844
+ "name": "ariadne",
845
+ "styles": [
846
+ "default"
847
+ ]
848
+ },
849
+ {
850
+ "default_language": "en_us",
851
+ "embedding_path": null,
852
+ "id": "felix",
853
+ "languages": [
854
+ "de",
855
+ "en_us",
856
+ "es",
857
+ "fr",
858
+ "it",
859
+ "vi"
860
+ ],
861
+ "name": "felix",
862
+ "styles": [
863
+ "default"
864
+ ]
865
+ },
866
+ {
867
+ "default_language": "en_us",
868
+ "embedding_path": null,
869
+ "id": "gwen",
870
+ "languages": [
871
+ "de",
872
+ "en_us",
873
+ "es",
874
+ "fr",
875
+ "it",
876
+ "vi"
877
+ ],
878
+ "name": "gwen",
879
+ "styles": [
880
+ "default"
881
+ ]
882
+ },
883
+ {
884
+ "default_language": "en_gb",
885
+ "embedding_path": null,
886
+ "id": "ink",
887
+ "languages": [
888
+ "de",
889
+ "en_gb",
890
+ "es",
891
+ "fr",
892
+ "it",
893
+ "vi"
894
+ ],
895
+ "name": "ink",
896
+ "styles": [
897
+ "default"
898
+ ]
899
+ },
900
+ {
901
+ "default_language": "en_us",
902
+ "embedding_path": null,
903
+ "id": "max",
904
+ "languages": [
905
+ "de",
906
+ "en_us",
907
+ "es",
908
+ "fr",
909
+ "it",
910
+ "vi"
911
+ ],
912
+ "name": "max",
913
+ "styles": [
914
+ "default"
915
+ ]
916
+ },
917
+ {
918
+ "default_language": "en_gb",
919
+ "embedding_path": null,
920
+ "id": "orpheus",
921
+ "languages": [
922
+ "de",
923
+ "en_gb",
924
+ "es",
925
+ "fr",
926
+ "it",
927
+ "vi"
928
+ ],
929
+ "name": "orpheus",
930
+ "styles": [
931
+ "default"
932
+ ]
933
+ },
934
+ {
935
+ "default_language": "en_us",
936
+ "embedding_path": null,
937
+ "id": "rex",
938
+ "languages": [
939
+ "de",
940
+ "en_us",
941
+ "es",
942
+ "fr",
943
+ "it",
944
+ "vi"
945
+ ],
946
+ "name": "rex",
947
+ "styles": [
948
+ "default"
949
+ ]
950
+ },
951
+ {
952
+ "default_language": "en_us",
953
+ "embedding_path": null,
954
+ "id": "scylla",
955
+ "languages": [
956
+ "de",
957
+ "en_us",
958
+ "es",
959
+ "fr",
960
+ "it",
961
+ "vi"
962
+ ],
963
+ "name": "scylla",
964
+ "styles": [
965
+ "default"
966
+ ]
967
+ },
968
+ {
969
+ "default_language": "en_us",
970
+ "embedding_path": null,
971
+ "id": "stone",
972
+ "languages": [
973
+ "de",
974
+ "en_us",
975
+ "es",
976
+ "fr",
977
+ "it",
978
+ "vi"
979
+ ],
980
+ "name": "stone",
981
+ "styles": [
982
+ "default"
983
+ ]
984
+ },
985
+ {
986
+ "default_language": "en_gb",
987
+ "embedding_path": null,
988
+ "id": "tuesday",
989
+ "languages": [
990
+ "de",
991
+ "en_gb",
992
+ "es",
993
+ "fr",
994
+ "it",
995
+ "vi"
996
+ ],
997
+ "name": "tuesday",
998
+ "styles": [
999
+ "default"
1000
+ ]
1001
+ }
1002
+ ]
1003
+ }
coreml/assets/fixed_references.json ADDED
The diff for this file is too large to render. See raw diff
 
coreml/assets/g2p/export_config.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "batch_dynamic": true,
3
+ "format": "scyllasband_g2p",
4
+ "input_granularity": "phrase",
5
+ "languages": [
6
+ "de",
7
+ "en_gb",
8
+ "en_us",
9
+ "es",
10
+ "fr",
11
+ "it",
12
+ "vi"
13
+ ],
14
+ "model_type": "transformer",
15
+ "onnx_export_batch_size": 4,
16
+ "onnx_export_layout": "batch_first",
17
+ "onnx_export_max_batch_size": 256,
18
+ "onnx_exporter": "dynamo",
19
+ "onnx_fp32_model": "model.onnx",
20
+ "onnx_model": "model.onnx",
21
+ "onnx_padded_output": "ctc_blank",
22
+ "onnx_quantization": "none",
23
+ "onnx_quantized_parity_tolerance": 3.0,
24
+ "opset": 18,
25
+ "phoneme_token_mode": "char",
26
+ "phrase_rows_per_language": 200000,
27
+ "preserve_commas": true,
28
+ "punctuation_silence_target": "explicit_silence",
29
+ "release_role": "fp32_bundle_frontend",
30
+ "source_checkpoint": "output/deepphonemizer_multilingual/model_v10_7lang/checkpoints/model_step_250k.pt",
31
+ "training_mix": "phrase_word_chunked_clean",
32
+ "word_rows_per_language": 200000
33
+ }
coreml/assets/g2p/language_map.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "american": "en_us",
3
+ "american_english": "en_us",
4
+ "british": "en_gb",
5
+ "british_english": "en_gb",
6
+ "de": "de",
7
+ "de_de": "de",
8
+ "deu": "de",
9
+ "en": "en_us",
10
+ "en-gb": "en_gb",
11
+ "en-uk": "en_gb",
12
+ "en-us": "en_us",
13
+ "en_gb": "en_gb",
14
+ "en_uk": "en_gb",
15
+ "en_us": "en_us",
16
+ "eng": "en_us",
17
+ "eng_gb": "en_gb",
18
+ "eng_us": "en_us",
19
+ "english": "en_us",
20
+ "english_gb": "en_gb",
21
+ "english_uk": "en_gb",
22
+ "english_us": "en_us",
23
+ "es": "es",
24
+ "es_es": "es",
25
+ "es_mx": "es",
26
+ "fr": "fr",
27
+ "fr_fr": "fr",
28
+ "fra": "fr",
29
+ "fre": "fr",
30
+ "french": "fr",
31
+ "gb": "en_gb",
32
+ "ger": "de",
33
+ "german": "de",
34
+ "it": "it",
35
+ "it_it": "it",
36
+ "ita": "it",
37
+ "italian": "it",
38
+ "spa": "es",
39
+ "spanish": "es",
40
+ "uk": "en_gb",
41
+ "us": "en_us",
42
+ "vi": "vi",
43
+ "vi_hn": "vi",
44
+ "vi_vn": "vi",
45
+ "vie": "vi",
46
+ "vietnamese": "vi"
47
+ }
coreml/assets/g2p/normalization.json ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "contract": {
3
+ "colon_semicolon_classes": "preserved",
4
+ "dot_runs_two_or_more": "ellipsis_three_dots",
5
+ "homogeneous_terminal_runs": "single_mark",
6
+ "lexical_hyphen": "space_no_pause",
7
+ "mixed_question_exclamation": "leading_mark",
8
+ "non_acoustic_modifiers": [
9
+ "stress",
10
+ "length",
11
+ "unicode_combining"
12
+ ],
13
+ "ok_spoken_form": "okay",
14
+ "punctuation_silence_target": "explicit_silence",
15
+ "syntactic_dash": "em_dash_pause",
16
+ "training_phone_source": "espeak",
17
+ "version": "scyllasband_spoken_text_v2_2026_08_05"
18
+ },
19
+ "contract_sha256": "d8fd1b2415d0d100d1c70237a4469117ee6b73d0e4da703e4654c83192779cc4",
20
+ "contract_version": "scyllasband_spoken_text_v2_2026_08_05",
21
+ "expand_currency": true,
22
+ "expand_dates": true,
23
+ "expand_numbers": true,
24
+ "expand_ordinals": true,
25
+ "expand_percentages": true,
26
+ "expand_times": true,
27
+ "languages": [
28
+ "en",
29
+ "en_us",
30
+ "en_gb",
31
+ "es",
32
+ "it",
33
+ "fr",
34
+ "de",
35
+ "vi"
36
+ ],
37
+ "normalize_at_sign": true,
38
+ "normalize_punctuation": true,
39
+ "normalizer": "SpokenTextNormalizer"
40
+ }
coreml/assets/g2p/phoneme_dict.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "de": {},
3
+ "en_gb": {},
4
+ "en_us": {},
5
+ "es": {},
6
+ "fr": {},
7
+ "it": {},
8
+ "vi": {}
9
+ }
coreml/assets/g2p/pronunciation_overrides.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "format": "scyllasband_g2p_pronunciation_overrides_v1",
3
+ "languages": {}
4
+ }
coreml/assets/g2p/tokenizer.json ADDED
@@ -0,0 +1,517 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format": "deepphonemizer_forward_ctc",
3
+ "languages": [
4
+ "de",
5
+ "en_gb",
6
+ "en_us",
7
+ "es",
8
+ "fr",
9
+ "it",
10
+ "vi"
11
+ ],
12
+ "char_repeats": 4,
13
+ "lowercase": true,
14
+ "phoneme_token_mode": "char",
15
+ "text_symbols": {
16
+ "_": 0,
17
+ "<de>": 1,
18
+ "<en_gb>": 2,
19
+ "<en_us>": 3,
20
+ "<es>": 4,
21
+ "<fr>": 5,
22
+ "<it>": 6,
23
+ "<vi>": 7,
24
+ "<end>": 8,
25
+ "\b": 9,
26
+ " ": 10,
27
+ "!": 11,
28
+ "\"": 12,
29
+ "#": 13,
30
+ "$": 14,
31
+ "%": 15,
32
+ "&": 16,
33
+ "'": 17,
34
+ "(": 18,
35
+ ")": 19,
36
+ "*": 20,
37
+ "+": 21,
38
+ ",": 22,
39
+ "-": 23,
40
+ ".": 24,
41
+ "/": 25,
42
+ "0": 26,
43
+ "1": 27,
44
+ "2": 28,
45
+ "3": 29,
46
+ "4": 30,
47
+ "5": 31,
48
+ "6": 32,
49
+ "7": 33,
50
+ "8": 34,
51
+ "9": 35,
52
+ ":": 36,
53
+ ";": 37,
54
+ "<": 38,
55
+ "=": 39,
56
+ ">": 40,
57
+ "?": 41,
58
+ "@": 42,
59
+ "A": 43,
60
+ "B": 44,
61
+ "C": 45,
62
+ "D": 46,
63
+ "E": 47,
64
+ "F": 48,
65
+ "G": 49,
66
+ "H": 50,
67
+ "I": 51,
68
+ "J": 52,
69
+ "K": 53,
70
+ "L": 54,
71
+ "M": 55,
72
+ "N": 56,
73
+ "O": 57,
74
+ "P": 58,
75
+ "Q": 59,
76
+ "R": 60,
77
+ "S": 61,
78
+ "T": 62,
79
+ "U": 63,
80
+ "V": 64,
81
+ "W": 65,
82
+ "X": 66,
83
+ "Y": 67,
84
+ "Z": 68,
85
+ "[": 69,
86
+ "\\": 70,
87
+ "]": 71,
88
+ "^": 72,
89
+ "`": 73,
90
+ "a": 74,
91
+ "b": 75,
92
+ "c": 76,
93
+ "d": 77,
94
+ "e": 78,
95
+ "f": 79,
96
+ "g": 80,
97
+ "h": 81,
98
+ "i": 82,
99
+ "j": 83,
100
+ "k": 84,
101
+ "l": 85,
102
+ "m": 86,
103
+ "n": 87,
104
+ "o": 88,
105
+ "p": 89,
106
+ "q": 90,
107
+ "r": 91,
108
+ "s": 92,
109
+ "t": 93,
110
+ "u": 94,
111
+ "v": 95,
112
+ "w": 96,
113
+ "x": 97,
114
+ "y": 98,
115
+ "z": 99,
116
+ "{": 100,
117
+ "|": 101,
118
+ "}": 102,
119
+ "~": 103,
120
+ "¡": 104,
121
+ "¢": 105,
122
+ "£": 106,
123
+ "¥": 107,
124
+ "§": 108,
125
+ "ª": 109,
126
+ "«": 110,
127
+ "­": 111,
128
+ "®": 112,
129
+ "°": 113,
130
+ "±": 114,
131
+ "²": 115,
132
+ "³": 116,
133
+ "´": 117,
134
+ "¶": 118,
135
+ "·": 119,
136
+ "¹": 120,
137
+ "º": 121,
138
+ "»": 122,
139
+ "¼": 123,
140
+ "½": 124,
141
+ "¾": 125,
142
+ "¿": 126,
143
+ "À": 127,
144
+ "Á": 128,
145
+ "Â": 129,
146
+ "Ä": 130,
147
+ "Å": 131,
148
+ "Æ": 132,
149
+ "Ç": 133,
150
+ "È": 134,
151
+ "É": 135,
152
+ "Ê": 136,
153
+ "Í": 137,
154
+ "Ï": 138,
155
+ "Ñ": 139,
156
+ "Ó": 140,
157
+ "Ô": 141,
158
+ "Ö": 142,
159
+ "×": 143,
160
+ "Ù": 144,
161
+ "Ú": 145,
162
+ "Ü": 146,
163
+ "Ý": 147,
164
+ "Þ": 148,
165
+ "ß": 149,
166
+ "à": 150,
167
+ "á": 151,
168
+ "â": 152,
169
+ "ã": 153,
170
+ "ä": 154,
171
+ "å": 155,
172
+ "æ": 156,
173
+ "ç": 157,
174
+ "è": 158,
175
+ "é": 159,
176
+ "ê": 160,
177
+ "ë": 161,
178
+ "ì": 162,
179
+ "í": 163,
180
+ "î": 164,
181
+ "ï": 165,
182
+ "ð": 166,
183
+ "ñ": 167,
184
+ "ò": 168,
185
+ "ó": 169,
186
+ "ô": 170,
187
+ "õ": 171,
188
+ "ö": 172,
189
+ "ø": 173,
190
+ "ù": 174,
191
+ "ú": 175,
192
+ "û": 176,
193
+ "ü": 177,
194
+ "ý": 178,
195
+ "þ": 179,
196
+ "ÿ": 180,
197
+ "ā": 181,
198
+ "Ă": 182,
199
+ "ă": 183,
200
+ "ą": 184,
201
+ "ć": 185,
202
+ "č": 186,
203
+ "Đ": 187,
204
+ "đ": 188,
205
+ "ē": 189,
206
+ "ė": 190,
207
+ "ę": 191,
208
+ "ğ": 192,
209
+ "ġ": 193,
210
+ "ĩ": 194,
211
+ "ī": 195,
212
+ "ļ": 196,
213
+ "ł": 197,
214
+ "ń": 198,
215
+ "Ō": 199,
216
+ "ō": 200,
217
+ "Œ": 201,
218
+ "œ": 202,
219
+ "ŕ": 203,
220
+ "ś": 204,
221
+ "ş": 205,
222
+ "š": 206,
223
+ "ŧ": 207,
224
+ "ũ": 208,
225
+ "ū": 209,
226
+ "ŭ": 210,
227
+ "ů": 211,
228
+ "ű": 212,
229
+ "ż": 213,
230
+ "Ž": 214,
231
+ "ž": 215,
232
+ "ſ": 216,
233
+ "Ơ": 217,
234
+ "ơ": 218,
235
+ "Ư": 219,
236
+ "ư": 220,
237
+ "ǁ": 221,
238
+ "ǂ": 222,
239
+ "ǐ": 223,
240
+ "ǘ": 224,
241
+ "ǧ": 225,
242
+ "ș": 226,
243
+ "Ȝ": 227,
244
+ "ȝ": 228,
245
+ "ȟ": 229,
246
+ "ɛ": 230,
247
+ "ʰ": 231,
248
+ "ˆ": 232,
249
+ "ˈ": 233,
250
+ "ˢ": 234,
251
+ "̃": 235,
252
+ "̍": 236,
253
+ "̣": 237,
254
+ "̱": 238,
255
+ "͈": 239,
256
+ "α": 240,
257
+ "β": 241,
258
+ "γ": 242,
259
+ "δ": 243,
260
+ "ε": 244,
261
+ "η": 245,
262
+ "κ": 246,
263
+ "μ": 247,
264
+ "ξ": 248,
265
+ "π": 249,
266
+ "ς": 250,
267
+ "σ": 251,
268
+ "χ": 252,
269
+ "ψ": 253,
270
+ "а": 254,
271
+ "д": 255,
272
+ "е": 256,
273
+ "з": 257,
274
+ "и": 258,
275
+ "к": 259,
276
+ "л": 260,
277
+ "о": 261,
278
+ "п": 262,
279
+ "р": 263,
280
+ "с": 264,
281
+ "т": 265,
282
+ "ч": 266,
283
+ "ь": 267,
284
+ "ง": 268,
285
+ "ย": 269,
286
+ "า": 270,
287
+ "่": 271,
288
+ "ည": 272,
289
+ "လ": 273,
290
+ "း": 274,
291
+ "်": 275,
292
+ "ᵈ": 276,
293
+ "ᵗ": 277,
294
+ "ḅ": 278,
295
+ "ḍ": 279,
296
+ "ḳ": 280,
297
+ "ṅ": 281,
298
+ "Ṭ": 282,
299
+ "ẓ": 283,
300
+ "ạ": 284,
301
+ "Ả": 285,
302
+ "ả": 286,
303
+ "Ấ": 287,
304
+ "ấ": 288,
305
+ "ầ": 289,
306
+ "ẩ": 290,
307
+ "ẫ": 291,
308
+ "ậ": 292,
309
+ "ắ": 293,
310
+ "ằ": 294,
311
+ "ẳ": 295,
312
+ "ẵ": 296,
313
+ "ặ": 297,
314
+ "ẹ": 298,
315
+ "ẻ": 299,
316
+ "ẽ": 300,
317
+ "Ế": 301,
318
+ "ế": 302,
319
+ "Ề": 303,
320
+ "ề": 304,
321
+ "ể": 305,
322
+ "ễ": 306,
323
+ "ệ": 307,
324
+ "ỉ": 308,
325
+ "ị": 309,
326
+ "ọ": 310,
327
+ "ỏ": 311,
328
+ "Ố": 312,
329
+ "ố": 313,
330
+ "Ồ": 314,
331
+ "ồ": 315,
332
+ "Ổ": 316,
333
+ "ổ": 317,
334
+ "ỗ": 318,
335
+ "Ộ": 319,
336
+ "ộ": 320,
337
+ "ớ": 321,
338
+ "Ờ": 322,
339
+ "ờ": 323,
340
+ "Ở": 324,
341
+ "ở": 325,
342
+ "ỡ": 326,
343
+ "ợ": 327,
344
+ "ụ": 328,
345
+ "ủ": 329,
346
+ "Ứ": 330,
347
+ "ứ": 331,
348
+ "Ừ": 332,
349
+ "ừ": 333,
350
+ "ử": 334,
351
+ "ữ": 335,
352
+ "ự": 336,
353
+ "ỳ": 337,
354
+ "ỵ": 338,
355
+ "Ỷ": 339,
356
+ "ỷ": 340,
357
+ "ỹ": 341,
358
+ "ὖ": 342,
359
+ "ὼ": 343,
360
+ "ῆ": 344,
361
+ "​": 345,
362
+ "‐": 346,
363
+ "—": 347,
364
+ "―": 348,
365
+ "†": 349,
366
+ "•": 350,
367
+ "…": 351,
368
+ "‰": 352,
369
+ "′": 353,
370
+ "″": 354,
371
+ "⁄": 355,
372
+ "⁷": 356,
373
+ "⁻": 357,
374
+ "₀": 358,
375
+ "₁": 359,
376
+ "₂": 360,
377
+ "₃": 361,
378
+ "₄": 362,
379
+ "₅": 363,
380
+ "₆": 364,
381
+ "₇": 365,
382
+ "₈": 366,
383
+ "€": 367,
384
+ "₹": 368,
385
+ "⅓": 369,
386
+ "⅔": 370,
387
+ "⅖": 371,
388
+ "⅙": 372,
389
+ "⅛": 373,
390
+ "⅝": 374,
391
+ "√": 375,
392
+ "│": 376,
393
+ "♦": 377,
394
+ "⚓": 378,
395
+ "✈": 379,
396
+ "✠": 380,
397
+ "✨": 381,
398
+ "⟙": 382,
399
+ "⸺": 383,
400
+ "。": 384,
401
+ "〈": 385,
402
+ "な": 386,
403
+ "三": 387,
404
+ "次": 388,
405
+ "肿": 389,
406
+ "臃": 390,
407
+ "구": 391,
408
+ "로": 392,
409
+ "요": 393,
410
+ "ﷺ": 394,
411
+ "️": 395,
412
+ "𝑥": 396,
413
+ "𝑦": 397,
414
+ "🌊": 398,
415
+ "🌿": 399,
416
+ "💦": 400,
417
+ "💨": 401
418
+ },
419
+ "phoneme_symbols": {
420
+ "0": "_",
421
+ "1": "<de>",
422
+ "2": "<en_gb>",
423
+ "3": "<en_us>",
424
+ "4": "<es>",
425
+ "5": "<fr>",
426
+ "6": "<it>",
427
+ "7": "<vi>",
428
+ "8": "<end>",
429
+ "9": " ",
430
+ "10": "!",
431
+ "11": ",",
432
+ "12": "-",
433
+ "13": ".",
434
+ "14": "1",
435
+ "15": "2",
436
+ "16": "4",
437
+ "17": "5",
438
+ "18": "6",
439
+ "19": "7",
440
+ "20": ":",
441
+ "21": ";",
442
+ "22": "?",
443
+ "23": "a",
444
+ "24": "b",
445
+ "25": "c",
446
+ "26": "d",
447
+ "27": "e",
448
+ "28": "f",
449
+ "29": "h",
450
+ "30": "i",
451
+ "31": "j",
452
+ "32": "k",
453
+ "33": "l",
454
+ "34": "m",
455
+ "35": "n",
456
+ "36": "o",
457
+ "37": "p",
458
+ "38": "q",
459
+ "39": "r",
460
+ "40": "s",
461
+ "41": "t",
462
+ "42": "u",
463
+ "43": "v",
464
+ "44": "w",
465
+ "45": "x",
466
+ "46": "y",
467
+ "47": "z",
468
+ "48": "«",
469
+ "49": "»",
470
+ "50": "æ",
471
+ "51": "ç",
472
+ "52": "ð",
473
+ "53": "ø",
474
+ "54": "ŋ",
475
+ "55": "œ",
476
+ "56": "ɐ",
477
+ "57": "ɑ",
478
+ "58": "ɒ",
479
+ "59": "ɔ",
480
+ "60": "ɗ",
481
+ "61": "ə",
482
+ "62": "ɚ",
483
+ "63": "ɛ",
484
+ "64": "ɜ",
485
+ "65": "ɟ",
486
+ "66": "ɡ",
487
+ "67": "ɣ",
488
+ "68": "ɨ",
489
+ "69": "ɪ",
490
+ "70": "ɬ",
491
+ "71": "ɯ",
492
+ "72": "ɲ",
493
+ "73": "ɹ",
494
+ "74": "ɾ",
495
+ "75": "ʁ",
496
+ "76": "ʃ",
497
+ "77": "ʊ",
498
+ "78": "ʌ",
499
+ "79": "ʎ",
500
+ "80": "ʐ",
501
+ "81": "ʒ",
502
+ "82": "ʔ",
503
+ "83": "ʝ",
504
+ "84": "ʲ",
505
+ "85": "ˈ",
506
+ "86": "ˌ",
507
+ "87": "ː",
508
+ "88": "̃",
509
+ "89": "̩",
510
+ "90": "̪",
511
+ "91": "β",
512
+ "92": "θ",
513
+ "93": "ᵻ",
514
+ "94": "—",
515
+ "95": "…"
516
+ }
517
+ }
coreml/assets/languages.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "id": "en_us",
4
+ "index": 0
5
+ },
6
+ {
7
+ "id": "en_gb",
8
+ "index": 1
9
+ },
10
+ {
11
+ "id": "es",
12
+ "index": 2
13
+ },
14
+ {
15
+ "id": "it",
16
+ "index": 3
17
+ },
18
+ {
19
+ "id": "fr",
20
+ "index": 4
21
+ },
22
+ {
23
+ "id": "de",
24
+ "index": 5
25
+ },
26
+ {
27
+ "id": "vi",
28
+ "index": 6
29
+ }
30
+ ]
coreml/assets/phone_vocab.json ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "mode": "scyllasband_ipa_phone_symbols",
4
+ "special_tokens": [
5
+ "<pad>",
6
+ "<unk>",
7
+ "<sil>",
8
+ "<pause_comma>",
9
+ "<pause_semicolon>",
10
+ "<pause_colon>",
11
+ "<pause_dash>",
12
+ "<ellipsis>",
13
+ "<end_stmt>",
14
+ "<end_question>",
15
+ "<end_exclaim>",
16
+ "<ctx_sentence_start>",
17
+ "<ctx_continuation>",
18
+ "<ctx_sentence_end>",
19
+ "<ctx_chunk_continue>"
20
+ ],
21
+ "vocab_size": 87,
22
+ "token_to_id": {
23
+ "<pad>": 0,
24
+ "<unk>": 1,
25
+ "<sil>": 2,
26
+ "<pause_comma>": 3,
27
+ "<pause_semicolon>": 4,
28
+ "<pause_colon>": 5,
29
+ "<pause_dash>": 6,
30
+ "<ellipsis>": 7,
31
+ "<end_stmt>": 8,
32
+ "<end_question>": 9,
33
+ "<end_exclaim>": 10,
34
+ "<ctx_sentence_start>": 11,
35
+ "<ctx_continuation>": 12,
36
+ "<ctx_sentence_end>": 13,
37
+ "<ctx_chunk_continue>": 14,
38
+ "1": 15,
39
+ "2": 16,
40
+ "4": 17,
41
+ "5": 18,
42
+ "6": 19,
43
+ "7": 20,
44
+ "a": 21,
45
+ "b": 22,
46
+ "c": 23,
47
+ "d": 24,
48
+ "e": 25,
49
+ "f": 26,
50
+ "h": 27,
51
+ "i": 28,
52
+ "j": 29,
53
+ "k": 30,
54
+ "l": 31,
55
+ "m": 32,
56
+ "n": 33,
57
+ "o": 34,
58
+ "p": 35,
59
+ "r": 36,
60
+ "s": 37,
61
+ "t": 38,
62
+ "u": 39,
63
+ "v": 40,
64
+ "w": 41,
65
+ "x": 42,
66
+ "y": 43,
67
+ "z": 44,
68
+ "æ": 45,
69
+ "ç": 46,
70
+ "ð": 47,
71
+ "ø": 48,
72
+ "ŋ": 49,
73
+ "œ": 50,
74
+ "ɐ": 51,
75
+ "ɑ": 52,
76
+ "ɒ": 53,
77
+ "ɔ": 54,
78
+ "ɗ": 55,
79
+ "ə": 56,
80
+ "ɚ": 57,
81
+ "ɛ": 58,
82
+ "ɜ": 59,
83
+ "ɟ": 60,
84
+ "ɡ": 61,
85
+ "ɣ": 62,
86
+ "ɪ": 63,
87
+ "ɯ": 64,
88
+ "ɲ": 65,
89
+ "ɹ": 66,
90
+ "ɾ": 67,
91
+ "ʁ": 68,
92
+ "ʃ": 69,
93
+ "ʊ": 70,
94
+ "ʌ": 71,
95
+ "ʎ": 72,
96
+ "ʐ": 73,
97
+ "ʒ": 74,
98
+ "ʔ": 75,
99
+ "ʝ": 76,
100
+ "ʲ": 77,
101
+ "ˈ": 78,
102
+ "ˌ": 79,
103
+ "ː": 80,
104
+ "̃": 81,
105
+ "̩": 82,
106
+ "̪": 83,
107
+ "β": 84,
108
+ "θ": 85,
109
+ "ᵻ": 86
110
+ }
111
+ }
coreml/assets/voices.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "id": "ariadne",
4
+ "index": 0
5
+ },
6
+ {
7
+ "id": "felix",
8
+ "index": 1
9
+ },
10
+ {
11
+ "id": "gwen",
12
+ "index": 2
13
+ },
14
+ {
15
+ "id": "ink",
16
+ "index": 3
17
+ },
18
+ {
19
+ "id": "max",
20
+ "index": 4
21
+ },
22
+ {
23
+ "id": "orpheus",
24
+ "index": 5
25
+ },
26
+ {
27
+ "id": "rex",
28
+ "index": 6
29
+ },
30
+ {
31
+ "id": "scylla",
32
+ "index": 7
33
+ },
34
+ {
35
+ "id": "stone",
36
+ "index": 8
37
+ },
38
+ {
39
+ "id": "tuesday",
40
+ "index": 9
41
+ }
42
+ ]
coreml/coreml/duration_predictor.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:953e274e93c3abfae6f04977436816dc28223ef61d4e91e4191f67837740a2e8
3
+ size 243
coreml/coreml/duration_predictor.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c090d28d8df68312410867a49963b5fbda00f5883178969df17b1b0c86e7eff2
3
+ size 554
coreml/coreml/duration_predictor.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
coreml/coreml/duration_predictor.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5383e19195d6807cf6632d2c82b51b86aaa947ba51d8042434f73b5039c70ea4
3
+ size 10562880
coreml/coreml/g2p.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:61936fdfe11637e628b2134025bea29d673c98e93ce6f01c05e7b5da124563b8
3
+ size 243
coreml/coreml/g2p.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f5fc8bee0186f33fa14d35a59a58ec3393676d07bdf03802a3836d806662cd03
3
+ size 377
coreml/coreml/g2p.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
coreml/coreml/g2p.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:045da2991ed2a42ba027aaa6b83813054f410b6eedfdce82f2ab287ec4ca74e2
3
+ size 27346752
coreml/coreml/vector_context_encoder.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f89405fefad88549b521a819805c5c1781e0c930c03b8f670b1e1539aafe88c6
3
+ size 243
coreml/coreml/vector_context_encoder.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d031d4ef221bc846aec129114aec7366fcb6126dacae44c24c4b344c54dc6c5a
3
+ size 476
coreml/coreml/vector_context_encoder.mlmodelc/model.mil ADDED
@@ -0,0 +1,267 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.3)
2
+ [buildInfo = dict<string, string>({{"coremlc-component-MIL", "3600.16.1"}, {"coremlc-version", "3600.25.2"}})]
3
+ {
4
+ func main<ios18>(tensor<int32, [1, 512]> span_context_mask, tensor<int32, [1, 512]> span_context_phone_ids, tensor<int32, [1, 512]> span_context_segment_ids) {
5
+ int32 var_15 = const()[name = string("op_15"), val = int32(0)];
6
+ tensor<bool, [1, 512]> span_context_mask_1 = not_equal(x = span_context_mask, y = var_15)[name = string("span_context_mask")];
7
+ int32 var_30 = const()[name = string("op_30"), val = int32(-1)];
8
+ int32 var_35 = const()[name = string("op_35"), val = int32(2)];
9
+ int32 var_36 = const()[name = string("op_36"), val = int32(86)];
10
+ int32 var_38 = const()[name = string("op_38"), val = int32(1)];
11
+ int32 var_40 = const()[name = string("op_40"), val = int32(0)];
12
+ tensor<int32, [1, 512]> var_55 = maximum(x = span_context_phone_ids, y = var_40)[name = string("op_55")];
13
+ tensor<int32, [1, 512]> input_1 = minimum(x = var_55, y = var_36)[name = string("input_1")];
14
+ tensor<int32, [1, 512]> var_59 = maximum(x = span_context_segment_ids, y = var_40)[name = string("op_59")];
15
+ tensor<int32, [1, 512]> input_3 = minimum(x = var_59, y = var_35)[name = string("input_3")];
16
+ string var_64_dtype_0 = const()[name = string("op_64_dtype_0"), val = string("int32")];
17
+ bool var_65_exclusive_0 = const()[name = string("op_65_exclusive_0"), val = bool(false)];
18
+ bool var_65_reverse_0 = const()[name = string("op_65_reverse_0"), val = bool(false)];
19
+ tensor<int32, [1, 512]> var_64 = cast(dtype = var_64_dtype_0, x = span_context_mask_1)[name = string("cast_13")];
20
+ tensor<int32, [1, 512]> var_65 = cumsum(axis = var_38, exclusive = var_65_exclusive_0, reverse = var_65_reverse_0, x = var_64)[name = string("op_65")];
21
+ int32 var_66 = const()[name = string("op_66"), val = int32(1)];
22
+ tensor<int32, [1, 512]> var_67 = sub(x = var_65, y = var_66)[name = string("op_67")];
23
+ tensor<int32, [1, 512]> input_5 = maximum(x = var_67, y = var_40)[name = string("input_5")];
24
+ int32 var_70_batch_dims_0 = const()[name = string("op_70_batch_dims_0"), val = int32(0)];
25
+ bool var_70_validate_indices_0 = const()[name = string("op_70_validate_indices_0"), val = bool(false)];
26
+ tensor<fp16, [87, 512]> module_flow_phone_embed_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [87, 512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(64))), scale = tensor<fp16, [87, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(44672))))[name = string("module_flow_phone_embed_weight_to_fp16_quantized")];
27
+ string input_1_to_int16_dtype_0 = const()[name = string("input_1_to_int16_dtype_0"), val = string("int16")];
28
+ string cast_24_dtype_0 = const()[name = string("cast_24_dtype_0"), val = string("int32")];
29
+ int32 greater_equal_0_y_0 = const()[name = string("greater_equal_0_y_0"), val = int32(0)];
30
+ tensor<int16, [1, 512]> input_1_to_int16 = cast(dtype = input_1_to_int16_dtype_0, x = input_1)[name = string("cast_12")];
31
+ tensor<int32, [1, 512]> cast_24 = cast(dtype = cast_24_dtype_0, x = input_1_to_int16)[name = string("cast_11")];
32
+ tensor<bool, [1, 512]> greater_equal_0 = greater_equal(x = cast_24, y = greater_equal_0_y_0)[name = string("greater_equal_0")];
33
+ int32 slice_by_index_0 = const()[name = string("slice_by_index_0"), val = int32(87)];
34
+ tensor<int32, [1, 512]> add_0 = add(x = cast_24, y = slice_by_index_0)[name = string("add_0")];
35
+ tensor<int32, [1, 512]> select_0 = select(a = cast_24, b = add_0, cond = greater_equal_0)[name = string("select_0")];
36
+ string select_0_to_int16_dtype_0 = const()[name = string("select_0_to_int16_dtype_0"), val = string("int16")];
37
+ string cast_0_dtype_0 = const()[name = string("cast_0_dtype_0"), val = string("int32")];
38
+ int32 greater_equal_0_y_0_1 = const()[name = string("greater_equal_0_y_0_1"), val = int32(0)];
39
+ tensor<int16, [1, 512]> select_0_to_int16 = cast(dtype = select_0_to_int16_dtype_0, x = select_0)[name = string("cast_10")];
40
+ tensor<int32, [1, 512]> cast_0 = cast(dtype = cast_0_dtype_0, x = select_0_to_int16)[name = string("cast_9")];
41
+ tensor<bool, [1, 512]> greater_equal_0_1 = greater_equal(x = cast_0, y = greater_equal_0_y_0_1)[name = string("greater_equal_0_1")];
42
+ int32 slice_by_index_0_1 = const()[name = string("slice_by_index_0_1"), val = int32(87)];
43
+ tensor<int32, [1, 512]> add_0_1 = add(x = cast_0, y = slice_by_index_0_1)[name = string("add_0_1")];
44
+ tensor<int32, [1, 512]> select_0_1 = select(a = cast_0, b = add_0_1, cond = greater_equal_0_1)[name = string("select_0_1")];
45
+ int32 op_70_cast_fp16_cast_uint16_cast_uint16_axis_0 = const()[name = string("op_70_cast_fp16_cast_uint16_cast_uint16_axis_0"), val = int32(0)];
46
+ tensor<fp16, [1, 512, 512]> op_70_cast_fp16_cast_uint16_cast_uint16 = gather(axis = op_70_cast_fp16_cast_uint16_cast_uint16_axis_0, batch_dims = var_70_batch_dims_0, indices = select_0_1, validate_indices = var_70_validate_indices_0, x = module_flow_phone_embed_weight_to_fp16_quantized)[name = string("op_70_cast_fp16_cast_uint16_cast_uint16")];
47
+ int32 var_72_axis_0 = const()[name = string("op_72_axis_0"), val = int32(0)];
48
+ int32 var_72_batch_dims_0 = const()[name = string("op_72_batch_dims_0"), val = int32(0)];
49
+ bool var_72_validate_indices_0 = const()[name = string("op_72_validate_indices_0"), val = bool(false)];
50
+ tensor<fp16, [3, 512]> module_flow_span_segment_embed_weight_to_fp16 = const()[name = string("module_flow_span_segment_embed_weight_to_fp16"), val = tensor<fp16, [3, 512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(44928)))];
51
+ string input_3_to_uint16_dtype_0 = const()[name = string("input_3_to_uint16_dtype_0"), val = string("uint16")];
52
+ tensor<uint16, [1, 512]> input_3_to_uint16 = cast(dtype = input_3_to_uint16_dtype_0, x = input_3)[name = string("cast_8")];
53
+ tensor<fp16, [1, 512, 512]> var_72_cast_fp16_cast_uint16 = gather(axis = var_72_axis_0, batch_dims = var_72_batch_dims_0, indices = input_3_to_uint16, validate_indices = var_72_validate_indices_0, x = module_flow_span_segment_embed_weight_to_fp16)[name = string("op_72_cast_fp16_cast_uint16")];
54
+ tensor<fp16, [1, 512, 512]> var_73_cast_fp16 = add(x = op_70_cast_fp16_cast_uint16_cast_uint16, y = var_72_cast_fp16_cast_uint16)[name = string("op_73_cast_fp16")];
55
+ int32 var_75_axis_0 = const()[name = string("op_75_axis_0"), val = int32(0)];
56
+ int32 var_75_batch_dims_0 = const()[name = string("op_75_batch_dims_0"), val = int32(0)];
57
+ bool var_75_validate_indices_0 = const()[name = string("op_75_validate_indices_0"), val = bool(false)];
58
+ tensor<fp16, [768, 512]> module_flow_span_position_embed_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [768, 512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(48064))), scale = tensor<fp16, [768, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(441344))))[name = string("module_flow_span_position_embed_weight_to_fp16_quantized")];
59
+ string input_5_to_uint16_dtype_0 = const()[name = string("input_5_to_uint16_dtype_0"), val = string("uint16")];
60
+ tensor<uint16, [1, 512]> input_5_to_uint16 = cast(dtype = input_5_to_uint16_dtype_0, x = input_5)[name = string("cast_7")];
61
+ tensor<fp16, [1, 512, 512]> var_75_cast_fp16_cast_uint16 = gather(axis = var_75_axis_0, batch_dims = var_75_batch_dims_0, indices = input_5_to_uint16, validate_indices = var_75_validate_indices_0, x = module_flow_span_position_embed_weight_to_fp16_quantized)[name = string("op_75_cast_fp16_cast_uint16")];
62
+ tensor<fp16, [1, 512, 512]> hidden_1_cast_fp16 = add(x = var_73_cast_fp16, y = var_75_cast_fp16_cast_uint16)[name = string("hidden_1_cast_fp16")];
63
+ tensor<int32, [1]> var_82_axes_0 = const()[name = string("op_82_axes_0"), val = tensor<int32, [1]>([-1])];
64
+ tensor<bool, [1, 512, 1]> var_82 = expand_dims(axes = var_82_axes_0, x = span_context_mask_1)[name = string("op_82")];
65
+ tensor<bool, [1, 512, 1]> var_83 = logical_not(x = var_82)[name = string("op_83")];
66
+ fp16 var_18_to_fp16 = const()[name = string("op_18_to_fp16"), val = fp16(0x0p+0)];
67
+ tensor<fp16, [1, 512, 512]> hidden_3_cast_fp16 = select(a = var_18_to_fp16, b = hidden_1_cast_fp16, cond = var_83)[name = string("hidden_3_cast_fp16")];
68
+ tensor<int32, [1]> input_7_axes_0 = const()[name = string("input_7_axes_0"), val = tensor<int32, [1]>([-1])];
69
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_0_norm_attention_weight_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_0_norm_attention_weight_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(442944)))];
70
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_0_norm_attention_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_0_norm_attention_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(444032)))];
71
+ fp16 var_28_to_fp16 = const()[name = string("op_28_to_fp16"), val = fp16(0x1.5p-17)];
72
+ tensor<fp16, [1, 512, 512]> input_7_cast_fp16 = layer_norm(axes = input_7_axes_0, beta = module_flow_span_ordered_encoder_blocks_0_norm_attention_bias_to_fp16, epsilon = var_28_to_fp16, gamma = module_flow_span_ordered_encoder_blocks_0_norm_attention_weight_to_fp16, x = hidden_3_cast_fp16)[name = string("input_7_cast_fp16")];
73
+ tensor<fp16, [1536, 512]> module_flow_span_ordered_encoder_blocks_0_qkv_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [1536, 512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(445120))), scale = tensor<fp16, [1536, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(1231616))))[name = string("module_flow_span_ordered_encoder_blocks_0_qkv_weight_to_fp16_quantized")];
74
+ tensor<fp16, [1536]> module_flow_span_ordered_encoder_blocks_0_qkv_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_0_qkv_bias_to_fp16"), val = tensor<fp16, [1536]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(1234752)))];
75
+ tensor<fp16, [1, 512, 1536]> linear_0_cast_fp16 = linear(bias = module_flow_span_ordered_encoder_blocks_0_qkv_bias_to_fp16, weight = module_flow_span_ordered_encoder_blocks_0_qkv_weight_to_fp16_quantized, x = input_7_cast_fp16)[name = string("linear_0_cast_fp16")];
76
+ tensor<int32, [5]> var_100 = const()[name = string("op_100"), val = tensor<int32, [5]>([1, 512, 3, 8, 64])];
77
+ tensor<fp16, [1, 512, 3, 8, 64]> qkv_1_cast_fp16 = reshape(shape = var_100, x = linear_0_cast_fp16)[name = string("qkv_1_cast_fp16")];
78
+ tensor<int32, [3]> var_102_split_sizes_0 = const()[name = string("op_102_split_sizes_0"), val = tensor<int32, [3]>([1, 1, 1])];
79
+ int32 var_102_axis_0 = const()[name = string("op_102_axis_0"), val = int32(2)];
80
+ tensor<fp16, [1, 512, 1, 8, 64]> var_102_cast_fp16_0, tensor<fp16, [1, 512, 1, 8, 64]> var_102_cast_fp16_1, tensor<fp16, [1, 512, 1, 8, 64]> var_102_cast_fp16_2 = split(axis = var_102_axis_0, split_sizes = var_102_split_sizes_0, x = qkv_1_cast_fp16)[name = string("op_102_cast_fp16")];
81
+ tensor<int32, [1]> squeeze_0_axes_0 = const()[name = string("squeeze_0_axes_0"), val = tensor<int32, [1]>([2])];
82
+ tensor<fp16, [1, 512, 8, 64]> squeeze_0_cast_fp16 = squeeze(axes = squeeze_0_axes_0, x = var_102_cast_fp16_0)[name = string("squeeze_0_cast_fp16")];
83
+ tensor<int32, [1]> squeeze_1_axes_0 = const()[name = string("squeeze_1_axes_0"), val = tensor<int32, [1]>([2])];
84
+ tensor<fp16, [1, 512, 8, 64]> squeeze_1_cast_fp16 = squeeze(axes = squeeze_1_axes_0, x = var_102_cast_fp16_1)[name = string("squeeze_1_cast_fp16")];
85
+ tensor<int32, [1]> squeeze_2_axes_0 = const()[name = string("squeeze_2_axes_0"), val = tensor<int32, [1]>([2])];
86
+ tensor<fp16, [1, 512, 8, 64]> squeeze_2_cast_fp16 = squeeze(axes = squeeze_2_axes_0, x = var_102_cast_fp16_2)[name = string("squeeze_2_cast_fp16")];
87
+ tensor<int32, [4]> value_3_perm_0 = const()[name = string("value_3_perm_0"), val = tensor<int32, [4]>([0, 2, -3, -1])];
88
+ bool var_110_transpose_x_0 = const()[name = string("op_110_transpose_x_0"), val = bool(false)];
89
+ bool var_110_transpose_y_0 = const()[name = string("op_110_transpose_y_0"), val = bool(false)];
90
+ tensor<int32, [4]> transpose_8_perm_0 = const()[name = string("transpose_8_perm_0"), val = tensor<int32, [4]>([0, 2, -3, -1])];
91
+ tensor<int32, [4]> transpose_9_perm_0 = const()[name = string("transpose_9_perm_0"), val = tensor<int32, [4]>([0, 2, -1, -3])];
92
+ tensor<fp16, [1, 8, 64, 512]> transpose_9 = transpose(perm = transpose_9_perm_0, x = squeeze_1_cast_fp16)[name = string("transpose_18")];
93
+ tensor<fp16, [1, 8, 512, 64]> transpose_8 = transpose(perm = transpose_8_perm_0, x = squeeze_0_cast_fp16)[name = string("transpose_19")];
94
+ tensor<fp16, [1, 8, 512, 512]> var_110_cast_fp16 = matmul(transpose_x = var_110_transpose_x_0, transpose_y = var_110_transpose_y_0, x = transpose_8, y = transpose_9)[name = string("op_110_cast_fp16")];
95
+ fp16 var_111_to_fp16 = const()[name = string("op_111_to_fp16"), val = fp16(0x1p-3)];
96
+ tensor<fp16, [1, 8, 512, 512]> scores_1_cast_fp16 = mul(x = var_110_cast_fp16, y = var_111_to_fp16)[name = string("scores_1_cast_fp16")];
97
+ tensor<int32, [1]> var_114_axes_0 = const()[name = string("op_114_axes_0"), val = tensor<int32, [1]>([1])];
98
+ tensor<bool, [1, 1, 512]> var_114 = expand_dims(axes = var_114_axes_0, x = span_context_mask_1)[name = string("op_114")];
99
+ tensor<int32, [1]> var_115_axes_0 = const()[name = string("op_115_axes_0"), val = tensor<int32, [1]>([2])];
100
+ tensor<bool, [1, 1, 1, 512]> var_115 = expand_dims(axes = var_115_axes_0, x = var_114)[name = string("op_115")];
101
+ tensor<bool, [1, 1, 1, 512]> var_117 = logical_not(x = var_115)[name = string("op_117")];
102
+ fp16 var_23_to_fp16 = const()[name = string("op_23_to_fp16"), val = fp16(-inf)];
103
+ tensor<fp16, [1, 8, 512, 512]> scores_3_cast_fp16 = select(a = var_23_to_fp16, b = scores_1_cast_fp16, cond = var_117)[name = string("scores_3_cast_fp16")];
104
+ tensor<fp16, [1, 8, 512, 512]> var_119_cast_fp16 = softmax(axis = var_30, x = scores_3_cast_fp16)[name = string("op_119_cast_fp16")];
105
+ string var_120_to_fp16_dtype_0 = const()[name = string("op_120_to_fp16_dtype_0"), val = string("fp16")];
106
+ tensor<fp16, [1, 1, 1, 512]> var_115_to_fp16 = cast(dtype = var_120_to_fp16_dtype_0, x = var_115)[name = string("cast_6")];
107
+ tensor<fp16, [1, 8, 512, 512]> weights_1_cast_fp16 = mul(x = var_119_cast_fp16, y = var_115_to_fp16)[name = string("weights_1_cast_fp16")];
108
+ tensor<int32, [1]> var_123_axes_0 = const()[name = string("op_123_axes_0"), val = tensor<int32, [1]>([-1])];
109
+ bool var_123_keep_dims_0 = const()[name = string("op_123_keep_dims_0"), val = bool(true)];
110
+ tensor<fp16, [1, 8, 512, 1]> var_123_cast_fp16 = reduce_sum(axes = var_123_axes_0, keep_dims = var_123_keep_dims_0, x = weights_1_cast_fp16)[name = string("op_123_cast_fp16")];
111
+ fp16 var_21_to_fp16 = const()[name = string("op_21_to_fp16"), val = fp16(0x1.1p-20)];
112
+ tensor<fp16, [1, 8, 512, 1]> var_124_cast_fp16 = maximum(x = var_123_cast_fp16, y = var_21_to_fp16)[name = string("op_124_cast_fp16")];
113
+ tensor<fp16, [1, 8, 512, 512]> weights_3_cast_fp16 = real_div(x = weights_1_cast_fp16, y = var_124_cast_fp16)[name = string("weights_3_cast_fp16")];
114
+ bool var_126_transpose_x_0 = const()[name = string("op_126_transpose_x_0"), val = bool(false)];
115
+ bool var_126_transpose_y_0 = const()[name = string("op_126_transpose_y_0"), val = bool(false)];
116
+ tensor<fp16, [1, 8, 512, 64]> value_3_cast_fp16 = transpose(perm = value_3_perm_0, x = squeeze_2_cast_fp16)[name = string("transpose_17")];
117
+ tensor<fp16, [1, 8, 512, 64]> var_126_cast_fp16 = matmul(transpose_x = var_126_transpose_x_0, transpose_y = var_126_transpose_y_0, x = weights_3_cast_fp16, y = value_3_cast_fp16)[name = string("op_126_cast_fp16")];
118
+ tensor<int32, [4]> var_127_perm_0 = const()[name = string("op_127_perm_0"), val = tensor<int32, [4]>([0, 2, 1, 3])];
119
+ tensor<int32, [3]> var_128 = const()[name = string("op_128"), val = tensor<int32, [3]>([1, 512, 512])];
120
+ tensor<fp16, [1, 512, 8, 64]> var_127_cast_fp16 = transpose(perm = var_127_perm_0, x = var_126_cast_fp16)[name = string("transpose_16")];
121
+ tensor<fp16, [1, 512, 512]> input_9_cast_fp16 = reshape(shape = var_128, x = var_127_cast_fp16)[name = string("input_9_cast_fp16")];
122
+ tensor<fp16, [512, 512]> module_flow_span_ordered_encoder_blocks_0_attention_proj_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [512, 512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(1237888))), scale = tensor<fp16, [512, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(1500096))))[name = string("module_flow_span_ordered_encoder_blocks_0_attention_proj_weight_to_fp16_quantized")];
123
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_0_attention_proj_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_0_attention_proj_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(1501184)))];
124
+ tensor<fp16, [1, 512, 512]> linear_1_cast_fp16 = linear(bias = module_flow_span_ordered_encoder_blocks_0_attention_proj_bias_to_fp16, weight = module_flow_span_ordered_encoder_blocks_0_attention_proj_weight_to_fp16_quantized, x = input_9_cast_fp16)[name = string("linear_1_cast_fp16")];
125
+ tensor<fp16, [1, 512, 512]> input_13_cast_fp16 = add(x = hidden_3_cast_fp16, y = linear_1_cast_fp16)[name = string("input_13_cast_fp16")];
126
+ tensor<int32, [1]> input_15_axes_0 = const()[name = string("input_15_axes_0"), val = tensor<int32, [1]>([-1])];
127
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_0_norm_feedforward_weight_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_0_norm_feedforward_weight_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(1502272)))];
128
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_0_norm_feedforward_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_0_norm_feedforward_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(1503360)))];
129
+ tensor<fp16, [1, 512, 512]> input_15_cast_fp16 = layer_norm(axes = input_15_axes_0, beta = module_flow_span_ordered_encoder_blocks_0_norm_feedforward_bias_to_fp16, epsilon = var_28_to_fp16, gamma = module_flow_span_ordered_encoder_blocks_0_norm_feedforward_weight_to_fp16, x = input_13_cast_fp16)[name = string("input_15_cast_fp16")];
130
+ tensor<fp16, [2048, 512]> module_flow_span_ordered_encoder_blocks_0_feedforward_0_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [2048, 512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(1504448))), scale = tensor<fp16, [2048, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(2553088))))[name = string("module_flow_span_ordered_encoder_blocks_0_feedforward_0_weight_to_fp16_quantized")];
131
+ tensor<fp16, [2048]> module_flow_span_ordered_encoder_blocks_0_feedforward_0_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_0_feedforward_0_bias_to_fp16"), val = tensor<fp16, [2048]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(2557248)))];
132
+ tensor<fp16, [1, 512, 2048]> linear_2_cast_fp16 = linear(bias = module_flow_span_ordered_encoder_blocks_0_feedforward_0_bias_to_fp16, weight = module_flow_span_ordered_encoder_blocks_0_feedforward_0_weight_to_fp16_quantized, x = input_15_cast_fp16)[name = string("linear_2_cast_fp16")];
133
+ string input_19_mode_0 = const()[name = string("input_19_mode_0"), val = string("TANH_APPROXIMATION")];
134
+ tensor<fp16, [1, 512, 2048]> input_19_cast_fp16 = gelu(mode = input_19_mode_0, x = linear_2_cast_fp16)[name = string("input_19_cast_fp16")];
135
+ tensor<fp16, [512, 2048]> module_flow_span_ordered_encoder_blocks_0_feedforward_2_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [512, 2048]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(2561408))), scale = tensor<fp16, [512, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(3610048))))[name = string("module_flow_span_ordered_encoder_blocks_0_feedforward_2_weight_to_fp16_quantized")];
136
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_0_feedforward_2_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_0_feedforward_2_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(3611136)))];
137
+ tensor<fp16, [1, 512, 512]> linear_3_cast_fp16 = linear(bias = module_flow_span_ordered_encoder_blocks_0_feedforward_2_bias_to_fp16, weight = module_flow_span_ordered_encoder_blocks_0_feedforward_2_weight_to_fp16_quantized, x = input_19_cast_fp16)[name = string("linear_3_cast_fp16")];
138
+ tensor<fp16, [1, 512, 512]> hidden_5_cast_fp16 = add(x = input_13_cast_fp16, y = linear_3_cast_fp16)[name = string("hidden_5_cast_fp16")];
139
+ tensor<fp16, [1, 512, 512]> hidden_7_cast_fp16 = select(a = var_18_to_fp16, b = hidden_5_cast_fp16, cond = var_83)[name = string("hidden_7_cast_fp16")];
140
+ tensor<int32, [1]> input_23_axes_0 = const()[name = string("input_23_axes_0"), val = tensor<int32, [1]>([-1])];
141
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_1_norm_attention_weight_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_1_norm_attention_weight_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(3612224)))];
142
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_1_norm_attention_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_1_norm_attention_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(3613312)))];
143
+ tensor<fp16, [1, 512, 512]> input_23_cast_fp16 = layer_norm(axes = input_23_axes_0, beta = module_flow_span_ordered_encoder_blocks_1_norm_attention_bias_to_fp16, epsilon = var_28_to_fp16, gamma = module_flow_span_ordered_encoder_blocks_1_norm_attention_weight_to_fp16, x = hidden_7_cast_fp16)[name = string("input_23_cast_fp16")];
144
+ tensor<fp16, [1536, 512]> module_flow_span_ordered_encoder_blocks_1_qkv_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [1536, 512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(3614400))), scale = tensor<fp16, [1536, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4400896))))[name = string("module_flow_span_ordered_encoder_blocks_1_qkv_weight_to_fp16_quantized")];
145
+ tensor<fp16, [1536]> module_flow_span_ordered_encoder_blocks_1_qkv_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_1_qkv_bias_to_fp16"), val = tensor<fp16, [1536]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4404032)))];
146
+ tensor<fp16, [1, 512, 1536]> linear_4_cast_fp16 = linear(bias = module_flow_span_ordered_encoder_blocks_1_qkv_bias_to_fp16, weight = module_flow_span_ordered_encoder_blocks_1_qkv_weight_to_fp16_quantized, x = input_23_cast_fp16)[name = string("linear_4_cast_fp16")];
147
+ tensor<int32, [5]> var_168 = const()[name = string("op_168"), val = tensor<int32, [5]>([1, 512, 3, 8, 64])];
148
+ tensor<fp16, [1, 512, 3, 8, 64]> qkv_3_cast_fp16 = reshape(shape = var_168, x = linear_4_cast_fp16)[name = string("qkv_3_cast_fp16")];
149
+ tensor<int32, [3]> var_170_split_sizes_0 = const()[name = string("op_170_split_sizes_0"), val = tensor<int32, [3]>([1, 1, 1])];
150
+ int32 var_170_axis_0 = const()[name = string("op_170_axis_0"), val = int32(2)];
151
+ tensor<fp16, [1, 512, 1, 8, 64]> var_170_cast_fp16_0, tensor<fp16, [1, 512, 1, 8, 64]> var_170_cast_fp16_1, tensor<fp16, [1, 512, 1, 8, 64]> var_170_cast_fp16_2 = split(axis = var_170_axis_0, split_sizes = var_170_split_sizes_0, x = qkv_3_cast_fp16)[name = string("op_170_cast_fp16")];
152
+ tensor<int32, [1]> squeeze_3_axes_0 = const()[name = string("squeeze_3_axes_0"), val = tensor<int32, [1]>([2])];
153
+ tensor<fp16, [1, 512, 8, 64]> squeeze_3_cast_fp16 = squeeze(axes = squeeze_3_axes_0, x = var_170_cast_fp16_0)[name = string("squeeze_3_cast_fp16")];
154
+ tensor<int32, [1]> squeeze_4_axes_0 = const()[name = string("squeeze_4_axes_0"), val = tensor<int32, [1]>([2])];
155
+ tensor<fp16, [1, 512, 8, 64]> squeeze_4_cast_fp16 = squeeze(axes = squeeze_4_axes_0, x = var_170_cast_fp16_1)[name = string("squeeze_4_cast_fp16")];
156
+ tensor<int32, [1]> squeeze_5_axes_0 = const()[name = string("squeeze_5_axes_0"), val = tensor<int32, [1]>([2])];
157
+ tensor<fp16, [1, 512, 8, 64]> squeeze_5_cast_fp16 = squeeze(axes = squeeze_5_axes_0, x = var_170_cast_fp16_2)[name = string("squeeze_5_cast_fp16")];
158
+ tensor<int32, [4]> value_perm_0 = const()[name = string("value_perm_0"), val = tensor<int32, [4]>([0, 2, -3, -1])];
159
+ bool var_178_transpose_x_0 = const()[name = string("op_178_transpose_x_0"), val = bool(false)];
160
+ bool var_178_transpose_y_0 = const()[name = string("op_178_transpose_y_0"), val = bool(false)];
161
+ tensor<int32, [4]> transpose_10_perm_0 = const()[name = string("transpose_10_perm_0"), val = tensor<int32, [4]>([0, 2, -3, -1])];
162
+ tensor<int32, [4]> transpose_11_perm_0 = const()[name = string("transpose_11_perm_0"), val = tensor<int32, [4]>([0, 2, -1, -3])];
163
+ tensor<fp16, [1, 8, 64, 512]> transpose_11 = transpose(perm = transpose_11_perm_0, x = squeeze_4_cast_fp16)[name = string("transpose_14")];
164
+ tensor<fp16, [1, 8, 512, 64]> transpose_10 = transpose(perm = transpose_10_perm_0, x = squeeze_3_cast_fp16)[name = string("transpose_15")];
165
+ tensor<fp16, [1, 8, 512, 512]> var_178_cast_fp16 = matmul(transpose_x = var_178_transpose_x_0, transpose_y = var_178_transpose_y_0, x = transpose_10, y = transpose_11)[name = string("op_178_cast_fp16")];
166
+ fp16 var_179_to_fp16 = const()[name = string("op_179_to_fp16"), val = fp16(0x1p-3)];
167
+ tensor<fp16, [1, 8, 512, 512]> scores_5_cast_fp16 = mul(x = var_178_cast_fp16, y = var_179_to_fp16)[name = string("scores_5_cast_fp16")];
168
+ tensor<fp16, [1, 8, 512, 512]> scores_cast_fp16 = select(a = var_23_to_fp16, b = scores_5_cast_fp16, cond = var_117)[name = string("scores_cast_fp16")];
169
+ tensor<fp16, [1, 8, 512, 512]> var_187_cast_fp16 = softmax(axis = var_30, x = scores_cast_fp16)[name = string("op_187_cast_fp16")];
170
+ tensor<fp16, [1, 8, 512, 512]> weights_5_cast_fp16 = mul(x = var_187_cast_fp16, y = var_115_to_fp16)[name = string("weights_5_cast_fp16")];
171
+ tensor<int32, [1]> var_191_axes_0 = const()[name = string("op_191_axes_0"), val = tensor<int32, [1]>([-1])];
172
+ bool var_191_keep_dims_0 = const()[name = string("op_191_keep_dims_0"), val = bool(true)];
173
+ tensor<fp16, [1, 8, 512, 1]> var_191_cast_fp16 = reduce_sum(axes = var_191_axes_0, keep_dims = var_191_keep_dims_0, x = weights_5_cast_fp16)[name = string("op_191_cast_fp16")];
174
+ tensor<fp16, [1, 8, 512, 1]> var_192_cast_fp16 = maximum(x = var_191_cast_fp16, y = var_21_to_fp16)[name = string("op_192_cast_fp16")];
175
+ tensor<fp16, [1, 8, 512, 512]> weights_cast_fp16 = real_div(x = weights_5_cast_fp16, y = var_192_cast_fp16)[name = string("weights_cast_fp16")];
176
+ bool var_194_transpose_x_0 = const()[name = string("op_194_transpose_x_0"), val = bool(false)];
177
+ bool var_194_transpose_y_0 = const()[name = string("op_194_transpose_y_0"), val = bool(false)];
178
+ tensor<fp16, [1, 8, 512, 64]> value_cast_fp16 = transpose(perm = value_perm_0, x = squeeze_5_cast_fp16)[name = string("transpose_13")];
179
+ tensor<fp16, [1, 8, 512, 64]> var_194_cast_fp16 = matmul(transpose_x = var_194_transpose_x_0, transpose_y = var_194_transpose_y_0, x = weights_cast_fp16, y = value_cast_fp16)[name = string("op_194_cast_fp16")];
180
+ tensor<int32, [4]> var_195_perm_0 = const()[name = string("op_195_perm_0"), val = tensor<int32, [4]>([0, 2, 1, 3])];
181
+ tensor<int32, [3]> var_196 = const()[name = string("op_196"), val = tensor<int32, [3]>([1, 512, 512])];
182
+ tensor<fp16, [1, 512, 8, 64]> var_195_cast_fp16 = transpose(perm = var_195_perm_0, x = var_194_cast_fp16)[name = string("transpose_12")];
183
+ tensor<fp16, [1, 512, 512]> input_25_cast_fp16 = reshape(shape = var_196, x = var_195_cast_fp16)[name = string("input_25_cast_fp16")];
184
+ tensor<fp16, [512, 512]> module_flow_span_ordered_encoder_blocks_1_attention_proj_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [512, 512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4407168))), scale = tensor<fp16, [512, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4669376))))[name = string("module_flow_span_ordered_encoder_blocks_1_attention_proj_weight_to_fp16_quantized")];
185
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_1_attention_proj_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_1_attention_proj_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4670464)))];
186
+ tensor<fp16, [1, 512, 512]> linear_5_cast_fp16 = linear(bias = module_flow_span_ordered_encoder_blocks_1_attention_proj_bias_to_fp16, weight = module_flow_span_ordered_encoder_blocks_1_attention_proj_weight_to_fp16_quantized, x = input_25_cast_fp16)[name = string("linear_5_cast_fp16")];
187
+ tensor<fp16, [1, 512, 512]> input_29_cast_fp16 = add(x = hidden_7_cast_fp16, y = linear_5_cast_fp16)[name = string("input_29_cast_fp16")];
188
+ tensor<int32, [1]> input_31_axes_0 = const()[name = string("input_31_axes_0"), val = tensor<int32, [1]>([-1])];
189
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_1_norm_feedforward_weight_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_1_norm_feedforward_weight_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4671552)))];
190
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_1_norm_feedforward_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_1_norm_feedforward_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4672640)))];
191
+ tensor<fp16, [1, 512, 512]> input_31_cast_fp16 = layer_norm(axes = input_31_axes_0, beta = module_flow_span_ordered_encoder_blocks_1_norm_feedforward_bias_to_fp16, epsilon = var_28_to_fp16, gamma = module_flow_span_ordered_encoder_blocks_1_norm_feedforward_weight_to_fp16, x = input_29_cast_fp16)[name = string("input_31_cast_fp16")];
192
+ tensor<fp16, [2048, 512]> module_flow_span_ordered_encoder_blocks_1_feedforward_0_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [2048, 512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4673728))), scale = tensor<fp16, [2048, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(5722368))))[name = string("module_flow_span_ordered_encoder_blocks_1_feedforward_0_weight_to_fp16_quantized")];
193
+ tensor<fp16, [2048]> module_flow_span_ordered_encoder_blocks_1_feedforward_0_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_1_feedforward_0_bias_to_fp16"), val = tensor<fp16, [2048]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(5726528)))];
194
+ tensor<fp16, [1, 512, 2048]> linear_6_cast_fp16 = linear(bias = module_flow_span_ordered_encoder_blocks_1_feedforward_0_bias_to_fp16, weight = module_flow_span_ordered_encoder_blocks_1_feedforward_0_weight_to_fp16_quantized, x = input_31_cast_fp16)[name = string("linear_6_cast_fp16")];
195
+ string input_35_mode_0 = const()[name = string("input_35_mode_0"), val = string("TANH_APPROXIMATION")];
196
+ tensor<fp16, [1, 512, 2048]> input_35_cast_fp16 = gelu(mode = input_35_mode_0, x = linear_6_cast_fp16)[name = string("input_35_cast_fp16")];
197
+ tensor<fp16, [512, 2048]> module_flow_span_ordered_encoder_blocks_1_feedforward_2_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [512, 2048]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(5730688))), scale = tensor<fp16, [512, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(6779328))))[name = string("module_flow_span_ordered_encoder_blocks_1_feedforward_2_weight_to_fp16_quantized")];
198
+ tensor<fp16, [512]> module_flow_span_ordered_encoder_blocks_1_feedforward_2_bias_to_fp16 = const()[name = string("module_flow_span_ordered_encoder_blocks_1_feedforward_2_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(6780416)))];
199
+ tensor<fp16, [1, 512, 512]> linear_7_cast_fp16 = linear(bias = module_flow_span_ordered_encoder_blocks_1_feedforward_2_bias_to_fp16, weight = module_flow_span_ordered_encoder_blocks_1_feedforward_2_weight_to_fp16_quantized, x = input_35_cast_fp16)[name = string("linear_7_cast_fp16")];
200
+ tensor<fp16, [1, 512, 512]> hidden_9_cast_fp16 = add(x = input_29_cast_fp16, y = linear_7_cast_fp16)[name = string("hidden_9_cast_fp16")];
201
+ tensor<fp16, [1, 512, 512]> hidden_cast_fp16 = select(a = var_18_to_fp16, b = hidden_9_cast_fp16, cond = var_83)[name = string("hidden_cast_fp16")];
202
+ tensor<bool, [1, 512]> var_224 = equal(x = input_3, y = var_40)[name = string("op_224")];
203
+ tensor<bool, [1, 512]> var_225 = logical_and(x = span_context_mask_1, y = var_224)[name = string("op_225")];
204
+ tensor<int32, [1]> var_228_axes_0 = const()[name = string("op_228_axes_0"), val = tensor<int32, [1]>([1])];
205
+ bool var_228_keep_dims_0 = const()[name = string("op_228_keep_dims_0"), val = bool(true)];
206
+ string weight_15_to_fp16_dtype_0 = const()[name = string("weight_15_to_fp16_dtype_0"), val = string("fp16")];
207
+ tensor<fp16, [1, 512]> var_225_to_fp16 = cast(dtype = weight_15_to_fp16_dtype_0, x = var_225)[name = string("cast_5")];
208
+ tensor<fp16, [1, 1]> var_228_cast_fp16 = reduce_sum(axes = var_228_axes_0, keep_dims = var_228_keep_dims_0, x = var_225_to_fp16)[name = string("op_228_cast_fp16")];
209
+ fp16 var_17_to_fp16 = const()[name = string("op_17_to_fp16"), val = fp16(0x1p+0)];
210
+ tensor<fp16, [1, 1]> var_229_cast_fp16 = maximum(x = var_228_cast_fp16, y = var_17_to_fp16)[name = string("op_229_cast_fp16")];
211
+ tensor<fp16, [1, 512]> weight_17_cast_fp16 = real_div(x = var_225_to_fp16, y = var_229_cast_fp16)[name = string("weight_17_cast_fp16")];
212
+ tensor<int32, [1]> var_231_axes_0 = const()[name = string("op_231_axes_0"), val = tensor<int32, [1]>([-1])];
213
+ tensor<fp16, [1, 512, 1]> var_231_cast_fp16 = expand_dims(axes = var_231_axes_0, x = weight_17_cast_fp16)[name = string("op_231_cast_fp16")];
214
+ tensor<fp16, [1, 512, 512]> var_232_cast_fp16 = mul(x = hidden_cast_fp16, y = var_231_cast_fp16)[name = string("op_232_cast_fp16")];
215
+ tensor<int32, [1]> var_234_axes_0 = const()[name = string("op_234_axes_0"), val = tensor<int32, [1]>([1])];
216
+ bool var_234_keep_dims_0 = const()[name = string("op_234_keep_dims_0"), val = bool(false)];
217
+ tensor<fp16, [1, 512]> var_234_cast_fp16 = reduce_sum(axes = var_234_axes_0, keep_dims = var_234_keep_dims_0, x = var_232_cast_fp16)[name = string("op_234_cast_fp16")];
218
+ tensor<bool, [1, 512]> var_235 = equal(x = input_3, y = var_38)[name = string("op_235")];
219
+ tensor<bool, [1, 512]> var_236 = logical_and(x = span_context_mask_1, y = var_235)[name = string("op_236")];
220
+ tensor<int32, [1]> var_239_axes_0 = const()[name = string("op_239_axes_0"), val = tensor<int32, [1]>([1])];
221
+ bool var_239_keep_dims_0 = const()[name = string("op_239_keep_dims_0"), val = bool(true)];
222
+ string weight_19_to_fp16_dtype_0 = const()[name = string("weight_19_to_fp16_dtype_0"), val = string("fp16")];
223
+ tensor<fp16, [1, 512]> var_236_to_fp16 = cast(dtype = weight_19_to_fp16_dtype_0, x = var_236)[name = string("cast_4")];
224
+ tensor<fp16, [1, 1]> var_239_cast_fp16 = reduce_sum(axes = var_239_axes_0, keep_dims = var_239_keep_dims_0, x = var_236_to_fp16)[name = string("op_239_cast_fp16")];
225
+ tensor<fp16, [1, 1]> var_240_cast_fp16 = maximum(x = var_239_cast_fp16, y = var_17_to_fp16)[name = string("op_240_cast_fp16")];
226
+ tensor<fp16, [1, 512]> weight_21_cast_fp16 = real_div(x = var_236_to_fp16, y = var_240_cast_fp16)[name = string("weight_21_cast_fp16")];
227
+ tensor<int32, [1]> var_242_axes_0 = const()[name = string("op_242_axes_0"), val = tensor<int32, [1]>([-1])];
228
+ tensor<fp16, [1, 512, 1]> var_242_cast_fp16 = expand_dims(axes = var_242_axes_0, x = weight_21_cast_fp16)[name = string("op_242_cast_fp16")];
229
+ tensor<fp16, [1, 512, 512]> var_243_cast_fp16 = mul(x = hidden_cast_fp16, y = var_242_cast_fp16)[name = string("op_243_cast_fp16")];
230
+ tensor<int32, [1]> var_245_axes_0 = const()[name = string("op_245_axes_0"), val = tensor<int32, [1]>([1])];
231
+ bool var_245_keep_dims_0 = const()[name = string("op_245_keep_dims_0"), val = bool(false)];
232
+ tensor<fp16, [1, 512]> var_245_cast_fp16 = reduce_sum(axes = var_245_axes_0, keep_dims = var_245_keep_dims_0, x = var_243_cast_fp16)[name = string("op_245_cast_fp16")];
233
+ tensor<bool, [1, 512]> var_246 = equal(x = input_3, y = var_35)[name = string("op_246")];
234
+ tensor<bool, [1, 512]> var_247 = logical_and(x = span_context_mask_1, y = var_246)[name = string("op_247")];
235
+ tensor<int32, [1]> var_250_axes_0 = const()[name = string("op_250_axes_0"), val = tensor<int32, [1]>([1])];
236
+ bool var_250_keep_dims_0 = const()[name = string("op_250_keep_dims_0"), val = bool(true)];
237
+ string weight_23_to_fp16_dtype_0 = const()[name = string("weight_23_to_fp16_dtype_0"), val = string("fp16")];
238
+ tensor<fp16, [1, 512]> var_247_to_fp16 = cast(dtype = weight_23_to_fp16_dtype_0, x = var_247)[name = string("cast_3")];
239
+ tensor<fp16, [1, 1]> var_250_cast_fp16 = reduce_sum(axes = var_250_axes_0, keep_dims = var_250_keep_dims_0, x = var_247_to_fp16)[name = string("op_250_cast_fp16")];
240
+ tensor<fp16, [1, 1]> var_251_cast_fp16 = maximum(x = var_250_cast_fp16, y = var_17_to_fp16)[name = string("op_251_cast_fp16")];
241
+ tensor<fp16, [1, 512]> weight_25_cast_fp16 = real_div(x = var_247_to_fp16, y = var_251_cast_fp16)[name = string("weight_25_cast_fp16")];
242
+ tensor<int32, [1]> var_253_axes_0 = const()[name = string("op_253_axes_0"), val = tensor<int32, [1]>([-1])];
243
+ tensor<fp16, [1, 512, 1]> var_253_cast_fp16 = expand_dims(axes = var_253_axes_0, x = weight_25_cast_fp16)[name = string("op_253_cast_fp16")];
244
+ tensor<fp16, [1, 512, 512]> var_254_cast_fp16 = mul(x = hidden_cast_fp16, y = var_253_cast_fp16)[name = string("op_254_cast_fp16")];
245
+ tensor<int32, [1]> var_256_axes_0 = const()[name = string("op_256_axes_0"), val = tensor<int32, [1]>([1])];
246
+ bool var_256_keep_dims_0 = const()[name = string("op_256_keep_dims_0"), val = bool(false)];
247
+ tensor<fp16, [1, 512]> var_256_cast_fp16 = reduce_sum(axes = var_256_axes_0, keep_dims = var_256_keep_dims_0, x = var_254_cast_fp16)[name = string("op_256_cast_fp16")];
248
+ bool input_39_interleave_0 = const()[name = string("input_39_interleave_0"), val = bool(false)];
249
+ tensor<fp16, [1, 1536]> input_39_cast_fp16 = concat(axis = var_30, interleave = input_39_interleave_0, values = (var_234_cast_fp16, var_245_cast_fp16, var_256_cast_fp16))[name = string("input_39_cast_fp16")];
250
+ tensor<fp16, [512, 1536]> module_flow_span_segment_pool_proj_weight_to_fp16_quantized = constexpr_blockwise_shift_scale(data = tensor<int8, [512, 1536]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(6781504))), scale = tensor<fp16, [512, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(7568000))))[name = string("module_flow_span_segment_pool_proj_weight_to_fp16_quantized")];
251
+ tensor<fp16, [512]> module_flow_span_segment_pool_proj_bias_to_fp16 = const()[name = string("module_flow_span_segment_pool_proj_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(7569088)))];
252
+ tensor<fp16, [1, 512]> linear_8_cast_fp16 = linear(bias = module_flow_span_segment_pool_proj_bias_to_fp16, weight = module_flow_span_segment_pool_proj_weight_to_fp16_quantized, x = input_39_cast_fp16)[name = string("linear_8_cast_fp16")];
253
+ tensor<int32, [1]> pooled_axes_0 = const()[name = string("pooled_axes_0"), val = tensor<int32, [1]>([-1])];
254
+ tensor<fp16, [512]> module_flow_span_context_norm_weight_to_fp16 = const()[name = string("module_flow_span_context_norm_weight_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(7570176)))];
255
+ tensor<fp16, [512]> module_flow_span_context_norm_bias_to_fp16 = const()[name = string("module_flow_span_context_norm_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(7571264)))];
256
+ tensor<fp16, [1, 512]> pooled_cast_fp16 = layer_norm(axes = pooled_axes_0, beta = module_flow_span_context_norm_bias_to_fp16, epsilon = var_28_to_fp16, gamma = module_flow_span_context_norm_weight_to_fp16, x = linear_8_cast_fp16)[name = string("pooled_cast_fp16")];
257
+ tensor<int32, [1]> var_38_list = const()[name = string("op_38_list"), val = tensor<int32, [1]>([1])];
258
+ bool reduce_max_0_keep_dims_0 = const()[name = string("reduce_max_0_keep_dims_0"), val = bool(true)];
259
+ tensor<int32, [1, 1]> reduce_max_0 = reduce_max(axes = var_38_list, keep_dims = reduce_max_0_keep_dims_0, x = var_64)[name = string("reduce_max_0")];
260
+ string var_266_dtype_0 = const()[name = string("op_266_dtype_0"), val = string("bool")];
261
+ tensor<bool, [1, 1]> var_266 = cast(dtype = var_266_dtype_0, x = reduce_max_0)[name = string("cast_2")];
262
+ tensor<bool, [1, 1]> var_267 = logical_not(x = var_266)[name = string("op_267")];
263
+ tensor<fp16, [1, 512]> var_268_cast_fp16 = select(a = var_18_to_fp16, b = pooled_cast_fp16, cond = var_267)[name = string("op_268_cast_fp16")];
264
+ string var_268_cast_fp16_to_fp32_dtype_0 = const()[name = string("op_268_cast_fp16_to_fp32_dtype_0"), val = string("fp32")];
265
+ tensor<fp32, [1, 512]> span_context_hidden = cast(dtype = var_268_cast_fp16_to_fp32_dtype_0, x = var_268_cast_fp16)[name = string("cast_1")];
266
+ } -> (span_context_hidden);
267
+ }