LLMUserAggregator: broadcast user started/stopped speaking frames

This commit is contained in:
Aleix Conchillo Flaqué
2025-12-14 12:29:25 -08:00
parent 222ccbb471
commit a388ff927c

View File

@@ -402,8 +402,9 @@ class LLMUserAggregator(LLMContextAggregator):
if self._params.enable_user_speaking_frames: if self._params.enable_user_speaking_frames:
logger.debug(f"User started speaking (user turn start strategy: {strategy})") logger.debug(f"User started speaking (user turn start strategy: {strategy})")
await self.push_frame(UserStartedSpeakingFrame()) # TODO(aleix): These frames should really come from the top of the pipeline.
await self.push_frame(InterruptionFrame()) await self.broadcast_frame(UserStartedSpeakingFrame, emulated=strategy is None)
await self.broadcast_frame(InterruptionFrame)
async def _trigger_bot_turn_start(self, strategy: BaseBotTurnStartStrategy): async def _trigger_bot_turn_start(self, strategy: BaseBotTurnStartStrategy):
if not self._user_speaking: if not self._user_speaking:
@@ -418,7 +419,8 @@ class LLMUserAggregator(LLMContextAggregator):
if self._params.enable_user_speaking_frames: if self._params.enable_user_speaking_frames:
logger.debug(f"User stopped speaking (bot turn start strategy: {strategy})") logger.debug(f"User stopped speaking (bot turn start strategy: {strategy})")
await self.push_frame(UserStoppedSpeakingFrame()) # TODO(aleix): This frame should really come from the top of the pipeline.
await self.broadcast_frame(UserStoppedSpeakingFrame, emulated=strategy is None)
# Always push context frame. # Always push context frame.
await self.push_aggregation() await self.push_aggregation()