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
- README.md +26 -5
- 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.
|
| 111 |
-
3.
|
| 112 |
-
4.
|
| 113 |
```bash
|
| 114 |
-
|
| 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 |
+
}
|