LLMUserAggregator: use TranscriptionUserTurnStartStrategy for emulated interruptions

This commit is contained in:
Aleix Conchillo Flaqué
2025-12-15 14:16:47 -08:00
parent 2cdf207227
commit dff6b5402a
2 changed files with 4 additions and 13 deletions

View File

@@ -51,6 +51,9 @@ from pipecat.turns.bot.transcription_bot_turn_start_strategy import (
TranscriptionBotTurnStartStrategy,
)
from pipecat.turns.turn_start_strategies import TurnStartStrategies
from pipecat.turns.user.transcription_user_turn_start_strategy import (
TranscriptionUserTurnStartStrategy,
)
from pipecat.turns.user.vad_user_turn_start_strategy import VADUserTurnStartStrategy
from pipecat.utils.asyncio.task_manager import BaseTaskManager, TaskManager, TaskManagerParams
from pipecat.utils.tracing.setup import is_tracing_available
@@ -293,7 +296,7 @@ class PipelineTask(BasePipelineTask):
# Initialize default user and bot turn start strategies.
if not self._params.turn_start_strategies:
self._params.turn_start_strategies = TurnStartStrategies(
user=[VADUserTurnStartStrategy()],
user=[VADUserTurnStartStrategy(), TranscriptionUserTurnStartStrategy()],
bot=[TranscriptionBotTurnStartStrategy()],
)

View File

@@ -231,8 +231,6 @@ class LLMUserAggregator(LLMContextAggregator):
super().__init__(context=context, role="user", **kwargs)
self._params = params or LLMUserAggregatorParams()
self._user_speaking = False
async def cleanup(self):
"""Clean up processor resources."""
await super().cleanup()
@@ -390,11 +388,6 @@ class LLMUserAggregator(LLMContextAggregator):
await self.broadcast_frame(frame_cls, **kwargs)
async def _trigger_user_turn_start(self, strategy: BaseUserTurnStartStrategy):
if self._user_speaking:
return
self._user_speaking = True
# Reset all user turn start strategies to start fresh.
if self.turn_start_strategies:
for s in self.turn_start_strategies.user:
@@ -407,11 +400,6 @@ class LLMUserAggregator(LLMContextAggregator):
await self.broadcast_frame(InterruptionFrame)
async def _trigger_bot_turn_start(self, strategy: BaseBotTurnStartStrategy):
if not self._user_speaking:
return
self._user_speaking = False
# Reset all bot turn start strategies to start fresh.
if self.turn_start_strategies:
for s in self.turn_start_strategies.bot: