teachingAssistant / src /domain /interfaces /audio_processing.py
Michael Hu
refactor based on DDD
5009cb8
raw
history blame
1.12 kB
"""Audio processing service interface."""
from abc import ABC, abstractmethod
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from ..models.audio_content import AudioContent
from ..models.voice_settings import VoiceSettings
from ..models.processing_result import ProcessingResult
class IAudioProcessingService(ABC):
"""Interface for audio processing pipeline orchestration."""
@abstractmethod
def process_audio_pipeline(
self,
audio: 'AudioContent',
target_language: str,
voice_settings: 'VoiceSettings'
) -> 'ProcessingResult':
"""
Process audio through the complete pipeline: STT -> Translation -> TTS.
Args:
audio: The input audio content
target_language: The target language for translation
voice_settings: Voice settings for TTS synthesis
Returns:
ProcessingResult: The result of the complete processing pipeline
Raises:
AudioProcessingException: If any step in the pipeline fails
"""
pass