pub struct VoiceDefinition {
pub name: String,
pub stt: Option<String>,
pub tts: Option<String>,
pub realtime: Option<String>,
pub carrier: String,
pub interruptible: bool,
pub legal_basis: Option<String>,
pub persona: Option<String>,
pub context: Option<String>,
pub loc: Loc,
pub leading_trivia: Vec<Trivia>,
pub trailing_trivia: Vec<Trivia>,
}Expand description
voice Name { stt:/tts: XOR realtime:, carrier:, interruptible:, legal_basis:, persona:, context: }
v2.37.0 — the simplicity layer over v2.37.0’s upstream: a blessed-
preset phone agent in under 20 lines. stt:+tts: (cascaded) XOR
realtime: (fused) — the design decision: one grammar, both architectures, never a
special-cased second path. Each leg is a Preset@vN reference or a
declared upstream name. Expansion is pure macro-lowering to existing
primitives; axon desugar prints it.
Fields§
§name: String§stt: Option<String>Cascaded STT leg (preset ref like DeepgramSTT@v1 or upstream name).
tts: Option<String>Cascaded TTS leg.
realtime: Option<String>Fused speech-to-speech leg (mutually exclusive with stt/tts — T852).
carrier: StringCarrier codec: mulaw8k (default — PSTN; expansion emits the ots
μ-law↔PCM16 pair) or pcm16 (browser/WebRTC-style, no transcode).
interruptible: booltrue ⇒ the carrier session is a v2.36.0 interruptible region (barge-in
capable) and the socket parks residuals — which REQUIRES
legal_basis: (T852; the sugar must not generate a program
ParkedResidualSoundness refutes).
legal_basis: Option<String>Rides onto the generated socket (the v2.36.0 data-at-rest obligation).
persona: Option<String>Optional references wired for the flow layer (validated to exist).
context: Option<String>§loc: Loc§leading_trivia: Vec<Trivia>v1.5.2 — leading comment trivia.
trailing_trivia: Vec<Trivia>v1.5.2 — trailing comment trivia.