teachingAssistant / src /domain /interfaces /speech_recognition.py
Michael Hu
refactor based on DDD
5009cb8
raw
history blame
809 Bytes
"""Speech recognition service interface."""
from abc import ABC, abstractmethod
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from ..models.audio_content import AudioContent
from ..models.text_content import TextContent
class ISpeechRecognitionService(ABC):
"""Interface for speech recognition services."""
@abstractmethod
def transcribe(self, audio: 'AudioContent', model: str) -> 'TextContent':
"""
Transcribe audio content to text.
Args:
audio: The audio content to transcribe
model: The STT model to use for transcription
Returns:
TextContent: The transcribed text
Raises:
SpeechRecognitionException: If transcription fails
"""
pass