From 22ef61fe8d89aaba847364205a5de0c725dcb007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Thu, 25 Sep 2025 09:47:58 -0700 Subject: [PATCH] BaseTurnAnalyzer: add BaseTurnParams base class for parameters --- src/pipecat/audio/turn/base_turn_analyzer.py | 10 +++++++++- src/pipecat/audio/turn/smart_turn/base_smart_turn.py | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/pipecat/audio/turn/base_turn_analyzer.py b/src/pipecat/audio/turn/base_turn_analyzer.py index f64655fb6..929c2ac46 100644 --- a/src/pipecat/audio/turn/base_turn_analyzer.py +++ b/src/pipecat/audio/turn/base_turn_analyzer.py @@ -14,6 +14,8 @@ from abc import ABC, abstractmethod from enum import Enum from typing import Optional, Tuple +from pydantic import BaseModel + from pipecat.metrics.metrics import MetricsData @@ -29,6 +31,12 @@ class EndOfTurnState(Enum): INCOMPLETE = 2 +class BaseTurnParams(BaseModel): + """Base class for turn analyzer parameters.""" + + pass + + class BaseTurnAnalyzer(ABC): """Abstract base class for analyzing user end of turn. @@ -78,7 +86,7 @@ class BaseTurnAnalyzer(ABC): @property @abstractmethod - def params(self): + def params(self) -> BaseTurnParams: """Get the current turn analyzer parameters. Returns: diff --git a/src/pipecat/audio/turn/smart_turn/base_smart_turn.py b/src/pipecat/audio/turn/smart_turn/base_smart_turn.py index f72ac7d84..c4dc60156 100644 --- a/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +++ b/src/pipecat/audio/turn/smart_turn/base_smart_turn.py @@ -19,7 +19,7 @@ import numpy as np from loguru import logger from pydantic import BaseModel -from pipecat.audio.turn.base_turn_analyzer import BaseTurnAnalyzer, EndOfTurnState +from pipecat.audio.turn.base_turn_analyzer import BaseTurnAnalyzer, BaseTurnParams, EndOfTurnState from pipecat.metrics.metrics import MetricsData, SmartTurnMetricsData # Default timing parameters @@ -29,7 +29,7 @@ MAX_DURATION_SECONDS = 8 # Max allowed segment duration USE_ONLY_LAST_VAD_SEGMENT = True -class SmartTurnParams(BaseModel): +class SmartTurnParams(BaseTurnParams): """Configuration parameters for smart turn analysis. Parameters: