Lloyd McFarlin commited on
Commit
ff5898a
·
1 Parent(s): 7c6e105

docs: refresh model card (provenance, consumption) + ship engine config.json

Browse files

- New Provenance section: adopt the per-promotion convention (commit
messages record train-repo SHA + MLflow run) and backfill v1-ljspeech
best-effort (run lyrical-goat-689, export-fix a537e03).
- Fix stale consumption steps: the workspace file is now sonora.tflite
under Reference/Models/ resolved via prosodia_models.json roles;
drop the bogus cargo invocation for apps/tuner/build.sh.
- Add v1-ljspeech/config.json (locked 178-symbol vocab, sample_rate
22050) so the e2e artifacts are self-describing — the Prosodia engine
reads this adjacent to the model file. bootstrap.sh now fetches it.
- YAML metrics: add wer (ASR WER 0.000 on the fixed float32 export).

train-repo: n/a (docs/config only) run: n/a

Files changed (2) hide show
  1. README.md +26 -5
  2. v1-ljspeech/config.json +183 -0
README.md CHANGED
@@ -15,6 +15,7 @@ datasets:
15
  - ljspeech
16
  metrics:
17
  - loss
 
18
  pipeline_tag: text-to-speech
19
  ---
20
 
@@ -64,6 +65,26 @@ The model is distributed in multiple formats for execution on different hardware
64
 
65
  ---
66
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  ## Training Environment & Hardware
68
 
69
  The model was trained locally on the `ai-lab-0` workstation using a containerized AMD ROCm configuration:
@@ -106,12 +127,12 @@ The model was trained locally on the `ai-lab-0` workstation using a containerize
106
  The compiled model weights are loaded dynamically by the `StageCoordinator` through the TFLite runtime C-API.
107
 
108
  To use this model locally:
109
- 1. Download `checkpoint_epoch=199_e2e_float32.tflite` (the verified, `f32`-I/O artifact; the float16 build needs a delegate / engine `f16` support — see the format notes above).
110
- 2. Rename the file to `styletts2_lite.tflite` (or update your environment configs to load the custom filename).
111
- 3. Place it in your shared `Models/` directory.
112
- 4. Run your application:
113
  ```bash
114
- cargo run --package tuner-app
115
  ```
116
 
117
  ### Input/Output Tensor Node Contract
 
15
  - ljspeech
16
  metrics:
17
  - loss
18
+ - wer
19
  pipeline_tag: text-to-speech
20
  ---
21
 
 
65
 
66
  ---
67
 
68
+ ## Provenance
69
+
70
+ **Convention (adopted 2026-07-13):** every artifact promotion into this registry records, in its
71
+ commit message, the training-repo state and run that produced it — `train-repo: <Sonora GitHub
72
+ SHA>` and `run: <MLflow run name>` (plus the export toolchain when relevant). Commits before this
73
+ date predate the convention.
74
+
75
+ **v1-ljspeech (backfilled, best-effort):**
76
+ * **Training:** MLflow run `lyrical-goat-689` on `ai-lab-0` (`sonora_training` container),
77
+ 2026-07-10 → 11; 260 epochs, checkpoint Epoch 199 selected at the validation-loss plateau.
78
+ The exact training-repo SHA was not recorded at run time (pre-convention).
79
+ * **Export fix & re-export:** training repo commit
80
+ [`a537e03`](https://github.com/Artificial-Humanity/Sonora/commit/a537e03) (channels-last
81
+ encoder LayerNorm rewrite), re-exported 2026-07-12; fidelity gate
82
+ `scripts/export_fidelity_referee.py` (ONNX↔TFLite cosine 1.0000, ASR WER 0.000).
83
+ * **Split lane:** same Epoch-199 weights, converted per-module with `litert-torch` via the
84
+ [litert-samples](https://github.com/google-ai-edge/litert-samples) Matcha recipe.
85
+
86
+ ---
87
+
88
  ## Training Environment & Hardware
89
 
90
  The model was trained locally on the `ai-lab-0` workstation using a containerized AMD ROCm configuration:
 
127
  The compiled model weights are loaded dynamically by the `StageCoordinator` through the TFLite runtime C-API.
128
 
129
  To use this model locally:
130
+ 1. Download `checkpoint_epoch=199_e2e_float32.tflite` (the verified, `f32`-I/O artifact; the float16 build needs a delegate / engine `f16` support — see the format notes above) and the adjacent `v1-ljspeech/config.json` (the engine contract: locked 178-symbol vocab + `sample_rate` — the Prosodia engine reads it next to the model file).
131
+ 2. Place both next to each other where your config points; name the model file whatever your role config declares (the Artificial-Humanity workspace uses `sonora.tflite`, resolved via the `actor` role in Prosodia's `prosodia_models.json`).
132
+ 3. In the Artificial-Humanity workspace this is automated: the umbrella `bootstrap.sh` copies the blessed artifact + config into `Reference/Models/`.
133
+ 4. Build and run the harness:
134
  ```bash
135
+ Prosodia/apps/tuner/build.sh
136
  ```
137
 
138
  ### Input/Output Tensor Node Contract
v1-ljspeech/config.json ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "sample_rate": 22050,
3
+ "vocab": {
4
+ "_": 0,
5
+ ";": 1,
6
+ ":": 2,
7
+ ",": 3,
8
+ ".": 4,
9
+ "!": 5,
10
+ "?": 6,
11
+ "¡": 7,
12
+ "¿": 8,
13
+ "—": 9,
14
+ "…": 10,
15
+ "\"": 11,
16
+ "«": 12,
17
+ "»": 13,
18
+ "“": 14,
19
+ "”": 15,
20
+ " ": 16,
21
+ "A": 17,
22
+ "B": 18,
23
+ "C": 19,
24
+ "D": 20,
25
+ "E": 21,
26
+ "F": 22,
27
+ "G": 23,
28
+ "H": 24,
29
+ "I": 25,
30
+ "J": 26,
31
+ "K": 27,
32
+ "L": 28,
33
+ "M": 29,
34
+ "N": 30,
35
+ "O": 31,
36
+ "P": 32,
37
+ "Q": 33,
38
+ "R": 34,
39
+ "S": 35,
40
+ "T": 36,
41
+ "U": 37,
42
+ "V": 38,
43
+ "W": 39,
44
+ "X": 40,
45
+ "Y": 41,
46
+ "Z": 42,
47
+ "a": 43,
48
+ "b": 44,
49
+ "c": 45,
50
+ "d": 46,
51
+ "e": 47,
52
+ "f": 48,
53
+ "g": 49,
54
+ "h": 50,
55
+ "i": 51,
56
+ "j": 52,
57
+ "k": 53,
58
+ "l": 54,
59
+ "m": 55,
60
+ "n": 56,
61
+ "o": 57,
62
+ "p": 58,
63
+ "q": 59,
64
+ "r": 60,
65
+ "s": 61,
66
+ "t": 62,
67
+ "u": 63,
68
+ "v": 64,
69
+ "w": 65,
70
+ "x": 66,
71
+ "y": 67,
72
+ "z": 68,
73
+ "ɑ": 69,
74
+ "ɐ": 70,
75
+ "ɒ": 71,
76
+ "æ": 72,
77
+ "ɓ": 73,
78
+ "ʙ": 74,
79
+ "β": 75,
80
+ "ɔ": 76,
81
+ "ɕ": 77,
82
+ "ç": 78,
83
+ "ɗ": 79,
84
+ "ɖ": 80,
85
+ "ð": 81,
86
+ "ʤ": 82,
87
+ "ə": 83,
88
+ "ɘ": 84,
89
+ "ɚ": 85,
90
+ "ɛ": 86,
91
+ "ɜ": 87,
92
+ "ɝ": 88,
93
+ "ɞ": 89,
94
+ "ɟ": 90,
95
+ "ʄ": 91,
96
+ "ɡ": 92,
97
+ "ɠ": 93,
98
+ "ɢ": 94,
99
+ "ʛ": 95,
100
+ "ɦ": 96,
101
+ "ɧ": 97,
102
+ "ħ": 98,
103
+ "ɥ": 99,
104
+ "ʜ": 100,
105
+ "ɨ": 101,
106
+ "ɪ": 102,
107
+ "ʝ": 103,
108
+ "ɭ": 104,
109
+ "ɬ": 105,
110
+ "ɫ": 106,
111
+ "ɮ": 107,
112
+ "ʟ": 108,
113
+ "ɱ": 109,
114
+ "ɯ": 110,
115
+ "ɰ": 111,
116
+ "ŋ": 112,
117
+ "ɳ": 113,
118
+ "ɲ": 114,
119
+ "ɴ": 115,
120
+ "ø": 116,
121
+ "ɵ": 117,
122
+ "ɸ": 118,
123
+ "θ": 119,
124
+ "œ": 120,
125
+ "ɶ": 121,
126
+ "ʘ": 122,
127
+ "ɹ": 123,
128
+ "ɺ": 124,
129
+ "ɾ": 125,
130
+ "ɻ": 126,
131
+ "ʀ": 127,
132
+ "ʁ": 128,
133
+ "ɽ": 129,
134
+ "ʂ": 130,
135
+ "ʃ": 131,
136
+ "ʈ": 132,
137
+ "ʧ": 133,
138
+ "ʉ": 134,
139
+ "ʊ": 135,
140
+ "ʋ": 136,
141
+ "ⱱ": 137,
142
+ "ʌ": 138,
143
+ "ɣ": 139,
144
+ "ɤ": 140,
145
+ "ʍ": 141,
146
+ "χ": 142,
147
+ "ʎ": 143,
148
+ "ʏ": 144,
149
+ "ʑ": 145,
150
+ "ʐ": 146,
151
+ "ʒ": 147,
152
+ "ʔ": 148,
153
+ "ʡ": 149,
154
+ "ʕ": 150,
155
+ "ʢ": 151,
156
+ "ǀ": 152,
157
+ "ǁ": 153,
158
+ "ǂ": 154,
159
+ "ǃ": 155,
160
+ "ˈ": 156,
161
+ "ˌ": 157,
162
+ "ː": 158,
163
+ "ˑ": 159,
164
+ "ʼ": 160,
165
+ "ʴ": 161,
166
+ "ʰ": 162,
167
+ "ʱ": 163,
168
+ "ʲ": 164,
169
+ "ʷ": 165,
170
+ "ˠ": 166,
171
+ "ˤ": 167,
172
+ "˞": 168,
173
+ "↓": 169,
174
+ "↑": 170,
175
+ "→": 171,
176
+ "↗": 172,
177
+ "↘": 173,
178
+ "'": 174,
179
+ "̩": 175,
180
+ "ᵻ": 176,
181
+ "ᵊ": 177
182
+ }
183
+ }