from abc import ABC, abstractmethod class STTProvider(ABC): @abstractmethod async def transcribe(self, audio_bytes: bytes, fmt: str, language: str | None = None) -> str: ... async def transcribe_detect( self, audio_bytes: bytes, fmt: str, language: str | None = None ) -> tuple[str, str | None]: """Transkribiert und liefert (text, detected_language). Standardimplementierung delegiert an transcribe(); detected_language=None. Provider mit Spracherkennung überschreiben diese Methode. """ text = await self.transcribe(audio_bytes, fmt, language=language) return text, None