vllm_omni.model_executor.models.nemotron_voicechat.duplex ¶
Native Full-Duplex integration for NVIDIA NemotronLabs VoiceChat.
The single duplex_plugin seam (RFC vllm-omni#7181): NemotronVoiceChatDuplexPlugin carries the engine and session policies, data_plane.py projects stage outputs and input.py packetizes 80 ms PCM frames into the framework's per-session model state.
Modules:
| Name | Description |
|---|---|
capabilities | |
data_plane | Output projection for Nemotron VoiceChat's independent channels. |
input | 80 ms PCM packetization for Nemotron VoiceChat native duplex. |
plugin | Nemotron VoiceChat full-duplex model plugin: engine policy and session policy in one class. |
NemotronVoiceChatDuplexPlugin ¶
Bases: DuplexModelPlugin
Nemotron-owned sampling policy, append planning, session state and output projection.
private_runtime_config_keys class-attribute instance-attribute ¶
private_runtime_config_keys = PRIVATE_RUNTIME_CONFIG_KEYS
silence_continuation_samples class-attribute instance-attribute ¶
silence_continuation_samples = (
NEMOTRON_VOICECHAT_FRAME_SAMPLES
)
configure_sampling_params ¶
configure_sampling_params(
*,
runtime_config: dict[str, object],
defaults: tuple[object, ...],
) -> tuple[object, ...]
data_plane_context ¶
data_plane_context(
*,
epoch: int,
turn_id: int,
active_response_turn_id: int | None,
active_response_id: str | None,
auto_responds: bool,
response_format: str,
speed: float | None,
modalities: tuple[str, ...],
) -> NemotronVoiceChatDataPlaneContext
decide_output ¶
decide_output(
*,
stage_id: int,
final_stage_id: int,
segment_finished: bool,
segment_token_ids: tuple[int, ...],
segment_output_metadata: dict[str, object],
output: object,
) -> DuplexOutputDecision | None
plan_append ¶
plan_append(
*,
request_id: str,
fence: DuplexFence,
session_config: dict[str, object],
runtime_config: dict[str, object],
seq: int,
turn_seq: int,
payload: object,
final: bool,
sampling_params: object,
) -> DuplexAppendPlan
prepare_runtime_config async ¶
prepare_runtime_config(
config: DuplexSessionConfig,
*,
model_config: ModelConfig | None,
) -> dict[str, object]
runtime_config_after_model_output ¶
runtime_config_after_model_output(
current: Mapping[str, object],
output_metadata: Mapping[str, object],
) -> dict[str, object] | None
Retire batches after the thinker takes ownership of their tokens.
runtime_config_for_function_output ¶
runtime_config_for_function_output(
config: DuplexSessionConfig,
current: Mapping[str, object],
item: Mapping[str, object],
) -> dict[str, object]
Queue a client tool result for frame-locked function-channel injection.