""" Audio processing interface definitions """ from abc import ABC, abstractmethod from typing import Dict, Any, List, Tuple, Iterator, Optional from dataclasses import dataclass @dataclass class AudioSegment: """Audio segment representation""" start: float end: float file_path: str duration: float class IAudioProcessor(ABC): """Interface for audio processing operations""" @abstractmethod async def split_audio_by_silence( self, audio_path: str, min_segment_length: float = 30.0, min_silence_length: float = 1.0 ) -> List[AudioSegment]: """Split audio file by silence detection""" pass @abstractmethod async def process_audio_segment( self, segment: AudioSegment, model_name: str = "turbo", language: Optional[str] = None, enable_speaker_diarization: bool = False ) -> Dict[str, Any]: """Process a single audio segment""" pass @abstractmethod async def process_complete_audio( self, audio_path: str, model_name: str = "turbo", language: Optional[str] = None, enable_speaker_diarization: bool = False, min_segment_length: float = 30.0 ) -> Dict[str, Any]: """Process complete audio file""" pass