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: