pub struct AudioSpec {
pub denoise: Option<bool>,
pub noise_gate: Option<NoiseGateSpec>,
pub client_vad: Option<ClientVadSpec>,
pub authority: Option<AuthoritySpec>,
pub eot_hold_ms: Option<u32>,
pub min_interruption_ms: Option<u32>,
}Expand description
Input-audio hardening: the measured mic chain (denoiser, noise gate),
client input-VAD tuning, and interruption authority. Lowers to
Live::mic_denoise / mic_noise_gate / input_vad /
client_interruption_authority; see the hardening chapter for the
benchmark behind each default.
Fields§
§denoise: Option<bool>Run the RNNoise speech enhancer over incoming user audio (requires
the denoise feature; skipped with a validation warning otherwise).
noise_gate: Option<NoiseGateSpec>Noise gate after the denoiser — silences frames below a level threshold (near-talker preference; rejects denoiser residue).
client_vad: Option<ClientVadSpec>Client input-VAD tuning (the detector driving speech edges in
send_audio).
Who decides when user speech interrupts the model.
eot_hold_ms: Option<u32>Milliseconds to hold the turn-end marker during mid-turn pauses, suppressing false end-of-turn commits. Measured on TurnBench dev: 800 ms = 0.1-fp qualifying point (recall 0.798), 1600 ms = recall 0.508 (frontier).
min_interruption_ms: Option<u32>Milliseconds to suppress barge-in detection on backchannels and false interruptions. Measured on TurnBench dev: 1400 ms suppresses backchannel false positives (0.702 → 0.062), 2000 ms = maximum interruption match window.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for AudioSpec
impl<'de> Deserialize<'de> for AudioSpec
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for AudioSpec
impl JsonSchema for AudioSpec
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for AudioSpec
impl RefUnwindSafe for AudioSpec
impl Send for AudioSpec
impl Sync for AudioSpec
impl Unpin for AudioSpec
impl UnwindSafe for AudioSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].