File size: 1,120 Bytes
5009cb8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""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