diff --git a/changelog/3206.changed.md b/changelog/3206.changed.md new file mode 100644 index 000000000..01c3e007a --- /dev/null +++ b/changelog/3206.changed.md @@ -0,0 +1,3 @@ +- `UserBotLatencyLogObserver` now uses `VADUserStartedSpeakingFrame` and +`VADUserStoppedSpeakingFrame` to determine latency from user stopped speaking +to bot started speaking. diff --git a/src/pipecat/observers/loggers/user_bot_latency_log_observer.py b/src/pipecat/observers/loggers/user_bot_latency_log_observer.py index 22e2cc358..3d97ee813 100644 --- a/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +++ b/src/pipecat/observers/loggers/user_bot_latency_log_observer.py @@ -15,8 +15,8 @@ from pipecat.frames.frames import ( BotStartedSpeakingFrame, CancelFrame, EndFrame, - UserStartedSpeakingFrame, - UserStoppedSpeakingFrame, + VADUserStartedSpeakingFrame, + VADUserStoppedSpeakingFrame, ) from pipecat.observers.base_observer import BaseObserver, FramePushed from pipecat.processors.frame_processor import FrameDirection @@ -56,9 +56,9 @@ class UserBotLatencyLogObserver(BaseObserver): self._processed_frames.add(data.frame.id) - if isinstance(data.frame, UserStartedSpeakingFrame): + if isinstance(data.frame, VADUserStartedSpeakingFrame): self._user_stopped_time = 0 - elif isinstance(data.frame, UserStoppedSpeakingFrame): + elif isinstance(data.frame, VADUserStoppedSpeakingFrame): self._user_stopped_time = time.time() elif isinstance(data.frame, (EndFrame, CancelFrame)): self._log_summary()