Fix: RTVIObserver now outputs a single bot started and stopped speaking event per turn

This commit is contained in:
Mark Backman
2025-03-24 10:25:31 -04:00
parent a3ccbf91f7
commit a9b1298f3b
2 changed files with 6 additions and 1 deletions

View File

@@ -440,7 +440,9 @@ class RTVIObserver(BaseObserver):
if isinstance(frame, (UserStartedSpeakingFrame, UserStoppedSpeakingFrame)):
await self._handle_interruptions(frame)
elif isinstance(frame, (BotStartedSpeakingFrame, BotStoppedSpeakingFrame)):
elif isinstance(frame, (BotStartedSpeakingFrame, BotStoppedSpeakingFrame)) and (
direction == FrameDirection.UPSTREAM
):
await self._handle_bot_speaking(frame)
elif isinstance(frame, (TranscriptionFrame, InterimTranscriptionFrame)):
await self._handle_user_transcriptions(frame)