pub struct Session { /* private fields */ }Expand description
任务会话。
Implementations§
Source§impl Session
impl Session
Sourcepub fn backend(&self) -> Backend
pub fn backend(&self) -> Backend
创建会话时请求的计算后端。
这是传给 crate::Model::create_task_session 的 backend 参数原样
记录,不经过上游再查询——C ABI 与上游引擎目前均无“实际落定后端”
查询接口。显式传 Backend::Cpu/Vulkan/... 时返回值即实际后端;
传 Backend::Best 时引擎内部按可用设备解析,返回值只能说明
“请求的是自动选择”,不要据此显示具体设备名。
Sourcepub fn streaming_policy(&self) -> Result<StreamingPolicy, Error>
pub fn streaming_policy(&self) -> Result<StreamingPolicy, Error>
Sourcepub fn prepare<R: IntoRequest>(&self, request: R) -> Result<(), Error>
pub fn prepare<R: IntoRequest>(&self, request: R) -> Result<(), Error>
为一次请求做准备(离线与流式共用)。
request 为 crate::request::IntoRequest,可用类型化的
crate::request::Request 枚举(推荐,每个任务一种变体),或任意
JSON 字符串。携带 audio / text / voice 等输入,或用 audio_path
指向本地 WAV 文件。空请求可传 ()。
§Errors
请求序列化失败、路径含 NUL,或 C ABI 调用失败时返回对应 Error 变体。
Sourcepub fn set_event_callback<F>(&self, cb: Option<F>)
pub fn set_event_callback<F>(&self, cb: Option<F>)
注册流式事件回调;调用 None 清除。
回调会在每次流事件产生时被调用(可能来自 C++ 侧线程),其内容是
解析为 StreamEvent 的对象。回调内不得再调用本会话的方法
(含 set_event_callback/reset,否则可能死锁);回调内的 panic
会被捕获忽略,不会传播。
以 &self 提供(内部有 Mutex 保护),因此可在持有 &Session
的任意线程上注册 / 更换回调。同一个会话只保留一份回调。
Sourcepub fn start<R: IntoRequest>(&self, request: R) -> Result<(), Error>
pub fn start<R: IntoRequest>(&self, request: R) -> Result<(), Error>
开始一次流式任务(先 prepare 再进入流式读取循环)。
request 同 Session::prepare,类型化枚举或 JSON 字符串均可;
空请求传 ()。
§Errors
请求序列化失败、路径含 NUL,或 C ABI 调用失败时返回对应 Error 变体。
Sourcepub fn process_audio(
&self,
samples: &[f32],
sample_rate: i32,
channels: i32,
start_sample: i64,
) -> Result<Option<StreamEvent>, Error>
pub fn process_audio( &self, samples: &[f32], sample_rate: i32, channels: i32, start_sample: i64, ) -> Result<Option<StreamEvent>, Error>
Sourcepub fn finish(&self) -> Result<TaskResult, Error>
pub fn finish(&self) -> Result<TaskResult, Error>
Sourcepub fn run_offline<R: IntoRequest>(
&self,
request: R,
) -> Result<TaskResult, Error>
pub fn run_offline<R: IntoRequest>( &self, request: R, ) -> Result<TaskResult, Error>
离线执行一次请求,返回 TaskResult。
相当于 prepare + 一次完整执行(shim 内部已做 prepare)。request
同 Session::prepare,类型化枚举或 JSON 字符串均可。
§Errors
请求序列化失败、路径含 NUL,或 C ABI 调用失败时返回对应 Error 变体。