pub struct KeypadGuard { /* private fields */ }Expand description
Keeps keypad tones and masked keypad entry away from the model.
An InputAudioProcessor for the
caller’s audio at the connector’s rate:
- Frames carrying DTMF tones are silenced (from the first detection, for 60 ms after), so the model neither hears nor transcribes keypresses. Up to one detection block (26 ms) of a tone’s onset can pass before it is recognized; that is too short to be decoded.
- While
KEY_KEYPAD_MASKis set, every frame is silenced. - With
record_in_band, digits found in the audio are recorded withrecord_dtmf. Use it for transports without out-of-band DTMF; where the platform reports keypresses itself (Twiliodtmfevents, RFC 4733), leave it off so digits aren’t counted twice.
Implementations§
Source§impl KeypadGuard
impl KeypadGuard
Trait Implementations§
Source§impl InputAudioProcessor for KeypadGuard
impl InputAudioProcessor for KeypadGuard
Source§fn process_frame(&mut self, frame: &mut Vec<i16>)
fn process_frame(&mut self, frame: &mut Vec<i16>)
Process one PCM16 frame in place (the frame may change length).
Auto Trait Implementations§
impl Freeze for KeypadGuard
impl !RefUnwindSafe for KeypadGuard
impl Send for KeypadGuard
impl Sync for KeypadGuard
impl Unpin for KeypadGuard
impl !UnwindSafe for KeypadGuard
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
Mutably borrows from an owned value. Read more
§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> 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>
Converts
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>
Converts
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>
Wrap the input message
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>,
Applies the layer to a service and wraps it in [
Layered].