Skip to main content

TtsEngine

Struct TtsEngine 

Source
pub struct TtsEngine { /* private fields */ }
Expand description

Blocking public engine facade.

The runtime is owned below this facade and is never exposed to callers. Admission uses an atomic lease, so no mutex is held across CPU work and one engine never runs more than one synthesis fanout at a time.

Implementations§

Source§

impl TtsEngine

Source

pub fn new(config: EngineConfig) -> Result<Self, EngineError>

Creates an engine with explicit, validated limits.

Source

pub fn from_process_environment() -> Result<Self, EngineError>

Creates an engine from the process-wide environment defaults.

Source

pub fn synthesize<P: TextPreparer + ?Sized>( &self, request: SynthesisRequest, text_preparer: &P, frame_generator: &mut dyn FrameGenerator, cancellation: &CancellationToken, observer: &dyn SynthesisObserver, ) -> Result<SynthesisResult, EngineError>

Runs one blocking synthesis: text preparation, admission, then the model decode loop.

The decode loop runs on the calling thread rather than through Self::run_stage: frame generators borrow model weights, so they cannot cross the 'static spawn boundary, and a per-frame deadline check is the natural budget seam for an autoregressive loop anyway.

Source

pub fn enroll( &self, request: EnrollmentRequest, cancellation: &CancellationToken, observer: &dyn SynthesisObserver, ) -> Result<EnrollmentResult, EngineError>

Runs the Phase 0 enrollment shell through the owned runtime.

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, _span: NoopSpan) -> Self

Instruments this future with a span (no-op when disabled).
Source§

fn in_current_span(self) -> Self

Instruments this future with the current span (no-op when disabled).
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V