Skip to main content

SegmentReader

Struct SegmentReader 

Source
pub struct SegmentReader<E> { /* private fields */ }
Available on crate feature silero and non-target_family=wasm only.
Expand description

Walks the finalized segments of one recording: cuts each segment’s audio out of the window, labels it, and frees what no reader needs any more.

The buffer is marked before each decode, because a segment’s audio ends where the buffer stood before the call that emitted it — agreement lags one decode behind the newest stride.

Implementations§

Source§

impl<E: Embedder> SegmentReader<E>

Source

pub fn new(labeler: SegmentLabeler<E>) -> Self

Source

pub fn labeler(&self) -> &SegmentLabeler<E>

Source

pub fn rewind(&mut self)

Forgets where the last recording stood. A new recording starts at zero, and a window measured from the old position would clamp to nothing. The labeler’s memory of voices stays.

Source

pub fn labeler_mut(&mut self) -> &mut SegmentLabeler<E>

Source

pub fn next<T: Transcriber, L: Layer>( &mut self, operation: &mut Operation<'_, T, L>, recording: &mut RecordingReader, ) -> Result<Option<Heard>, TranscriptionError>

The next finalized segment and whose voice it was, or None once the recording ends. Marking the buffer, decoding, labeling, and freeing the audio behind the decoder have to happen in that order, so the order lives here rather than in every caller.

Freeing is safe without asking anyone: a second reader of the same recording holds its own fork, with its own window and its own floor.

Source

pub fn next_update<T: Transcriber, L: Layer>( &mut self, operation: &mut Operation<'_, T, L>, recording: &mut RecordingReader, ) -> Result<Option<HeardUpdate>, TranscriptionError>

Auto Trait Implementations§

§

impl<E> !RefUnwindSafe for SegmentReader<E>

§

impl<E> !UnwindSafe for SegmentReader<E>

§

impl<E> Freeze for SegmentReader<E>

§

impl<E> Send for SegmentReader<E>
where SegmentLabeler<E>: Send,

§

impl<E> Sync for SegmentReader<E>
where SegmentLabeler<E>: Sync,

§

impl<E> Unpin for SegmentReader<E>

§

impl<E> UnsafeUnpin for SegmentReader<E>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more