用途:在 Rust SDK 中使用 Deepgram Flux,即该 crate 支持的基于轮次的对话式流式语音转文字路径,适合构建语音智能体的 STT 环节、处理 TurnEvent::{StartOfTurn, EndOfTurn, EagerEndOfTurn, TurnResumed, Update},并通过 eot_threshold、eager_eot_threshold、eot_timeout_ms 调整结束轮次行为。
安装与鉴权:Flux 属于 listen 特性。依赖写法:deepgram = { version = "0.10.0", default-features = false, features = ["listen"] },另需 tokio 与 futures。用 Deepgram::new(std::env::var("DEEPGRAM_API_KEY")?) 创建客户端。
主要能力与用法:入口为 flux_request() 与 flux_request_with_options(options)。传输构建器字段有 encoding、sample_rate,随后用 .file(...)、.stream(...) 或 .handle().await?。Flux 专属调参位于共享 OptionsBuilder:model(Model::FluxGeneralEn)、eot_threshold、eager_eot_threshold、eot_timeout_ms、keyterms。主要响应类型为 common::flux_response::FluxResponse,需处理 Connected、TurnInfo(含 event、turn_index、transcript、end_of_turn_confidence)、FatalError、Unknown。
参考位置:src/listen/flux.rs、src/common/flux_response.rs、src/common/options.rs;示例 examples/transcription/flux/simple_flux.rs、simple_flux_token.rs、microphone_flux.rs;测试 tests/flux_unknown_messages.rs、tests/flux_e2e.rs。产品文档见 https://developers.deepgram.com/docs/stt/getting-started,端点参考 https://developers.deepgram.com/reference/speech-to-text/listen-flux。跨语言产品知识可 npx skills add deepgram/skills。
适用场景与限制:适合基于轮次的语音交互流水线。该 crate 中 Flux 仅支持英语,默认模型为 Model::FluxGeneralEn。实时节奏比普通流式更重要,分块大小与延迟不当会破坏轮次检测。Unknown 事件是有意保留的,用于向前兼容,应处理而非假设穷尽。Flux 只负责轮次切换,不做完整智能体控制;TTS 回复、提示词或工具调用属于 Voice Agent 范畴,目前尚无类型化 Rust SDK 接口。