Rename *-local-vad.py example variants to *-locally-driven-turns.py
The "-local-vad" suffix was ambiguous now that local VAD has two meanings in the realtime context: supplementary user-turn frames broadcast alongside server-driven turns (commented-out opt-in in the base examples), vs. local turn detection driving the conversation end-to-end (server-side turn detection disabled, what these variant files actually demonstrate). The new "-locally-driven-turns" suffix matches the latter intent unambiguously. Renames: realtime-openai-local-vad.py → realtime-openai-locally-driven-turns.py realtime-gemini-live-local-vad.py → realtime-gemini-live-locally-driven-turns.py realtime-grok-local-vad.py → realtime-grok-locally-driven-turns.py realtime-inworld-local-vad.py → realtime-inworld-locally-driven-turns.py Plus the matching changelog fragments. Service docstrings and base examples that referenced the old filenames now point at the new ones.
This commit is contained in:
@@ -1 +0,0 @@
|
|||||||
- Added `examples/realtime/realtime-grok-local-vad.py`, a variant of the base Grok Realtime example that disables Grok's server-side turn detection (`turn_detection=None`, manual mode) and instead drives turn boundaries locally with `SileroVADAnalyzer` wired into the user aggregator. Mirrors the OpenAI Realtime local-VAD variant. Server-emitted turn frames are preferred when available.
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
- Added `examples/realtime/realtime-grok-locally-driven-turns.py`, a variant of the base Grok Realtime example that disables Grok's server-side turn detection (`turn_detection=None`, manual mode) and instead drives turn boundaries locally with `SileroVADAnalyzer` wired into the user aggregator. Mirrors the OpenAI Realtime locally-driven-turns variant. Server-emitted turn frames are preferred when available.
|
||||||
@@ -1 +0,0 @@
|
|||||||
- Added `examples/realtime/realtime-inworld-local-vad.py`, a variant of the base Inworld Realtime example that disables Inworld's server-side turn detection (`turn_detection=None`, manual mode) and instead drives turn boundaries locally with `SileroVADAnalyzer` wired into the user aggregator. Mirrors the OpenAI Realtime and Grok Realtime local-VAD variants. Server-emitted turn frames are preferred when available.
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
- Added `examples/realtime/realtime-inworld-locally-driven-turns.py`, a variant of the base Inworld Realtime example that disables Inworld's server-side turn detection (`turn_detection=None`, manual mode) and instead drives turn boundaries locally with `SileroVADAnalyzer` wired into the user aggregator. Mirrors the OpenAI Realtime and Grok Realtime locally-driven-turns variants. Server-emitted turn frames are preferred when available.
|
||||||
@@ -1 +0,0 @@
|
|||||||
- Added `examples/realtime/realtime-openai-local-vad.py`, a variant of the base OpenAI Realtime example that disables OpenAI's server-side turn detection (`turn_detection=False`) and instead drives turn boundaries locally with `SileroVADAnalyzer` wired into the user aggregator. Use this variant if you need a turn analyzer like `LocalSmartTurnV3` to decide when the user is done speaking, or if you need `UserStartedSpeakingFrame` / `UserStoppedSpeakingFrame` to fire from the same source as `InterruptionFrame`. Server-emitted turn frames are preferred when available.
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
- Added `examples/realtime/realtime-openai-locally-driven-turns.py`, a variant of the base OpenAI Realtime example that disables OpenAI's server-side turn detection (`turn_detection=False`) and instead drives turn boundaries locally with `SileroVADAnalyzer` wired into the user aggregator. Use this variant if you need a turn analyzer like `LocalSmartTurnV3` to decide when the user is done speaking, or if you need `UserStartedSpeakingFrame` / `UserStoppedSpeakingFrame` to fire from the same source as `InterruptionFrame`. Server-emitted turn frames are preferred when available.
|
||||||
@@ -147,7 +147,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
|||||||
# decisions and can desynchronize in subtle ways.
|
# decisions and can desynchronize in subtle ways.
|
||||||
#
|
#
|
||||||
# For local VAD driving the conversation (server VAD disabled), see
|
# For local VAD driving the conversation (server VAD disabled), see
|
||||||
# `realtime-gemini-live-local-vad.py` instead.
|
# `realtime-gemini-live-locally-driven-turns.py` instead.
|
||||||
#
|
#
|
||||||
# from pipecat.audio.vad.silero import SileroVADAnalyzer
|
# from pipecat.audio.vad.silero import SileroVADAnalyzer
|
||||||
# from pipecat.processors.aggregators.llm_response_universal import (
|
# from pipecat.processors.aggregators.llm_response_universal import (
|
||||||
|
|||||||
@@ -190,8 +190,8 @@ Remember, your responses should be short. Just one or two sentences, usually. Re
|
|||||||
# own UserStarted/StoppedSpeakingFrame from server VAD events, so
|
# own UserStarted/StoppedSpeakingFrame from server VAD events, so
|
||||||
# local VAD on the aggregator is unnecessary. realtime_service_mode
|
# local VAD on the aggregator is unnecessary. realtime_service_mode
|
||||||
# decouples context writes from turn frames and transcript-bound
|
# decouples context writes from turn frames and transcript-bound
|
||||||
# turn-end. See `realtime-openai-local-vad.py` for the variant
|
# turn-end. See `realtime-openai-locally-driven-turns.py` for the
|
||||||
# that disables server VAD and drives turn detection locally.
|
# variant that disables server VAD and drives turn detection locally.
|
||||||
realtime_service_mode=RealtimeServiceModeConfig(),
|
realtime_service_mode=RealtimeServiceModeConfig(),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -370,7 +370,7 @@ class GeminiLiveLLMService(LLMService[GeminiLLMAdapter]):
|
|||||||
detector — won't activate with the default server-VAD-only setup. Pair
|
detector — won't activate with the default server-VAD-only setup. Pair
|
||||||
with ``LLMContextAggregatorPair(..., realtime_service_mode=RealtimeServiceModeConfig())``
|
with ``LLMContextAggregatorPair(..., realtime_service_mode=RealtimeServiceModeConfig())``
|
||||||
so context writes are correct anyway. To produce the turn frames
|
so context writes are correct anyway. To produce the turn frames
|
||||||
locally, see ``examples/realtime/realtime-gemini-live-local-vad.py``;
|
locally, see ``examples/realtime/realtime-gemini-live-locally-driven-turns.py``;
|
||||||
note that locally-generated turn boundaries are a heuristic and may
|
note that locally-generated turn boundaries are a heuristic and may
|
||||||
not match Gemini Live's server-side turn decisions.
|
not match Gemini Live's server-side turn decisions.
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ class InworldRealtimeLLMService(LLMService[InworldRealtimeLLMAdapter]):
|
|||||||
service, disable Inworld's server-side turn detection first via
|
service, disable Inworld's server-side turn detection first via
|
||||||
``turn_detection=None`` (manual mode); otherwise both sources
|
``turn_detection=None`` (manual mode); otherwise both sources
|
||||||
broadcast duplicate user-turn frames. See
|
broadcast duplicate user-turn frames. See
|
||||||
``examples/realtime/realtime-inworld-local-vad.py``.
|
``examples/realtime/realtime-inworld-locally-driven-turns.py``.
|
||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
|
|||||||
@@ -218,7 +218,7 @@ class OpenAIRealtimeLLMService(LLMService[OpenAIRealtimeLLMAdapter]):
|
|||||||
top of this service, disable OpenAI's server-side turn detection
|
top of this service, disable OpenAI's server-side turn detection
|
||||||
first (``turn_detection=False``); otherwise both sources broadcast
|
first (``turn_detection=False``); otherwise both sources broadcast
|
||||||
duplicate user-turn frames. See
|
duplicate user-turn frames. See
|
||||||
``examples/realtime/realtime-openai-local-vad.py``.
|
``examples/realtime/realtime-openai-locally-driven-turns.py``.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
Settings = OpenAIRealtimeLLMSettings
|
Settings = OpenAIRealtimeLLMSettings
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ class GrokRealtimeLLMService(LLMService[GrokRealtimeLLMAdapter]):
|
|||||||
service, disable Grok's server-side turn detection first via
|
service, disable Grok's server-side turn detection first via
|
||||||
``turn_detection=None`` (manual mode); otherwise both sources
|
``turn_detection=None`` (manual mode); otherwise both sources
|
||||||
broadcast duplicate user-turn frames. See
|
broadcast duplicate user-turn frames. See
|
||||||
``examples/realtime/realtime-grok-local-vad.py``.
|
``examples/realtime/realtime-grok-locally-driven-turns.py``.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
Settings = GrokRealtimeLLMSettings
|
Settings = GrokRealtimeLLMSettings
|
||||||
|
|||||||
Reference in New Issue
Block a user