pub struct AecConfig {
pub tail_ms: u32,
pub delay_ms: u32,
pub mu: f32,
}Expand description
Fields§
§tail_ms: u32Length of the modeled echo tail, in milliseconds. Rounded up to a
whole number of 10 ms partitions. Must cover the room’s actual
reverberant echo plus any residual misalignment left after
delay_ms — see the module docs on bulk delay.
delay_ms: u32Bulk delay compensation applied to the far-end reference before it enters the filter, in milliseconds — models playback pipeline latency between “handed to the speaker” and “captured by the mic”.
mu: f32NLMS step size. The theoretical bound for a power-normalized
update is 0 < mu < 2; the practical bound on narrowband bursty
far ends (speech through a speaker) measured far below it:
0.25+ diverges within seconds, 0.1 reaches a bad marginal
equilibrium (gradient-noise misadjustment above the echo level),
0.05 holds through every measured stress with ERLE +8..11 dB on
the worst-case harmonic proxy and 12+ dB on broadband far ends.
Default 0.05 — raise it only with evals/dspbench watching.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AecConfig
impl RefUnwindSafe for AecConfig
impl Send for AecConfig
impl Sync for AecConfig
impl Unpin for AecConfig
impl UnwindSafe for AecConfig
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
§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].