Name PanPhon feature basis directly

This commit is contained in:
Meta Vens 2026-05-21 10:21:48 +01:00
commit 4f12b24794
11 changed files with 31 additions and 29 deletions

View file

@ -84,7 +84,7 @@ meaning packet while `panphon_sequence` carries the sound-shape evidence.
The first emitted training artifact is
`examples/speech-training/tiny-panphon-v0.1/batch.json`. It contains six pure
IPA seed packets (`a`, `pa`, `ta`, `ka`, `sa`, and `ma`) with zeroed semantic
text embeddings, inline PanPhon-style feature frames, deterministic
text embeddings, inline PanPhon 22-feature frames, deterministic
prosody/emphasis hints, and the Epiphany-compatible neutral 64-slot character
state vector. The AquaSynth-owned learned fields are present but marked
pending, so training can begin from a real Weksa artifact without pretending
@ -151,9 +151,9 @@ The v0.1 vector names are review labels, not the true learned latent space.
They stabilize Weksa output and help humans inspect what the training packet is
trying to preserve.
`panphon_sequence` is deterministic speech-surface evidence. Its first v0.1
implementation should use PanPhon-style ternary articulatory features as the
per-phone spine, then add stress, length, tone, boundary, and timing markers.
`panphon_sequence` is deterministic speech-surface evidence. Its v0.1
implementation uses PanPhon's 22 ternary articulatory features as the per-phone
spine, then adds stress, length, tone, boundary, and timing markers.
It is not a semantic embedding. AquaSynth trains
`aquasynth.panphon_sequence_encoder.v0.1` to compress that variable-length
sequence into the 256-float `phonetic_realization_embedding`.

View file

@ -9,7 +9,7 @@ It is intentionally small: six pure IPA packets for `a`, `pa`, `ta`, `ka`,
- a 1024-float semantic text embedding reference, zeroed because these are pure
IPA fixtures;
- an inline variable-length PanPhon-style feature sequence;
- an inline variable-length PanPhon 22-feature sequence;
- 32 Weksa-owned prosody/emphasis hints;
- a 64-float Epiphany-compatible neutral character-state vector reference;
- pending AquaSynth-owned 256-float phonetic realization and 64-float
@ -25,6 +25,7 @@ Run it from the Weksa repo root:
```
`batch.json` is the training entrypoint for AquaSynth. The individual packet
files are stable seed fixtures; the PanPhon feature values are hand-authored
for this six-phone crawl stage and should be regenerated from the canonical
PanPhon library before Weksa expands coverage.
files are stable seed fixtures. The schema uses PanPhon's 22-feature basis from
the start; the feature values in this six-phone crawl stage are hand-authored
and should be regenerated from the canonical PanPhon library before Weksa
expands coverage.

View file

@ -15,7 +15,7 @@
"values_ref": "vectors/zero-semantic-1024.json"
},
"panphon_sequence": {
"model_id": "panphon-style.v0.1.seed",
"model_id": "panphon.v0.1.seed",
"source": "hand-authored seed phones for AquaSynth crawl-stage parity tests",
"ipa": "ta",
"feature_order": [
@ -238,7 +238,7 @@
],
"notes": [
"This fixture is a crawl-stage training seed, not a full English lowering artifact.",
"PanPhon-style features are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"The schema uses PanPhon's 22-feature basis; these seed values are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"AquaSynth owns the learned 256-float phonetic realization embedding and 64-float utterance embedding."
],
"uncertainties": [

View file

@ -15,7 +15,7 @@
"values_ref": "vectors/zero-semantic-1024.json"
},
"panphon_sequence": {
"model_id": "panphon-style.v0.1.seed",
"model_id": "panphon.v0.1.seed",
"source": "hand-authored seed phones for AquaSynth crawl-stage parity tests",
"ipa": "pa",
"feature_order": [
@ -238,7 +238,7 @@
],
"notes": [
"This fixture is a crawl-stage training seed, not a full English lowering artifact.",
"PanPhon-style features are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"The schema uses PanPhon's 22-feature basis; these seed values are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"AquaSynth owns the learned 256-float phonetic realization embedding and 64-float utterance embedding."
],
"uncertainties": [

View file

@ -15,7 +15,7 @@
"values_ref": "vectors/zero-semantic-1024.json"
},
"panphon_sequence": {
"model_id": "panphon-style.v0.1.seed",
"model_id": "panphon.v0.1.seed",
"source": "hand-authored seed phones for AquaSynth crawl-stage parity tests",
"ipa": "ma",
"feature_order": [
@ -238,7 +238,7 @@
],
"notes": [
"This fixture is a crawl-stage training seed, not a full English lowering artifact.",
"PanPhon-style features are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"The schema uses PanPhon's 22-feature basis; these seed values are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"AquaSynth owns the learned 256-float phonetic realization embedding and 64-float utterance embedding."
],
"uncertainties": [

View file

@ -15,7 +15,7 @@
"values_ref": "vectors/zero-semantic-1024.json"
},
"panphon_sequence": {
"model_id": "panphon-style.v0.1.seed",
"model_id": "panphon.v0.1.seed",
"source": "hand-authored seed phones for AquaSynth crawl-stage parity tests",
"ipa": "a",
"feature_order": [
@ -203,7 +203,7 @@
],
"notes": [
"This fixture is a crawl-stage training seed, not a full English lowering artifact.",
"PanPhon-style features are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"The schema uses PanPhon's 22-feature basis; these seed values are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"AquaSynth owns the learned 256-float phonetic realization embedding and 64-float utterance embedding."
],
"uncertainties": [

View file

@ -15,7 +15,7 @@
"values_ref": "vectors/zero-semantic-1024.json"
},
"panphon_sequence": {
"model_id": "panphon-style.v0.1.seed",
"model_id": "panphon.v0.1.seed",
"source": "hand-authored seed phones for AquaSynth crawl-stage parity tests",
"ipa": "sa",
"feature_order": [
@ -238,7 +238,7 @@
],
"notes": [
"This fixture is a crawl-stage training seed, not a full English lowering artifact.",
"PanPhon-style features are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"The schema uses PanPhon's 22-feature basis; these seed values are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"AquaSynth owns the learned 256-float phonetic realization embedding and 64-float utterance embedding."
],
"uncertainties": [

View file

@ -15,7 +15,7 @@
"values_ref": "vectors/zero-semantic-1024.json"
},
"panphon_sequence": {
"model_id": "panphon-style.v0.1.seed",
"model_id": "panphon.v0.1.seed",
"source": "hand-authored seed phones for AquaSynth crawl-stage parity tests",
"ipa": "ka",
"feature_order": [
@ -238,7 +238,7 @@
],
"notes": [
"This fixture is a crawl-stage training seed, not a full English lowering artifact.",
"PanPhon-style features are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"The schema uses PanPhon's 22-feature basis; these seed values are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"AquaSynth owns the learned 256-float phonetic realization embedding and 64-float utterance embedding."
],
"uncertainties": [

View file

@ -60,7 +60,7 @@ phonetic fixtures may zero `inputs.speech_text_embedding` or point it to a
source meaning packet, but they must not smuggle phone strings through the
semantic-text channel.
The v0.1 phonetic channel uses PanPhon-style articulatory features as its
The v0.1 phonetic channel uses PanPhon's 22 articulatory features as its
per-phone base representation. Weksa supplies that sequence evidence. AquaSynth
owns the learned compression from variable-length PanPhon sequence into the
256-float `phonetic_realization_embedding`.
@ -68,5 +68,5 @@ owns the learned compression from variable-length PanPhon sequence into the
The first machine-readable seed batch lives at
`examples/speech-training/tiny-panphon-v0.1/batch.json`. It is the minimal
artifact AquaSynth should consume before broader English or alien pronunciation
coverage: six pure IPA packets with fixed vector widths, inline PanPhon-style
frames, and pending AquaSynth-owned learned outputs.
coverage: six pure IPA packets with fixed vector widths, inline PanPhon
22-feature frames, and pending AquaSynth-owned learned outputs.

View file

@ -232,7 +232,8 @@ landed_baseline:
`tools/emit_tiny_panphon_handoffs.py`.
- First machine-readable AquaSynth speech-training seed batch at
`examples/speech-training/tiny-panphon-v0.1/batch.json`, covering pure IPA
`a`, `pa`, `ta`, `ka`, `sa`, and `ma` with fixed v0.1 vector widths.
`a`, `pa`, `ta`, `ka`, `sa`, and `ma` with fixed v0.1 vector widths and
PanPhon's 22-feature basis.
- Weksa-to-AquaSynth utterance embedding handoff v0.1 fixes the training
vector contract: 1024-float `bge-m3:latest` speech text embedding,
variable-length PanPhon sequence evidence, a 256-float AquaSynth-owned

View file

@ -2,9 +2,9 @@
"""Emit tiny v0.1 utterance handoff fixtures for AquaSynth speech training.
This is intentionally not a Weksa runtime. It is a deterministic artifact
emitter for the first crawl-stage curriculum: simple IPA syllables with
PanPhon-style feature frames, fixed-width Weksa/Epiphany input vectors, and
pending AquaSynth-owned learned outputs.
emitter for the first crawl-stage curriculum: simple IPA syllables with the
PanPhon 22-feature basis, fixed-width Weksa/Epiphany input vectors, and pending
AquaSynth-owned learned outputs.
"""
from __future__ import annotations
@ -265,7 +265,7 @@ def packet(packet_id: str, ipa: str, phones: list[str], note: str) -> dict:
"values_ref": "vectors/zero-semantic-1024.json",
},
"panphon_sequence": {
"model_id": "panphon-style.v0.1.seed",
"model_id": "panphon.v0.1.seed",
"source": "hand-authored seed phones for AquaSynth crawl-stage parity tests",
"ipa": ipa,
"feature_order": FEATURE_ORDER,
@ -328,7 +328,7 @@ def packet(packet_id: str, ipa: str, phones: list[str], note: str) -> dict:
],
"notes": [
"This fixture is a crawl-stage training seed, not a full English lowering artifact.",
"PanPhon-style features are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"The schema uses PanPhon's 22-feature basis; these seed values are hand-authored for the six seed phones until Weksa wires a canonical PanPhon dependency.",
"AquaSynth owns the learned 256-float phonetic realization embedding and 64-float utterance embedding.",
],
"uncertainties": [