richard-su's picture
Upload folder using huggingface_hub
b5df735 verified
raw
history blame
3.36 kB
"""
Custom error classes for audio processing
"""
class AudioProcessingError(Exception):
"""Base exception for audio processing errors"""
def __init__(self, message: str, error_code: str = None, details: dict = None):
super().__init__(message)
self.message = message
self.error_code = error_code or "AUDIO_PROCESSING_ERROR"
self.details = details or {}
def to_dict(self) -> dict:
"""Convert error to dictionary format"""
return {
"error": self.error_code,
"message": self.message,
"details": self.details
}
class TranscriptionError(AudioProcessingError):
"""Exception for transcription-related errors"""
def __init__(self, message: str, model: str = None, audio_file: str = None, **kwargs):
super().__init__(message, error_code="TRANSCRIPTION_ERROR", **kwargs)
if model:
self.details["model"] = model
if audio_file:
self.details["audio_file"] = audio_file
class SpeakerDetectionError(AudioProcessingError):
"""Exception for speaker detection-related errors"""
def __init__(self, message: str, audio_file: str = None, **kwargs):
super().__init__(message, error_code="SPEAKER_DETECTION_ERROR", **kwargs)
if audio_file:
self.details["audio_file"] = audio_file
class SpeakerDiarizationError(AudioProcessingError):
"""Exception for speaker diarization-related errors"""
def __init__(self, message: str, audio_file: str = None, **kwargs):
super().__init__(message, error_code="SPEAKER_DIARIZATION_ERROR", **kwargs)
if audio_file:
self.details["audio_file"] = audio_file
class AudioSplittingError(AudioProcessingError):
"""Exception for audio splitting-related errors"""
def __init__(self, message: str, audio_file: str = None, **kwargs):
super().__init__(message, error_code="AUDIO_SPLITTING_ERROR", **kwargs)
if audio_file:
self.details["audio_file"] = audio_file
class FileProcessingError(AudioProcessingError):
"""Exception for file processing-related errors"""
def __init__(self, message: str, file_path: str = None, **kwargs):
super().__init__(message, error_code="FILE_PROCESSING_ERROR", **kwargs)
if file_path:
self.details["file_path"] = file_path
class ModelLoadError(AudioProcessingError):
"""Exception for model loading errors"""
def __init__(self, message: str, model_name: str = None, **kwargs):
super().__init__(message, error_code="MODEL_LOAD_ERROR", **kwargs)
if model_name:
self.details["model_name"] = model_name
class ConfigurationError(AudioProcessingError):
"""Exception for configuration-related errors"""
def __init__(self, message: str, config_key: str = None, **kwargs):
super().__init__(message, error_code="CONFIGURATION_ERROR", **kwargs)
if config_key:
self.details["config_key"] = config_key
class DeploymentError(AudioProcessingError):
"""Exception for deployment-related errors"""
def __init__(self, message: str, service: str = None, **kwargs):
super().__init__(message, error_code="DEPLOYMENT_ERROR", **kwargs)
if service:
self.details["service"] = service