Add IPA gesture experiment harness

This commit is contained in:
Meta Vens 2026-05-29 22:20:46 +01:00
commit 62178531f9
9 changed files with 859 additions and 4 deletions

View file

@ -587,6 +587,48 @@ spent, what latency budget it was meant to respect, and how confident the
mapping was. A tiny audible witness that sounds right but arrives from a
clockless swamp is already teaching the model to lie with a lovely voice.
### Frozen IPA Gesture Rounds
`IpaGestureExperiment.WriteRound` is the first batch surface for IPA hypothesis
work. It writes a frozen round bundle under a caller-provided artifact root:
- `manifest.yaml`: target IPA descriptors, variant knobs, candidate script
paths, primitive timeline paths, and the authority boundary for the round.
- `candidates/*.aqua`: deterministic primitive vocal scripts using
`phoneme_gesture` plus the public `ControlSurface`/`ControlSpline` path.
- `timelines/*.csv`: `ProbeTimelineReport` output for each candidate before
audio parity.
- `metrics.csv`: first-layer `gesture` metrics only:
`surface_coverage`, `motion_direction`, `contour_timing`,
`primitive_timeline`, and `gesture_score`.
- `evidence.jsonl`: one short machine-readable receipt per candidate for later
science passes.
`IpaGestureExperiment.AnalyzeRound` adds the deterministic science packet:
- `analysis/metric-summary.csv`: per-target metric mean, min, max, spread, and
best/worst candidate IDs.
- `analysis/candidate-clusters.csv`: `strong`, `workable`, and `weak`
candidate bands by `gesture_score`.
- `analysis/science-brief.md`: a compact handoff for a human or sub-agent to
inspect score surfaces, clusters, and next hypothesis pressure.
This round writer owns frozen candidate evidence. It does not own clean vocal
identity, full spectrogram parity, optimizer checkpoints, or distributed worker
orchestration. Those stages may consume the bundle later, but they must add
their own scores instead of rewriting gesture evidence after the fact.
The intended scale-out loop is brutally simple:
1. Generate a round of descriptor/variant candidates and primitive timelines.
2. Hand the frozen bundle to a science worker for loss-landscape summaries,
clustering, outlier detection, and next-hypothesis recommendations.
3. While that worker runs, generate another round with new DSL or patch
variations.
4. Merge only conclusions that improve the layered evidence ledger:
`gesture_score` first, then `clean_vocal_score`, then
`full_parity_score`.
## CultMesh Render/Scoring Work
CultMesh is the transport, admission, and worker-orchestration layer for speech

View file

@ -136,6 +136,17 @@ Only the third score is allowed to reward recording-condition helpers. The first
score is where IPA labels and anatomical descriptors prove that the right organs
were asked to move.
The first scalable IPA training loop starts with frozen gesture rounds, not a
free-running optimizer. `IpaGestureExperiment.WriteRound` produces candidate
scripts, primitive timelines, gesture metrics, a manifest, and evidence JSONL
for a whole batch. `IpaGestureExperiment.AnalyzeRound` then writes metric
summaries, score-band clusters, and a science brief. A science worker can
inspect that immutable bundle for clusters, outliers, loss surfaces, and
promising descriptor/variant changes while the foreground process writes the
next batch. This keeps hypothesis generation, primitive evidence, and
statistical analysis separate enough to argue with each other. Good. Machines
get less stupid when their witnesses are allowed to disagree.
Do not start serious gradient descent from toy embedding packets. The first
training contract coordinated with Weksa is
`weksa.utterance_embedding_handoff.v0.1`: 1024 speech-text floats from