[Edge][WP5] Keep DELTA outputs for talker-only (codec-token) deployments

The speech path forced FINAL_ONLY for Qwen3-TTS deployments without async
chunks, so a talker-only server emitted one engine output per request and all
codec frames arrived at once (measured: 1 engine output per request, first
codes at output #1). A talker-only stage (final_output + latent) now keeps
DELTA outputs so codec frames stream per step.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
tzhouamandClaude Fable 5.1 committed 2026-09-09 16:21:31 +08:00
1 parent 0356b22e4c
commit b22dabe270
2 files changed
+34 -1

No files matched your search

@@ -181,3 +181,21 @@ def test_input_cancel_mid_stream_aborts_request(mocker):
assert payload["cancelled"] is True
assert "codec.done" in types and types[-1] == "session.done"
svc.engine_client.abort.assert_awaited()
@pytest.mark.core_model
@pytest.mark.cpu
def test_talker_only_deployment_detection():
from types import SimpleNamespace
from vllm_omni.entrypoints.openai.serving_speech import OmniOpenAIServingSpeech
probe = OmniOpenAIServingSpeech.__new__(OmniOpenAIServingSpeech)
probe._tts_stage = SimpleNamespace(final_output=True, final_output_type="latent")
assert probe._is_talker_only_deployment() is True
probe._tts_stage = SimpleNamespace(final_output=False, final_output_type="latent")
assert probe._is_talker_only_deployment() is False
probe._tts_stage = SimpleNamespace(final_output=True, final_output_type="audio")
assert probe._is_talker_only_deployment() is False
probe._tts_stage = None
assert probe._is_talker_only_deployment() is False