diff --git a/docs/flavored-english-lowering.md b/docs/flavored-english-lowering.md index 4270fb0..d562984 100644 --- a/docs/flavored-english-lowering.md +++ b/docs/flavored-english-lowering.md @@ -157,12 +157,70 @@ Weksa should produce or request: AquaSynth should decide how those become gestures, tract targets, Faust, and audio. +## Reference Synth Parity + +The first speech-lowering target should be a simple open reference synth, not a +neural realtime voice. + +This mirrors the AquaSynth reference-synth pattern: Weksa should develop its own +DSL for vocal and dialogue intent, then test whether that DSL can express enough +information to drive an existing synth target. The reference is an exercise +machine. It is not the architecture we absorb. + +Recommended first target: eSpeak NG. + +Why eSpeak NG: + +- open source +- command-line friendly +- explicitly formant-based +- supports many languages and accents +- has mature phoneme and voice machinery +- supports Klatt formant synthesis as part of its synthesis surface +- is small and inspectable enough for parity fixtures + +Initial parity loop: + +```text +interlingua packet + -> projected agent-local context + -> flavored English line + -> Weksa vocal intent DSL + -> eSpeak NG reference render + -> transcript/audio/parameter artifact + -> Weksa/AquaSynth comparison +``` + +The goal is not to copy eSpeak NG quirks. The goal is to prove that Weksa can +state enough vocal intent to produce predictable speech through a boring +formant-based target before asking AquaSynth to do harder articulatory work. + +Good first fixtures: + +- short declarative line +- sharp warning +- dry aside +- fast correction +- one line with emphasis shift +- one line with irritation but no volume spike + +Candidate lower-level references: + +- eSpeak NG formant output for whole utterance parity +- eSpeak NG phoneme output for phoneme-sequence sanity +- Klatt-style open implementations for parameter-level formant fixture work +- Praat/KlattGrid-style analysis as a diagnostic surface, not runtime authority + +This rung should produce reference artifacts, not permanent dependency doctrine. +Once Weksa's vocal intent can drive a simple synth coherently, AquaSynth can +replace the target with its own `PhoneticIntent` and tract model. + ## Realtime Voice References Codex/OpenAI realtime voice output can be useful, but it must not become physical ground truth. -Use projection-shaped prompts with realtime voice output as: +Use projection-shaped prompts with realtime voice output later as: - perceptual reference - style and prosody target diff --git a/schemas/english-lowering-packet.md b/schemas/english-lowering-packet.md index dab12f3..754f75b 100644 --- a/schemas/english-lowering-packet.md +++ b/schemas/english-lowering-packet.md @@ -73,6 +73,28 @@ It may include: This is a request to AquaSynth, not a rendered audio contract. +## Reference Synth Artifacts + +Before AquaSynth parity, Weksa may emit reference-synth artifacts. + +Suggested fields: + +- `reference_synth.target` +- `reference_synth.input_text` +- `reference_synth.input_phonemes` +- `reference_synth.voice` +- `reference_synth.controls` +- `reference_synth.audio_ref` +- `reference_synth.diagnostics_ref` +- `reference_synth.parity_notes` + +Initial `target` should be `espeak-ng` if available. Other Klatt/formant +implementations may be added as fixture targets when they provide clearer +parameter control. + +The reference synth artifact tests Weksa's expressive surface. It is not the +source of truth for AquaSynth anatomy. + ## Reference Audio Artifacts Realtime voice outputs may be attached as reference artifacts for tuning. diff --git a/settings/aetheria/nibu.md b/settings/aetheria/nibu.md index 99f6292..fb07c6e 100644 --- a/settings/aetheria/nibu.md +++ b/settings/aetheria/nibu.md @@ -82,3 +82,19 @@ extensions: The expected output is not a quote yet. The first deliverable is a lowering packet that can explain why the eventual line is Nibu rather than generic snark. + +## First Speech Fixture + +Nibu should not start with neural realtime voice parity. Start with a basic +formant reference synth, preferably eSpeak NG. + +The first fixture should prove: + +- the English line preserves the interlingua warning +- the line carries Nibu pressure without becoming generic abuse +- Weksa can express emphasis, pace, and clipped sharpness in a vocal intent DSL +- the reference synth can render a stable artifact for comparison +- AquaSynth can later attempt the same intent through `PhoneticIntent` + +Reference quality can be ugly. It needs to be predictable. First the machine +learns to speak through a tin can with paperwork. Beauty can wait its turn. diff --git a/state/map.yaml b/state/map.yaml index 7efd91c..a384a53 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -40,6 +40,8 @@ constraints: - Realtime neural voice output may be used as perceptual style/prosody reference data, but not as physical ground truth for AquaSynth vocal-tract tuning. + - First speech-lowering parity should target a simple open formant synth such + as eSpeak NG before realtime neural voice references. invariants: - Ontology owns meaning. @@ -198,6 +200,8 @@ open_questions: AquaSynth after dialogue text exists? - What capture format should store realtime voice references, transcripts, prompt provenance, and rating notes for Nibu tuning? + - What minimal vocal intent DSL fields are needed to drive eSpeak NG parity + fixtures before AquaSynth `PhoneticIntent` parity? landed_baseline: - Language-neutral state spine.