|
| 1 | +--- |
| 2 | +import Base from "../../layouts/Base.astro" |
| 3 | +--- |
| 4 | + |
| 5 | +<Base |
| 6 | + title="Phonological layer — Interscript" |
| 7 | + description="How Interscript maps optionally use secryst crystals and the interscript-ml contract to vocalize undiacritized input before transliteration." |
| 8 | +> |
| 9 | + <h1>Phonological layer</h1> |
| 10 | + |
| 11 | + <p class="lede"> |
| 12 | + Many writing systems underdetermine pronunciation. Undiacritized Arabic, |
| 13 | + nikud-less Hebrew, and unsegmented Thai cannot be transliterated |
| 14 | + unambiguously until the hidden vowels or phonemes are restored. That |
| 15 | + restoration is the <strong>phonological layer</strong> — optional, |
| 16 | + independent of the core map engine, and run by the |
| 17 | + <a href="https://www.secryst.org">secryst</a> crystal family against the |
| 18 | + <a href="https://github.com/interscript/interscript-ml">interscript-ml</a> |
| 19 | + contract. |
| 20 | + </p> |
| 21 | + |
| 22 | + <section> |
| 23 | + <h2>How the pieces fit</h2> |
| 24 | + <pre class="diagram"><code>map (deterministic) ──secryst()──► crystal (ONNX) |
| 25 | + │ |
| 26 | + ▼ |
| 27 | + interscript-ml contract |
| 28 | + models.yaml · IMF v1 · goldens</code></pre> |
| 29 | + <ul> |
| 30 | + <li><strong>interscript engines</strong> stay pure. A map that needs |
| 31 | + vocalization declares a <code>secryst</code> (or future |
| 32 | + <code>vocalize</code>) step; without a crystal installed, that map |
| 33 | + simply cannot run that step.</li> |
| 34 | + <li><strong>secryst crystals</strong> |
| 35 | + (<code>gem secryst</code> · <code>pip install secryst</code> · |
| 36 | + <code>npm i secryst</code> resolve a model id through |
| 37 | + <code>models.yaml</code>, download a sha256-verified IMF v1 zip, |
| 38 | + cache it under <code>~/.cache/secryst</code>, and run greedy ONNX |
| 39 | + inference locally. No cloud, no telemetry.</li> |
| 40 | + <li><strong>interscript-ml</strong> is the contract only: the index, |
| 41 | + the format, the golden sets, and the model zoo. It depends on |
| 42 | + nothing. Crystals depend only on it.</li> |
| 43 | + <li><strong>interscript-ml-train</strong> produces the teachers whose |
| 44 | + distilled students enter the zoo.</li> |
| 45 | + </ul> |
| 46 | + </section> |
| 47 | + |
| 48 | + <section> |
| 49 | + <h2>Environment</h2> |
| 50 | + <table> |
| 51 | + <thead><tr><th>Variable</th><th>Meaning</th><th>Default</th></tr></thead> |
| 52 | + <tbody> |
| 53 | + <tr><td><code>SECRYST_INDEX</code></td><td>Index URL or path</td> |
| 54 | + <td>interscript-ml <code>models.yaml</code> on GitHub</td></tr> |
| 55 | + <tr><td><code>SECRYST_CACHE</code></td><td>Artifact cache</td> |
| 56 | + <td><code>~/.cache/secryst</code></td></tr> |
| 57 | + </tbody> |
| 58 | + </table> |
| 59 | + </section> |
| 60 | + |
| 61 | + <section> |
| 62 | + <h2>Further reading</h2> |
| 63 | + <ul> |
| 64 | + <li><a href="https://www.secryst.org">secryst.org</a> — crystal primer, API reference, model zoo</li> |
| 65 | + <li><a href="https://www.secryst.org/spec.html">IMF v1 specification</a> — the normative contract text</li> |
| 66 | + <li><a href="https://github.com/interscript/interscript-ml/blob/main/SPEC.md">interscript-ml/SPEC.md</a> — canonical source of that text</li> |
| 67 | + <li><a href="https://github.com/interscript/interscript-ml-train">interscript-ml-train</a> — teachers</li> |
| 68 | + </ul> |
| 69 | + </section> |
| 70 | +</Base> |
| 71 | + |
| 72 | +<style> |
| 73 | + .lede { font-size: 1.1rem; line-height: 1.7; max-width: 70ch; } |
| 74 | + section { margin: 2.2rem 0; } |
| 75 | + h2 { font-size: 1.35rem; margin-bottom: 0.6rem; } |
| 76 | + p, li { line-height: 1.7; max-width: 70ch; } |
| 77 | + a { color: var(--color-brand); } |
| 78 | + code { font-size: 0.9em; } |
| 79 | + .diagram { |
| 80 | + background: var(--color-surface, #f4f4f5); |
| 81 | + border: 1px solid var(--color-border, #e4e4e7); |
| 82 | + border-radius: 8px; |
| 83 | + padding: 1rem 1.2rem; |
| 84 | + overflow-x: auto; |
| 85 | + font-size: 0.85rem; |
| 86 | + } |
| 87 | + table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: 0.95rem; } |
| 88 | + th, td { text-align: left; padding: 0.5rem 0.75rem; border-bottom: 1px solid var(--color-border, #e4e4e7); } |
| 89 | +</style> |
0 commit comments